This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/OMAPL137-HT: Programming 64KB of ARM internal ROM and MMU tables

Part Number: OMAPL137-HT
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