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

Custom scatter file error

Hi all,

I want to place a function at a specific location in the memory. I wrote the function in a separate source file and edited the default scatter file as follows:

LR_IROM1 0x00000000 0x80000  {    ; load region size_region
  ER_IROM1 0x00000000 0x5000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }

  ER_IROM2 0x9000 0x1000  {  ; load address = execution address
    fun.o                 ;place the function here
  }

  ; 8_byte_aligned(49 vect * 4 bytes) =  8_byte_aligned(0xC4) = 0xC8
  ; 32KB - 0xC8 = 0x7F38
  RW_IRAM1 0x100000C8 0x7F38  {
   .ANY (+RW +ZI)
  }
  RW_IRAM2 0x2007C000 0x4000  {  ; RW data, ETH RAM
   .ANY (AHBSRAM0)
  }
  RW_IRAM3 0x20080000 0x4000  {  ; RW data, ETH RAM
   .ANY (AHBSRAM1)
  }
  RW_IRAM4 0x40038000 0x0800  {  ; RW data, CAN RAM
   .ANY (CANRAM)
  }
}

The program compiles and links properly. However when I download the code, it does not run.
Anyone know what mistake I have done here?

Some Extra details:
Platform: ARM Cortex-M3, LPC1768 (Mbed)
The function is a simple blinking led routine.

Parents
  • If the two flash regions are just subsets of a larger flash region, then you can create a single bin file that have filler bytes (0xFF) to bridge the hole.

    Bin files can't contain holes so you either get multiple bin files or need one large with filler.

    Hex files contains address info so they can manage multiple regions in a single file.

Reply
  • If the two flash regions are just subsets of a larger flash region, then you can create a single bin file that have filler bytes (0xFF) to bridge the hole.

    Bin files can't contain holes so you either get multiple bin files or need one large with filler.

    Hex files contains address info so they can manage multiple regions in a single file.

Children
No data