Tool/software: TI C/C++ Compiler
For detailed analysis of the software memory usage I would like to see the granular segmentation of each memory sections and their usage.
(using TI Compiler 5.1.6)
Currently in the mapfile I can see:
- which sections and regions are used, how much space they require/got allocated for them
- what objects I have and in which section they place the symbols and where the symbol starts in the memory space (but not the size!)
I would like to see more detailed information: i would like to know how much space the symbol requires, this information should be available and known for the compiler/linker.
e.g. I have a section ".normal_task_ram" place in internal RAM (lets say starting at 0x8000) of the TMS570 and into this section the obj "normal_task1" places 2 variables with the size of 20 and 40bytes, the I would expect something like this:
================================================================================ normal_task.obj Run/Load Value Size Binding Name (Section) -------- -------- -------- --------------- 00008000 00000014 local normal_task_var1 (.normal_task_ram:normal_task_var1) 00008050 00000028 global normal_task_var2 (.normal_task_ram:normal_task_var1)
Is this somehow possible for the linker to output the detailed information?
My best idea currently is to parse the mapfile and try to figure out which variable consumes the RAM by subtracting the addresses of the symbols in a given section, this is far by not accurate as there might be holes or the last symbol might be just placed at the end region where nothing follows but hollow ram region.
I found and checked the TI cg_xml tool, also checked the "xml_output" but none of them seems to be capable of what I'm trying to access here: simply the information from the linker output seems to be missing.
Is there a way to achieve my goal?