Part Number: TM4C129XNCZAD
Trying to change the IP address when using the HTTP server gives me the error: 00010.933 llExit: Illegal call to llExit()
The code changes the IP in response to an HTTP GET which contains the new IP value. I am trying to remove the CFGTAG_IPNET configuration in the same CGI function that received the HTTP GET message.
The CGI function gives the error when calling CfgRemoveEntry() and then CfgAddEntry() is not able to run. I can't tell for sure because the chip his loader_exit() when attempting to single step over the functions.
Other post have had a priority issue when getting the llExit error. There is a task called dchild that gets priority 9 (kernel) but I think this task is related to the HTTP server. I did not create this task in XGCONF.
Am I removing IPs in an unreasonable way? What is causing my error?
In reply to Peter Borenstein:
In reply to ToddMullanix:
My apologies for the lack of response. I'm still looking at this and will report back shortly. Thanks for your patience.
In reply to Steven Connell:
I finally have something for you! Please find the attached tarball which addresses the following 4 issues:
1. NDK-36 netsrv.c missing llEnter()/llExit() pair around socket clean up code (?) 2. NDK-225 Prevent lingering sockets from being freed in SockCleanPcb 3. NDK-230 Prevent lingering sockets from being freed when TCP_RST received 4. NDK-232 Call Sock6CleanPcb() when an IPv6 address is removed and/or IPv6 is deinitialized
Issues 2 - 4 were found as a result of fixing #1. They all involved race conditions to free sockets between different threads when an IP address was removed (the issue you hit) or when the stack was rebooted or shut down.
You should be able to drag and drop the packages folder from the attached onto your NDK intsallation's packages folder (e.g. C:/ti/tirtos_tivac_2_16_00_08/products/ndk_2_25_00_09/packages on your PC) and say "yes to all" (please make sure to back up your NDK installation! Or, you might want to first try this on a copy of the NDK install).
Once you've updated the files in your NDK with the attached, you will need to rebuild the NDK stack, and then rebuild your application.
Just reply back here if you need any more help with this or have any questions.
To be cautious, I am building in an ndk copy folder. The copied files appear to have compiled, but I do not know which library to copy back over to my main stack install. The NDK user guide says "If you configure the NDK in CCS with the XGCONF configuration tool, the appropriate NETCTRL library is automatically selected based on the modules you enable". How can I tell what library is selected by CCS? How can I tell that this library isn't being recompiled by CCS (undoing my changes)? The wiki gives instructions for building in debug mode. Do I need to build a copy with and without debug mode?
I can see a setting in CCS project properties to make a makefile in the projects Debug/ folder. There is no reference to an NDK file in this make file. In the console output, I see CCS creating another make file for sys/bios "making ../src/sysbios/sysbios.aem4f ...". I do not see any setting in CCS project properties for this make file. There is no reference to and NDK file here either. I found a _linkinfo.xml file that calls out packages\ti\ndk\hal\timer_bios\lib\hal_timer_bios.aem4f and packages\ti\ndk\netctrl\lib\netctrl_ipv4.aem4f. So The NDK lirabries are being specified somehow.. What is telling CCS to make the sys/bios library? How can I tell what NDK libraries are selected by CCS? When would it make NDK libraries?
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.