The following documentation page provides you with a good overview on the topic:
You have encountered two limitations with your application:
- Increasing the “Duration” allows the capture of large real-time buffers. These buffers use heap section to allocate memory. A high value of “Duration” may result in *Not enough memory on the target to process the packet* warning, and consequently cause no data to be uploaded from the target to the host computer.
- You are requesting for a higher heap size by using heap_size=0x4000. With this change the section that stores the heap section (.sysmem or .esysmem) is not big enough to satisfy your request, even though your target has sufficient memory.
To resolve the underlying problem, you need to provide more heap space to satisfy your request by adding more sections to the heap area (.sysmem/.esysmem) in your .cmd file. This can be done, by editing the linker file present in the location "matlab\toolbox\target\supportpackages\tic2000_concerto\src\c28335.cmd".
When you open the .cmd file, you will see something like the following:
.sysmem: > RAML0L3, PAGE = 1
.esysmem: > RAML0L3, PAGE = 1
if RAMM1 is a section that has more free memory, then change the .cmd file to
.sysmem: > RAML0L3 | RAMM1 , PAGE = 1
.esysmem: > RAML0L3 | RAMM1 , PAGE = 1
The OR ( '|' ) operation will allow heap to request memory from RAMM1, where RAMM1 is just an example. Please play around to figure out the memory section that is underutilized by perusing your generated .map file. Please note that the generated .map file gives no implicit information on the free memory.
Best Answer