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.
Question
How to resolve error 'Not enough memory on the target to process the packet' while working on TI C2000 in external mode? I want to make a real-time trace of several signals in my model while running with a sample rate of 10 kHz on a TI C2000 in external mode. My problem is that the real-time trace doesn’t behave as expected, although I have set the heap_size to 0x4000. Setting the duration in the “External Signal & Triggering” window of my model to 1000, works fine and I receive 1000 consecutive data points. Setting the duration to 2000, produces the error message “Not enough memory on the target to process the packet: EXT_SELECT_SIGNALS “ in the Diagnostic Viewer when I press the “Arm Trigger” button in the “External Mode Control Panel” and no values are transferred from the C2000 to the host-PC. Note that I cannot reduce the sample rate as the controller must work in real-time
Expert Answer
John Williams
PhD Expert
Answered Aug 26, 2026
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
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related ti Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →