Hello,
we have an existing C-Multi-Project. One project for board specific implementation, one project for "kernel" implemenation and one for the application. The board and kernel project are compiled to a library and included in the application project which generates the hex-file when compiling.
Till now we used the Compiler Version 5.06. Now i wanted to update to Compiler Version 6.12. I got some Warnings and Errors and corrected them. Now there's one last error and i couldn't find a solution for it...
The error message is:
.\Objects\application_bang2.axf: Error: L6218E: Undefined symbol __libc_fini_array (referred from rtx_conf_cm.o)..\Objects\application_bang2.axf: Error: L6218E: Undefined symbol __libc_init_array (referred from rtx_conf_cm.o).Not enough information to list image symbols.Not enough information to list load addresses in the image map.
The Target is STM32L4A6RGTx, uVision V5.28, we DON'T use the microlib, language C is C99, language C++ is c++11 (but we use no C++ in our project), the Keil RTX is also included as library (RTX_CM4.lib).
I already did a lot of internet research, but didn't find a solution or the root cause of the problem. Often i read that libc_init_array initializes C++ objects at startup, but we don't use any C++ in our project...
Has anyone an idea in which direction i should search or had similiar problems?
Thanks for your help in advance!
Kr Patrick
Hi Andreas,
Thanks for your input!
You're right. I tried it with RTX 4.82 and the compiling and linking worked.
Meanwhile i also did the migration to RTX5 (Level 2 Migration) that i can use RTX4 for the old projects and RTX5 for the new projects and it also works.
Thank you all for your help!
Patrick
Hi PatrickI would like to correct my previous response.The CMSIS RTOS-1 (starting from v4.81) and CMSIS RTOS-2 APIs are compiler independant and thus should be supported with both AC5 and AC6