We are using the official software version v00.04.00, and the configuration in the HCG is as follows:
1、Pin Muxing
2、Input Pin Muxing
3、Special Pin Muxing
4、EMAC Configuration
5、VIM Channel 64-95
6、VIM RAM
7、GCM
8、PLL
May I ask if there are any errors in the configuration on the HCG?
My modifications in project v00.04.00 are as follows:
1、The modifications to the function EMAC_LwIP_Main are as follows:
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、The modifications to the function sciDisplayText are as follows:
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、The modifications in lwiplib.h are as follows:
#define IPADDR_USE_STATIC 1
#define IPADDR_USE_DHCP 0
#define IPADDR_USE_AUTOIP 0
4、The modifications in lwipopts.h are as follows:
#define LWIP_DHCP 0
My Ethernet configuration on the computer host side is as follows:
IP:192.168.2.43
NETMASK:255.255.255.0
GATEWAY:192.168.2.254
Despite attempting to ping our custom hardware from the computer host, I am unable to establish a successful connection. I cannot identify the cause of the issue.