Hi all,
First, be so kind of pointing me the right sub-forum if this is not the right one. Thanks.
I'm currently developing a board using the m54455evb as model, with MCU10.1 and MQX 3.6.2 (MFS, RTCS and Shell). As test program, I'm adapting the "Shell Test" included in the MQX 3.6.1 release (no mayor changes in the MQX3.6.2 version). This includes Ramdisk, the RTCS library and a simple shell to test the board capabilities. The code works fine.
When porting the code to my board, I have found that my hardware is designed to work in MII mode interface and the evaluation board works in RMII. I have changed the "_bsp_enet_io_init " function in the "gpio_init.c" file under BSP, so it initializes my FEC into MII mode. No other changes to FEC configuration have been made.
From:ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC0(7)) | MCF5445_GPIO_PAR_FEC_FEC0_RMII_GPIO;To:ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC0(7)) | MCF5445_GPIO_PAR_FEC_FEC0_MII;
Then, after rebuilding the whole set of libraries and flashing the device, I can ping from/to the board for a few seconds. After those, the program hangs. Its strange because I can even start a Telnet server on the board if I hurry. But before a minute has pass, It hangs. Normally in the middle of a RTCS instruction.
I'm open to any ideas regarding this issue.
Thanks.
Solved! Go to Solution.
By the way this is my _bsp_enet_io_init:
void _bsp_enet_io_init (uint_32 device) { VMCF5445_STRUCT_PTR ptr; if (device < BSP_ENET_DEVICE_COUNT) { ptr = _PSP_GET_IPSBAR(); ptr->GPIO.PAR_FECI2C |= MCF5445_GPIO_PAR_FECI2C_MDC0_MDC0 | MCF5445_GPIO_PAR_FECI2C_MDIO0_MDIO0; ptr->GPIO.PAR_FECI2C |= MCF5445_GPIO_PAR_FECI2C_MDC1_MDC1 | MCF5445_GPIO_PAR_FECI2C_MDIO1_MDIO1; // TODO (FIXME) resolve pin setting conflict between FEC0 and ULPI, FEC1 and ATA if (device == 0) //ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC0(7)) | MCF5445_GPIO_PAR_FEC_FEC0_RMII_GPIO; ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC0(7)) | MCF5445_GPIO_PAR_FEC_FEC0_MII; else //ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC1(7)) | MCF5445_GPIO_PAR_FEC_FEC1_RMII_GPIO; ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC1(7)) | MCF5445_GPIO_PAR_FEC_FEC1_MII; } }
I just updated to MQX 3.7 and the problem is solved.