我们使用的是官方软件版本 v00.04.00、HCG 中的配置如下:
1、引脚多路复用
2、输入引脚多路复用
3、特殊引脚多路复用
4 μ A EMAC、
5、VIM 通道64-95
6、VIM RAM
7、GCM
8、PLL
我是否可以问、HCG 的配置是否有任何错误?
我在项目 v00.04.00中的修改如下:
1、对函数 EMAC_LwIP_Main 的修改如下:
void EMAC_LwIP_Main (uint8_t * macAddress) { unsigned int ipAddr; uint8_t testChar; struct in_addr devIPAddress; //iommUnlock(); //iommMuxEnableMdio(); //iommMuxEnableMii(); //iommLock(); // sciInit(); /* Enable the interrupt generation in CPSR register */ IntMasterIRQEnable(); _enable_FIQ(); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); sciDisplayText(sciREGx, txtTitle, sizeof(txtTitle)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); sciDisplayText(sciREGx, txtTI, sizeof(txtTI)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); #ifdef __little_endian__ sciDisplayText(sciREGx, txtLittleEndian, sizeof(txtLittleEndian)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); #else sciDisplayText(sciREGx, txtBigEndian, sizeof(txtBigEndian)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); #endif /* Initialze the lwIP library, using DHCP.*/ sciDisplayText(sciREGx, txtEnetInit, sizeof(txtEnetInit)); // ipAddr = lwIPInit(0, macAddress, 0, 0, 0, IPADDR_USE_DHCP); /* Uncomment the following if you'd like to assign a static IP address. Change address as required, and uncomment the previous statement. */ uint8 ip_addr[4] = { 192, 168, 2, 44 }; uint8 netmask[4] = { 255, 255, 255, 0 }; uint8 gateway[4] = { 192, 168, 2, 254 }; ipAddr = lwIPInit(0, macAddress, *((uint32_t *)ip_addr), *((uint32_t *)netmask), *((uint32_t *)gateway), IPADDR_USE_STATIC); sciDisplayText(sciREGx, (uint8_t*)"..DONE", sizeof("..DONE")); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); if (0 == ipAddr) { sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); sciDisplayText(sciREGx, txtErrorInit, sizeof(txtErrorInit)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); } else { /* Convert IP Address to string */ devIPAddress.s_addr = ipAddr; txtIPAddrItoA = (uint8_t *)inet_ntoa(devIPAddress); LocatorConfig(macAddress, "HDK enet_lwip"); /* Initialize the sample httpd server. */ sciDisplayText(sciREGx, (uint8_t*)"Starting Web Server", sizeof("Starting Web Server")); // httpd_init(); sciDisplayText(sciREGx, (uint8_t*)"..DONE", sizeof("..DONE")); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); /* Loop forever. All the work is done in interrupt handlers. */ while(1) { sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); sciDisplayText(sciREGx, txtTitle, sizeof(txtTitle)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); sciDisplayText(sciREGx, txtTI, sizeof(txtTI)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); #ifdef __little_endian__ sciDisplayText(sciREGx, txtLittleEndian, sizeof(txtLittleEndian)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); #else sciDisplayText(sciREGx, txtBigEndian, sizeof(txtBigEndian)); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); #endif sciDisplayText(sciREGx, txtIPAddrTxt, sizeof(txtIPAddrTxt)); sciDisplayText(sciREGx, txtIPAddrItoA, 16); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); sciDisplayText(sciREGx, txtNote1, sizeof(txtNote1)); sciDisplayText(sciREGx, txtIPAddrItoA, 16); sciDisplayText(sciREGx, txtCRLF, sizeof(txtCRLF)); /* Before printing the next set, wait for a character on the terminal */ // sciReceive(sciREGx, 1, &testChar); } } }
2、对函数 sciDisplayText 的修改如下:
void sciDisplayText(sciBASE_t *sci, uint8_t *text,uint32_t length) { // while(length--) // { // while ((sci->FLR & 0x4) == 4); /* wait until busy */ // sciSendByte(sci,*text++); /* send out text */ // }; }
3、lwiplib.h 中的修改如下:
#define IPADDR_USE_STATIC 1 #define IPADDR_USE_DHCP 0 #define IPADDR_USE_AUTOIP 0
4、 lwipopts.h 中的修改如下:
#define LWIP_DHCP 0
我在计算机主机端的以太网配置如下:
IP:192.168.2.43
网络掩码:255.255.255.0
网关:192.168.2.254
尽管尝试从计算机主机 ping 我们的自定义硬件、但我无法成功建立连接。 我无法确定问题的原因。