This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to reserve RAM with scatter file

Hello,

to make a long story short: we are working on several designs with the LPC11C24 and use the CAN on_chip driver. Therefore the memory from 0x1000 0050 to 0x1000 00B8 has to be reserved, as this is the region, where the built-in driver places its variables.

We again and again experienced troubles with our solution, where we placed an unused variable at this section:

static volatile uint8_t can_reserved[105] __attribute__((at(0x10000050)));

Our newest workaround is, to pretend the RAM to start at 0x1000 00B9 and therefore being slightly smaller. But I consider it to be not the best solution.

I tried to understand scatter files but I didn't manage :-(. Could anyone please help me to write the needed script? This is an automatically generated scatter file without the reservation. Could we do some "improvement" here :-)?

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x00000000 0x00008000  {    ; load region size_region
  ER_IROM1 0x00000000 0x00008000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x10000000 0x00001000  {  ; RW data
   .ANY (+RW +ZI)
  }
  RW_IRAM2 0x20004000 0x00000800  {  ; RW data
    *(usbram)
        USBTask.o(usbram, +Last)
  }
}

Thank you and best regards,

Daniel

0