This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x Industrial SDK Starterware lwip interface ?

Other Parts Discussed in Thread: SYSBIOS

Hi,

     I posted this problem over in the SYS/BIOS forum, but this may be a more appropriate location. The issue we are having is with the StarterWare lwip that is included in the Industrial SDK version 8 (am335x_sysbios_ind_sdk_1.0.0.8.) The issue happens during the reception of IP packets via the interrupt call routine (here is the call tree):

CPSWCore0RxIsr-->lwIPRxIntHandler-->cpswif_rx_inthandler-->tcpip_input-->memp_malloc

     In the memp_malloc function there is a call to "SYS_ARCH_DECL_PROTECT(old_level)" (memp.c). This call gets compiled into the SYS/BIOS function of sys_arch_protect() which attempts to use a SYS/BIOS GateMutex which is not allowed to be used during a Hardware interrupt. I have temporarily switched the sys_arch_protect to used interrupt disabling as a test, but this is not a true solution.

     So although the problem is occurring within SYS/BIOS, the answer to may be with the way the StarterWare lwip implementation is used. Is there a better way for the memp_malloc to work with SYS/BIOS? I've included a screen snip as a reference.

Thanks,

     John C.