ADSP-SC573
Production
The ADSP-SC57x/ADSP-2157x processors are members of the SHARC® family of products. The ADSP-SC57x processor is based on the SHARC+® dual-core and the...
Datasheet
ADSP-SC573 on Analog.com
How can I summarize the memory usage for my project?
I would like to know how much of each memory region I use (L1, L2 and L3 memory). Is there an easy way?
And is there a way to check how much stack and heap my application is using while running (I'm using ARM and both SHARC cores)?
Hi,
How can I summarize the memory usage for my project?
I would like to know how much of each memory region I use (L1, L2 and L3 memory). Is there an easy way?
>> We recommend determining the memory usage via the Map File generated by the Linker by enabling the option 'Project: Properties: C/C++ Build: Settings: CrossCore SHARC Linker: General: Generate symbol map'.
Map file shows the memory sections declared in the LDF, their start and end bounds and - most importantly - their free/used space. Using this map file you can determine whether there is perhaps a memory section that is being under-used that you could place more data into.
This will produce a "project_name.map.xml" file in 'debug' folder the project, this can be open in CCES's internal browser, via Right-clicking on the map.xml in CCES project explorer > open with > Other > internal web browser.
Also, please refer the below linked FAQ which might be helpful to you:
How to view the linker map file in any other modern browser instead of internet explorer?
And is there a way to check how much stack and heap my application is using while running (I'm using ARM and both SHARC cores)?
>> Stack and Heap are Run-time storage sections. There is no mechanism within the tools for monitoring the Stack usage in real-time. The only feature with stack is to set the stack overflow check in project option via -rtcheck-stack.
We recommend you to refer the below FAQ for more details on Stack overflow detection.
How to identify runtime stack overflow detection in CCES
Regards,
Santhakumari.V
A follow-up question. Is it possible to prefill the stack and heap with a pattern before main() is run? That way it would be possible to later inspect the stack and heap to determine the maximum stack and heap usage. Feels like that would be easier to do.
Hi,
The only option we would recommend customers is the stack overflow check, which can be enabled in your project settings using the compiler switch.
This option will insert runtime checks to help detect stack overflows during execution.
Beyond this, there is no built in mechanism to prefill or later inspect the stack/heap for maximum usage. We recommend continuing with the previously suggested approach for monitoring memory usage.
Regards,
Santhakumari.V