I'm having a couple of troubles with some code i'm writing which requires the new and delete operators ( as you have guessed i'm writing in c++).
The first problem is that if i use the pre_init.c file, to reset to zero the whole ram, when the routine starts, if i call the new inside main(), the device reset itself. I can't understand what's happening because from the look of it it seems that resetting the ram will corrupt the heap section, which shouldn't be possible since the initialization occur after the ram reset.
Does anyone have an explanation for this?
The second problem is that if i don't use the pre_init.c file, and i can use "new" without a crash, only half of the heap can actually be use used. What about the other half? Is it needed to keep track of the first half?
john doe95743only half of the heap can actually be use used
The reason is that there is an "overhead" in the heap in the form of a linked-list to keep track of the allocations. Looking at the code in the memory.c file in the RTS library the minimum size of the overhead is 4 bytes per allocation, and will be more if either the RTS DEBUG option or large data model is used.
I quite don't undestand what happened, but when I allocated an array there were no problem at all...
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.