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.
Tool/software: Code Composer Studio
Hi,
I am trying to use lwIP and FreeRTOS in a project. I tried it manually with the guidance of sources below. Also, I searched lots of sources too.
https://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration
Finally, I referenced your Support Teams advice project link in below:
https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/799670?RTOS-TMS570LC4357-How-can-i-use-to-lwIP-at-RTOS
But I am getting error like below:
**** Build of configuration Debug for project TMS570LC4357_FreeRTOS_LWIP ****
"C:\\ti\\ccsv8\\utils\\bin\\gmake" -k -j 4 all -O
Building file: "../source/HL_sys_vim.c"
Invoking: ARM Compiler
"C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl" -mv7R4 --code_state=32 --float_support=VFPv3D16 --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/source" --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/include" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/example/hdk/inc" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/lwip-1.4.1" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/lwip-1.4.1/src/include" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/lwip-1.4.1/src/include/ipv4" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/lwip-1.4.1/ports/hdk/check" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/lwip-1.4.1/ports/hdk/include/netif" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/lwip-1.4.1/ports/hdk/include" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/lwip-1.4.1/ports/hdk/netif" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/lwip-1.4.1/ports/hdk" --include_path="C:/Users/KURSADC/workspace_v8/TMS570LC4357_FreeRTOS_LWIP/lwip-1.4.1/apps/httpserver_raw" --define=_TMS570LC43x_ -g --diag_warning=225 --diag_wrap=off --display_error_number --enum_type=packed --abi=eabi --endian=big --preproc_with_compile --preproc_dependency="source/HL_sys_vim.d_raw" --obj_directory="source" "../source/HL_sys_vim.c"
Finished building: "../source/HL_sys_vim.c"
Building target: "TMS570LC4357_FreeRTOS_LWIP.out"
Invoking: ARM Linker
"C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/bin/armcl" -mv7R4 --code_state=32 --float_support=VFPv3D16 --define=_TMS570LC43x_ -g --diag_warning=225 --diag_wrap=off --display_error_number --enum_type=packed --abi=eabi --endian=big -z -m"TMS570LC4357_FreeRTOS_LWIP.map" --heap_size=0x800 --stack_size=0x800 -i"C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/lib" -i"C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/include" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="TMS570LC4357_FreeRTOS_LWIP_linkInfo.xml" --rom_model --be32 -o "TMS570LC4357_FreeRTOS_LWIP.out" "./example/hdk/src/lwip_main.obj" "./lwip-1.4.1/ports/hdk/lwiplib.obj" "./lwip-1.4.1/src/core/timers.obj" "./lwip-1.4.1/src/netif/ethernetif.obj" "./source/HL_emac.obj" "./source/HL_epc.obj" "./source/HL_errata.obj" "./source/HL_errata_SSWF021_45.obj" "./source/HL_esm.obj" "./source/HL_gio.obj" "./source/HL_mdio.obj" "./source/HL_nmpu.obj" "./source/HL_notification.obj" "./source/HL_phy_dp83640.obj" "./source/HL_phy_tlk111.obj" "./source/HL_pinmux.obj" "./source/HL_sci.obj" "./source/HL_sys_core.obj" "./source/HL_sys_dma.obj" "./source/HL_sys_intvecs.obj" "./source/HL_sys_main.obj" "./source/HL_sys_mpu.obj" "./source/HL_sys_pcr.obj" "./source/HL_sys_phantom.obj" "./source/HL_sys_pmm.obj" "./source/HL_sys_pmu.obj" "./source/HL_sys_startup.obj" "./source/HL_sys_vim.obj" "./source/HL_system.obj" "./source/os_croutine.obj" "./source/os_event_groups.obj" "./source/os_heap.obj" "./source/os_list.obj" "./source/os_mpu_wrappers.obj" "./source/os_port.obj" "./source/os_portasm.obj" "./source/os_queue.obj" "./source/os_tasks.obj" "./source/os_timer.obj" "../source/HL_sys_link.cmd" -l"C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.4.LTS/lib/rtsv7R4_T_be_v3D16_eabi.lib" -lrtsv7R4_T_be_v3D16_eabi.lib
<Linking>
undefined first referenced
symbol in file
--------- ----------------
EMACRxIntISR ./source/HL_sys_vim.obj
EMACTxIntISR ./source/HL_sys_vim.obj
httpd_init ./example/hdk/src/lwip_main.obj
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "TMS570LC4357_FreeRTOS_LWIP.out" not built
>> Compilation failure
makefile:188: recipe for target 'TMS570LC4357_FreeRTOS_LWIP.out' failed
gmake[1]: *** [TMS570LC4357_FreeRTOS_LWIP.out] Error 1
gmake: *** [all] Error 2
makefile:184: recipe for target 'all' failed
**** Build Finished ****
EMACRxINTSr and EMACTxINTSr are both defined in HL_sys_emac.c and HL_sys_emac.h also externed in HL_sys_vim.h
I also search similar issue in e2e to solve issue, I find a link below:
After I found it, I tried lots of things but nothing solved my problem. Please guide me with any solution.
Thanks for your attention,
Best Regards,
Asina-Chie-Shih-Shuai
Hello,
You mention that EMACRxINTSr and EMACTxINTSr are both defined in HL_sys_emac.c, but I don't see HL_sys_emac.obj as one of the object files passed to the linker. Is HL_sys_emac.c source file included in the project? If the functions/symbols are defined in that source file, then the file needs to be included in the build.
Yes, HL_sys_emac.c source file included in my project. I included it in my project source directory. I didn't understand the main reason of the problem.
I am attaching some of the snapshoots below. I think it will be usefull to express status detaily for clear explain.
My Versions:
Code Composer Studio : 8.3.0
HALCoGen : 4.7.1
HALCoGen EMAC Driver lwIP : v00.03.00
Run Time Support Library: TI v18.1.4.LTS
Thanks and Regards
In your first post, you mentioned:
"EMACRxINTSr and EMACTxINTSr are both defined in HL_sys_emac.c and HL_sys_emac.h also externed in HL_sys_vim.h"
In the screenshot, you highlight HL_emac.c. But I do not see a file named HL_sys_emac.c
So can you confirm if the symbols are defined in HL_emac.c?
If you would like us to confirm, please attach the following files (using the "Insert File" paper clip icon):
- HL_emac.c
- HL_sys_vim.c
- Build log - please do a Rebuild Project and save off the complete build log to a text file (as described here) and then attach the file here.
Sorry for missing information it is my syntax fault because of boiling brain. You are right there is no file like HL_sys_emac.c( it is HL_emac.c) or HL_sys_emac.h (it is HL_emac.h).
I attached desired files and my project directly. I also attached source code link in the below (If an error occurs while uploading a file). If we can run lwIP + FreeRTOS on TMS570LC4357 Launchpad HDK. We are aiming to apply UDP Multicast in a connected system in real-time with TMS570LC4357.
Source Code Link : /cfs-file/__key/communityserver-discussions-components-files/312/6505.TMS570LC4357_5F00_FreeRTOS_5F00_LWIP.7z
Source Code Link Post : https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/799670?RTOS-TMS570LC4357-How-can-i-use-to-lwIP-at-RTOS
2768.Desired_Files_and_Project_of_TMS570LC4357_lwIP_with_FreeRTOS.rar
Thanks and Regards
Since this project is based off an example provided by the Hercules team I will forward this thread to the experts there for their guidance.
Hi again,
I prepared a project that lwIP + Halcogen based and successfully builded. I have tried to ping to device to test everything is ok. Although, I follow official configuration steps on the HalCoGen side, system doesn't successfully pinging my Launchpad HDK. Any possibility for not pinging? Also, I have done debug the code to trace the issue. It is rising up in netif.c, it is being stuck in infinite loop.
Project (also my log Files and halcogen configurations snapshots):
Links that I use for official configuration:
https://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration
https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/799670?RTOS-TMS570LC4357-How-can-i-use-to-lwIP-at-RTOS
Thanks and Regards,
Hello,
Does the example in this link not work? You need to change the MPU setting for SRAM from cache write-back to cache write through.
RTOS/TMS570LC4357: How can i use to lwIP at RTOS - Arm-based microcontrollers forum - Arm-based microcontrollers...
When we directly download this example and include workspace it did not work. We are getting error like:
Unresolved symbol for below, (I include error logs )
EMACRxIntISR ./source/HL_sys_vim.obj
EMACTxIntISR ./source/HL_sys_vim.obj
When we have tried to configure MPU settings, its checkbox and configuration buttons grayed out for SRAM region (Region 3 Configuration). After, code side configuration has tried but does not work. (Before and after about code side configuration are below)
Logs and Project Files:
1638.Desired_Files_and_Project_of_TMS570LC4357_lwIP_with_FreeRTOS.rar
I attached my logs and other versions info again in below.
My Versions:
Code Composer Studio : 8.3.0
HALCoGen : 4.7.1
HALCoGen EMAC Driver lwIP : v00.03.00
Run Time Support Library: TI v18.1.4.LTS
Thanks and Regards
I noticed, I guess those two files are in different folder that was not zipped. I will check.
I did CTRL+H and found these lines before. But I wasn't able to give meaning, it is my mistake because of the overlook of "#if 0" line relation.
Thanks for your help with patience and attention.