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

s130 2.0.0 ROM and RAM settings?

Hi,

I am using a 128KB-rom 16KB-ram nrf51822 and trying to run blinky from SDK 11 with softdevice.

If I load nrf51 S130 1.0.0 softdevice, and use the following in my gcc compiling setting: FLASH (rx) : ORIGIN = 0x1c000, LENGTH = 0x4000 RAM (rwx) : ORIGIN = 0x20002800, LENGTH = 0x1800 I was able to run blinky.

After I change to S130 2.0.0 softdevice, and use the following: FLASH (rx) : ORIGIN = 0x1b000, LENGTH = 0x5000 RAM (rwx) : ORIGIN = 0x20002800, LENGTH = 0x1800 blinky does not work any more. I assume the RAM setting is wrong? what should be the correct setting?

Also what is the correct ROM/RAM setting for S130 2.0.0-7.alpha? I can't get blinky to work with this SD either.

Thanks for any help!

Parents
  • It looks like we use Keil to generate the precompiled hex files.

    I was wrong in my last comment, the 4.5KB used in the application will include the stack used, so the hrs example use less than 16KB of RAM by default. Also if the stack overlaps with the heap, you will get an error from the compiler during linking, so this is not the problem.

    The difference between Keil and GCC is that GCC will place the stack at the top of the RAM (0x20004000 for 16KB ram) while Keil will place it after the heap (at SD ram size + app ram size + heap size + stack size) if heap is used, if not it will place it after application ram (heap is removed by keil if not used).

    Can you post the memory settings in the linker script so that I can confirm that it is correct?

Reply
  • It looks like we use Keil to generate the precompiled hex files.

    I was wrong in my last comment, the 4.5KB used in the application will include the stack used, so the hrs example use less than 16KB of RAM by default. Also if the stack overlaps with the heap, you will get an error from the compiler during linking, so this is not the problem.

    The difference between Keil and GCC is that GCC will place the stack at the top of the RAM (0x20004000 for 16KB ram) while Keil will place it after the heap (at SD ram size + app ram size + heap size + stack size) if heap is used, if not it will place it after application ram (heap is removed by keil if not used).

    Can you post the memory settings in the linker script so that I can confirm that it is correct?

Children
No Data
Related