?? app.c
字號:
*/
static void App_InitFS (void)
{
CPU_INT32U rtn_val;
APP_TRACE_DEBUG(("Initialize filesystem...\n"));
FS_Init();
rtn_val = FS_IoCtl("ram:", FS_CMD_REQUIRES_FORMAT, 0, 0);
if (rtn_val != 0) {
APP_TRACE_DEBUG(("Cannot format RAM disk.\n"));
}
}
#endif /* APP_FS_EN */
#if APP_TCPIP_EN
/*
*********************************************************************************************************
* INITIALIZE TCP/IP STACK
*********************************************************************************************************
*/
static void App_InitTCPIP (void)
{
NET_ERR err;
CPU_INT08U *pmac;
APP_TRACE_DEBUG(("Initialize TCP/IP stack...\n"));
pmac = (CPU_INT08U *)mon_getenv("ETHERADD");
NetASCII_Str_to_MAC(pmac, NetIF_MAC_Addr, &err);
err = Net_Init();
if (err != NET_ERR_NONE) {
APP_TRACE_DEBUG(("Net_Init() failed: error #%d, line #%d.\n", err, __LINE__));
while (DEF_YES) {
;
}
}
#if APP_DHCPc_EN
APP_TRACE_DEBUG((" MAC address = %s\n", pmac));
APP_TRACE_DEBUG((" IP address = 0.0.0.0\n"));
APP_TRACE_DEBUG((" IP mask = 0.0.0.0\n"));
APP_TRACE_DEBUG((" IP gateway = 0.0.0.0\n"));
NetIP_CfgAddrThisHost(NET_IP_ADDR_THIS_HOST, NET_IP_ADDR_NONE);
NetIP_CfgAddrDfltGateway(NET_IP_ADDR_NONE);
#else /* APP_DHCPc_EN */
App_IP_Addr = NetASCII_Str_to_IP(APP_CFG_IP_ADDR_STR_THIS_HOST, &err);
App_IP_Mask = NetASCII_Str_to_IP(APP_CFG_IP_ADDR_STR_NET_MASK, &err);
App_IP_DfltGateway = NetASCII_Str_to_IP(APP_CFG_IP_ADDR_STR_DFLT_GATEWAY, &err);
App_IP_DNS_Srvr = NetASCII_Str_to_IP(APP_CFG_IP_ADDR_STR_DNS_SRVR, &err);
App_IP_NTP_Srvr = NetASCII_Str_to_IP(APP_CFG_IP_ADDR_STR_NTP_SRVR, &err);
App_Clk_UTC_Offset = APP_CFG_CLK_UTC_OFFSET;
NetIP_CfgAddrThisHost(App_IP_Addr, App_IP_Mask);
NetIP_CfgAddrDfltGateway(App_IP_DfltGateway);
APP_TRACE_DEBUG((" MAC address = %s\n", pmac));
APP_TRACE_DEBUG((" IP address = %s\n", APP_CFG_IP_ADDR_STR_THIS_HOST));
APP_TRACE_DEBUG((" IP mask = %s\n", APP_CFG_IP_ADDR_STR_NET_MASK));
APP_TRACE_DEBUG((" IP gateway = %s\n", APP_CFG_IP_ADDR_STR_DFLT_GATEWAY));
(void)&App_IP_DNS_Srvr;
(void)&App_IP_NTP_Srvr;
#endif /* APP_DHCPc_EN */
}
#endif /* APP_TCPIP_EN */
#if APP_DHCPc_EN
/*
*********************************************************************************************************
* INITIALIZE DHCP CLIENT
*********************************************************************************************************
*/
static void App_InitDHCPc (void)
{
NET_ERR err;
CPU_INT08U *opt;
CPU_INT08U buf[16];
void *param_pos;
CPU_INT08U param_len;
CPU_INT08U param_req_list[] = {DHCP_OPT_HOST_NAME,
DHCP_OPT_DOMAIN_NAME,
DHCP_OPT_DOMAIN_NAME_SERVER,
DHCP_OPT_NETWORK_TIME_PROTOCOL_SERVER,
DHCP_OPT_TIME_OFFSET};
DHCPc_SetMacAddr(NetIF_MAC_Addr);
DHCPc_SetClientID(0x01, NetIF_MAC_Addr, NET_IF_ADDR_SIZE);
DHCPc_SetVendorClassID("YourCompany", 11);
DHCPc_SetParamReqList(param_req_list, sizeof(param_req_list) / sizeof(param_req_list[0]));
APP_TRACE_DEBUG(("Get DHCP lease... "));
err = DHCPc_Start();
if (err != DHCPc_ERR_NONE) {
APP_TRACE_DEBUG(("failed!\n"));
while (DEF_YES) {
; /* Can't obtain a DHCP lease: nothing to do! */
}
}
APP_TRACE_DEBUG(("success!\n"));
DHCPc_CfgStack();
DHCPc_Print(DHCPc_GetHdr());
/* Must Mem_Copy because header may be misaliged. */
Mem_Copy(&App_IP_Addr,
&(DHCPc_GetHdr()->yiaddr),
sizeof(DHCPc_GetHdr()->yiaddr));
App_IP_Addr = NET_UTIL_NET_TO_HOST_32(App_IP_Addr);
opt = DHCPc_GetOpt(DHCP_OPT_SUBNET_MASK);
if (opt != (void *)0) {
param_pos = ((void *)(opt + 2));
param_len = (*(CPU_INT08U *)(opt + 1));
Mem_Copy(&App_IP_Mask, param_pos, param_len);
App_IP_Mask = NET_UTIL_NET_TO_HOST_32(App_IP_Mask);
}
opt = DHCPc_GetOpt(DHCP_OPT_ROUTER);
if (opt != (void *)0) {
param_pos = ((void *)(opt + 2));
param_len = (*(CPU_INT08U *)(opt + 1));
Mem_Copy(&App_IP_DfltGateway, param_pos, param_len);
App_IP_DfltGateway = NET_UTIL_NET_TO_HOST_32(App_IP_DfltGateway);
}
opt = DHCPc_GetOpt(DHCP_OPT_DOMAIN_NAME_SERVER);
if (opt != (void *)0) {
param_pos = ((void *)(opt + 2));
param_len = (*(CPU_INT08U *)(opt + 1));
Mem_Copy(&App_IP_DNS_Srvr, param_pos, param_len);
App_IP_DNS_Srvr = NET_UTIL_NET_TO_HOST_32(App_IP_DNS_Srvr);
} else {
App_IP_DNS_Srvr = NetASCII_Str_to_IP(APP_CFG_IP_ADDR_STR_DNS_SRVR, &err);
}
opt = DHCPc_GetOpt(DHCP_OPT_NETWORK_TIME_PROTOCOL_SERVER);
if (opt != (void *)0) {
param_pos = ((void *)(opt + 2));
param_len = (*(CPU_INT08U *)(opt + 1));
Mem_Copy(&App_IP_NTP_Srvr, param_pos, param_len);
App_IP_NTP_Srvr = NET_UTIL_NET_TO_HOST_32(App_IP_NTP_Srvr);
} else {
App_IP_NTP_Srvr = NetASCII_Str_to_IP(APP_CFG_IP_ADDR_STR_NTP_SRVR, &err);
}
opt = DHCPc_GetOpt(DHCP_OPT_TIME_OFFSET);
if (opt != (void *)0) {
param_pos = ((void *)(opt + 2));
param_len = (*(CPU_INT08U *)(opt + 1));
Mem_Copy(&App_Clk_UTC_Offset, param_pos, param_len);
App_Clk_UTC_Offset = NET_UTIL_NET_TO_HOST_32(App_Clk_UTC_Offset);
} else {
App_Clk_UTC_Offset = APP_CFG_CLK_UTC_OFFSET;
}
opt = DHCPc_GetOpt(DHCP_OPT_HOST_NAME);
if (opt != (void *)0) {
param_pos = ((void *)(opt + 2));
param_len = (*(CPU_INT08U *)(opt + 1));
if (param_len < CPU_CFG_NAME_SIZE) {
Mem_Copy(&App_HostName, param_pos, param_len);
} else {
Mem_Copy(&App_HostName, param_pos, CPU_CFG_NAME_SIZE);
}
}
opt = DHCPc_GetOpt(DHCP_OPT_IP_ADDRESS_LEASE_TIME);
if (opt != (void *)0) {
param_pos = ((void *)(opt + 2));
param_len = (*(CPU_INT08U *)(opt + 1));
Mem_Copy(&App_DHCP_LeaseTime, param_pos, param_len);
App_DHCP_LeaseTime = NET_UTIL_NET_TO_HOST_32(App_DHCP_LeaseTime);
}
NetASCII_IP_to_Str(App_IP_Addr, buf, DEF_NO, &err);
APP_TRACE_DEBUG((" DHCP IP address : %s\n", buf));
NetASCII_IP_to_Str(App_IP_Mask, buf, DEF_NO, &err);
APP_TRACE_DEBUG((" DHCP IP mask : %s\n", buf));
NetASCII_IP_to_Str(App_IP_DfltGateway, buf, DEF_NO, &err);
APP_TRACE_DEBUG((" DHCP IP gateway : %s\n", buf));
NetASCII_IP_to_Str(App_IP_DNS_Srvr, buf, DEF_NO, &err);
APP_TRACE_DEBUG((" DHCP DNS server : %s\n", buf));
NetASCII_IP_to_Str(App_IP_NTP_Srvr, buf, DEF_NO, &err);
APP_TRACE_DEBUG((" DHCP NTP server : %s\n", buf));
APP_TRACE_DEBUG((" DHCP UTC offset : %d\n", App_Clk_UTC_Offset));
if (App_DHCP_LeaseTime > 0) {
APP_TRACE_DEBUG((" DHCP Lease Time : %d seconds.\n", App_DHCP_LeaseTime));
} else {
APP_TRACE_DEBUG((" DHCP Lease Time : Infinite\n"));
}
}
#endif /* APP_DHCPc_EN */
#if APP_DNSc_EN
/*
*********************************************************************************************************
* TEST DNS CLIENT
*********************************************************************************************************
*/
static void App_TestDNSc (void)
{
CPU_INT32U dns_test;
CPU_INT08U buf[16];
NET_ERR err;
dns_test = DNSc_GetHostByName("192.168.0.3");
NetASCII_IP_to_Str(NET_UTIL_NET_TO_HOST_32(dns_test), buf, DEF_NO, &err);
APP_TRACE_DEBUG(("gethostbyname (\"192.168.0.3\") = %s.\n", buf));
if (dns_test == 0) {
APP_TRACE_DEBUG(("Error: %s.\n", DNSc_GetLastErrMsg()));
}
dns_test = DNSc_GetHostByName("www.jidec.com");
NetASCII_IP_to_Str(NET_UTIL_NET_TO_HOST_32(dns_test), buf, DEF_NO, &err);
APP_TRACE_DEBUG(("gethostbyname (\"www.jidec.com\") = %s.\n", buf));
if (dns_test == 0) {
APP_TRACE_DEBUG(("Error: %s.\n", DNSc_GetLastErrMsg()));
}
dns_test = DNSc_GetHostByName("www.micrium.com");
NetASCII_IP_to_Str(NET_UTIL_NET_TO_HOST_32(dns_test), buf, DEF_NO, &err);
APP_TRACE_DEBUG(("gethostbyname (\"www.micrium.com\") = %s.\n", buf));
if (dns_test == 0) {
APP_TRACE_DEBUG(("Error: %s.\n", DNSc_GetLastErrMsg()));
}
dns_test = DNSc_GetHostByName("345345ssbn5");
NetASCII_IP_to_Str(NET_UTIL_NET_TO_HOST_32(dns_test), buf, DEF_NO, &err);
APP_TRACE_DEBUG(("gethostbyname (\"345345ssbn5\") = %s.\n", buf));
if (dns_test == 0) {
APP_TRACE_DEBUG(("Error: %s.\n", DNSc_GetLastErrMsg()));
}
}
#endif /* APP_DNSc_EN */
#if APP_FTPc_EN
/*
*********************************************************************************************************
* TEST FTP CLIENT
*********************************************************************************************************
*/
#define FTPc_TEST_BUF_SIZE (2048 * 1024)
static CPU_INT08U FTPc_TestBuf[FTPc_TEST_BUF_SIZE];
static void App_TestFTPc (void)
{
NET_IP_ADDR server_addr;
CPU_INT16U server_port;
CPU_CHAR *username;
CPU_CHAR *password;
CPU_INT08U *buf;
CPU_BOOLEAN result;
NET_ERR net_err;
APP_TRACE_DEBUG(("Test FTP client...\n"));
server_addr = NetASCII_Str_to_IP("192.168.0.2", &net_err);
server_port = 10210;
username = "anonymous";
password = "test@test.com";
buf = (CPU_INT08U *)0x10000000;
result = FTPc_Open(server_addr, server_port, username, password, &net_err);
if (result == DEF_FAIL) {
APP_TRACE_DEBUG(("FTPc_Open() failed.\n"));
return;
}
APP_TRACE_DEBUG(("FTPc: Sending %d bytes...\n", FTPc_TEST_BUF_SIZE));
result = FTPc_SendBuf("test/test", buf, FTPc_TEST_BUF_SIZE, DEF_NO, &net_err);
if (result == DEF_FAIL) {
APP_TRACE_DEBUG(("FTPc_SendBuf() failed.\n"));
FTPc_Close(&net_err);
return;
}
APP_TRACE_DEBUG(("FTPc: Receiving %d bytes...\n", FTPc_TEST_BUF_SIZE));
result = FTPc_RecvFile("test/test", "test", &net_err);
if (result == DEF_FAIL) {
APP_TRACE_DEBUG(("FTPc_RecvFile() failed.\n"));
FTPc_Close(&net_err);
return;
}
APP_TRACE_DEBUG(("FTPc: Sending %d bytes...\n", FTPc_TEST_BUF_SIZE));
result = FTPc_SendFile("test/test", "test", DEF_NO, &net_err);
if (result == DEF_FAIL) {
APP_TRACE_DEBUG(("FTPc_SendFile() failed.\n"));
FTPc_Close(&net_err);
return;
}
APP_TRACE_DEBUG(("FTPc: Receiving %d bytes...\n", FTPc_TEST_BUF_SIZE));
result = FTPc_RecvBuf("test /test", FTPc_TestBuf, FTPc_TEST_BUF_SIZE, &net_err);
if (result == DEF_FAIL) {
APP_TRACE_DEBUG(("FTPc_RecvBuf() failed.\n"));
FTPc_Close(&net_err);
return;
}
APP_TRACE_DEBUG(("FTPc: Comparing %d bytes... ", FTPc_TEST_BUF_SIZE));
result = Mem_Cmp(buf, FTPc_TestBuf, FTPc_TEST_BUF_SIZE);
if (result == DEF_FAIL) {
APP_TRACE_DEBUG(("FAILED!\n"));
} else {
APP_TRACE_DEBUG(("SUCCESS!\n"));
}
result = FTPc_Close(&net_err);
if (result == DEF_FAIL) {
APP_TRACE_DEBUG(("FTPc_Close() failed.\n"));
}
}
#endif /* APP_FTPc_EN */
#if APP_POP3c_EN
#define BUFFER_SIZE 2000
#define POP3c_TEST_SERVER_IP "0.0.0.0"
#define POP3c_TEST_USER ""
#define POP3c_TEST_PASS ""
void App_TestPOP3c (void)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -