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

can we run soft device from RAM instead of flash?

 is there any way to run soft device from RAM instead of flash? which function we can use for this .i am using s140 for nrf52840.

Parents
  • Nope. SD must run from flash. Google: Static linking in C language.

    Note that there is next to nothing to save in current consumtion - SD runs often, but not for a long time.

  • ok thanks let see. and i have one issue .

    i am trying  to run our code from ram instead of flash in nrf52840. in linker file we create one section like this


    MEMORY
    {
    FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xda000
    RAM (rwx) : ORIGIN = 0x20003bb8, LENGTH = 0x9000
    NO_INIT (rwx) : ORIGIN = 0x20009000, LENGTH = 0x2400000
    }

    SECTIONS
    {
    }

    SECTIONS
    {
    .no_init (NOLOAD):
    {
    PROVIDE(__start_no_init_data = .);
    KEEP(*(SORT(.no_init*)))
    PROVIDE(__stop_no_init_data = .);
    } > NO_INIT
    }

    and use txn fxn

    __attribute__((used, long_call, section(".no_init"))) void main(void)

    {
    ble_init();

    }

    code is succesfully build but in jlink we dont see any print msg and nrf connect dont see my device name .  can u suggest me how can i run our main fxn in ram instead of flash

Reply
  • ok thanks let see. and i have one issue .

    i am trying  to run our code from ram instead of flash in nrf52840. in linker file we create one section like this


    MEMORY
    {
    FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xda000
    RAM (rwx) : ORIGIN = 0x20003bb8, LENGTH = 0x9000
    NO_INIT (rwx) : ORIGIN = 0x20009000, LENGTH = 0x2400000
    }

    SECTIONS
    {
    }

    SECTIONS
    {
    .no_init (NOLOAD):
    {
    PROVIDE(__start_no_init_data = .);
    KEEP(*(SORT(.no_init*)))
    PROVIDE(__stop_no_init_data = .);
    } > NO_INIT
    }

    and use txn fxn

    __attribute__((used, long_call, section(".no_init"))) void main(void)

    {
    ble_init();

    }

    code is succesfully build but in jlink we dont see any print msg and nrf connect dont see my device name .  can u suggest me how can i run our main fxn in ram instead of flash

Children
Related