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.
Part Number: CCSTUDIO
Tool/software: Code Composer Studio
Thank you for providing your project files. Please give me a day or two to reproduce and look into this issue. I will get back to you as soon as I have more information.
Please click This Resolved My Issue if the reply answers your question.
Explore Code Composer Studio documentation and resources using online Resource ExplorerTrack the status of a known bug in the External Bug Tracking System. Visit this FAQ to learn how to search for a bug.
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to AartiG:
I compared the link map files (.map) for the working and not_working builds and found that the non_working version was missing the .intvecs section in addition to several .text sections from both the HAL and OS source files. If you compare the section allocation maps of the two .map files you will see the differences.
In the not_working version, since you are linking the HAL and OS as libraries, the linker will bring in only those library functions that are called from the main application. That is the intent of static libraries. In your project, functions like _c_int00 (in HL_sys_startup.c) and several others are not explicitly called from main.c, hence the linker does not bring them into the final link. This results in incorrect operation of the application. The linker does provide an option to force a library function into the build. Please read about the --undef_sym option in the ARM Assembly Language Tools Users Guide. If you choose this path, note that you would need to add this option for every unreferenced function/symbol that you want to force to be part of the executable. For a large number of symbols, it may be more practical to add the options to a command file, then supply that command file to the linker.
The other option of course is to add the source files directly to the project as you have done already with the working project.
Hope this helps.
Thanks for looking into that issue, I will try it today with option with the linker arguments.
Would you additionally please show me an example of a command file that adds symbols as undef_sym?
In reply to user6135372:
user6135372Would you additionally please show me an example of a command file that adds symbols as undef_sym?
Create a text file with .cmd extension that contains a list of linker options, like so:
You would need to add all functions/symbols that need to be brought into the link.
Then add that .cmd file to the project so it get passed to the linker along with other command files that are already present.
ok, thanks for the Details on the command file.
I had a detailed look at the map files, and the only things, that prevented the Startup seemed to be
after adding these two options, main was reached, FreeRTOS started, and LEDs started blinking.
Based on your answer I thought there must be missing more than one or two functions - can the solution really be so simple?
user6135372 can the solution really be so simple?
It can be.
I didn't know which functions were actually "required" for the application. The map file of the "non working" version showed several missing functions compared to the "working" version and I wasn't sure which ones were necessary.
Glad you have it working.
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. 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.