Other Parts Discussed in Thread: OMAP-L137
Tool/software: TI-RTOS
Hi,
Currently I am trying optimize the application code size so that we can run the entire code from Shared RAM( 0x80000000 - 0x8001 FFFFh). The application code is running SYS/BIOS RTOS RTOS.
But code size exceeds the amount of available Shared RAM. And we using the internal RAM(0xFFFF0000 - 0xFFFFFFFF) to load the .data and .const sections.
We wanted to make use of 64KB of ARM ROM(00xFFFDFFFF xFFFD FFFF).
I tried to place some part of code to 64KB ROM. The method I followed is create a section ".internalROM" and move some part of the code to ".internalROM" using #pragma CODE_SECTION (function_name,".internalRom").
Program.sectMap[".internalRom"] = new Program.SectionSpec();
Program.sectMap[".internalRom"].loadSegment = "SHARED_RAM";
Program.sectMap[".internalRom"].runSegment = "IROM";
After the code is loaded, from main(), I will start moving the code from SHARED_RAM to IROM using the below code
uint32_t* vector_table =(uint32_t*) 0x80004000;
for (i=0;i<(0x10000>>2);i++)
{
*( unsigned int* )( 0xfffd0000+(i*sizeof(uint32_t))) = vector_table[i];
}
But this above method is not working because I could see that no data is being written to ROM(memory browser window).
Let me know method I followed is proper or not?.
Also can we debug the code from ROM?
Also we have MMU tables of 16KB. Is that needed when while running the SYS/BIOS RTOS and from Shared memory?
Thanks and Regards
Girish