This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How an application greater than 250KBytes can upload into nrf51822?

Hi, 

            I have an application of memory size 380Kbytes, I could able to upload application into a device which has nr51822. After checking the datasheet  of nrf51822 I noticed it has only 250kB of memory and 16kB of RAM. How can this be possible ? 

Parents
  • Check your linker options. In gcc-arm it is a .ld file:

    MEMORY
    {
            FLASH (rx) : ORIGIN =    0x26000, LENGTH = 0x5a000
            RAM  (rwx) : ORIGIN = 0x20000000 + __SOFTDEVICE_DATA_SIZE, LENGTH = 64K - __SOFTDEVICE_DATA_SIZE
    }

    Something like that. You can upload anything you want if the linker file says it will fit.

    That does not necessarily match reality. If you load past physical FLASH, it will wrap around. Nothing will actually work.

    Make sure your linker file/settings match physical reality.

Reply
  • Check your linker options. In gcc-arm it is a .ld file:

    MEMORY
    {
            FLASH (rx) : ORIGIN =    0x26000, LENGTH = 0x5a000
            RAM  (rwx) : ORIGIN = 0x20000000 + __SOFTDEVICE_DATA_SIZE, LENGTH = 64K - __SOFTDEVICE_DATA_SIZE
    }

    Something like that. You can upload anything you want if the linker file says it will fit.

    That does not necessarily match reality. If you load past physical FLASH, it will wrap around. Nothing will actually work.

    Make sure your linker file/settings match physical reality.

Children
Related