Hi
For heap use I think that you will need to look into the library used since I doubt that the IDE will be able to monitor such things.
Users of the uTasker project have a function that allows the state of stack and heap utilisation to be monitored at run time. Here is what the output looks like:
System memory use:
==================
Free heap = 0x6bf8 from 0xfc00
Unused stack = 0x00004721 (0x00005326)
uCalloc:
Size: 0x00003000
Max. objects: 50
Hole size limit: 0x1000
Allocated memory: 0x00000000 bytes with 0 holes
Allocs: 4 / De-Allocs: 4
Memory margin: 0x00002bc8
Max. used objects: 4
It uses stack margin monitoring which shows the worst case (lower safety margin) encountered during all operation. It then has a heap that is used for dynamic allocation of memory that won't need to be returned (zero overhead) of which its optional calloc() takes a defined amount for its use, whereas in the case above a memory stick was inserted and removed, showing that the USB host stack allocated 4 chunks and gave them all back resulting in all being returned without any holes and the peak utilisation still leaving a safety margin of 0x2bc8 bytes.
Based on such information from systems that have been running for a certain amount of time in which highest loading has been tested the actual peak utilisations and safetly margins become very clear and can allow further optimisating the memory utilisation to achieve highest performance while remaining within safe utilisation limits.
In very limited systems this information is critical to be sure of adequate safety margins in worst case loading situations.
Regards
Mark
[uTasker project developer for Kinetis and i.MX RT]
Contact me by personal message or on the uTasker web site to discuss professional training, solutions to problems or rapid product development requirements
For professionals searching for faster, problem-free Kinetis and i.MX RT 10xx developments the uTasker project holds the key: https://www.utasker.com/kinetis/FRDM-K22F.html