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