This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
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

How to execute code from RAM on nRF51 using GCC Environment

How to execute code from RAM on nRF51 using GCC Environment

Parents
  • Hi,

    You can place a function in RAM in GCC like this:

    __attribute__((used, long_call, section(".data"))) void some_func(void)
    {
      do_something();
    }
    

    Then you should check the .map file to see that it's located somewhere in RAM (0x2000XYZZ)

    Cheers, Håkon

  • Hi Håkon,

    I just put the adverise_init into RAM to test whether attribute((used, long_call, section(".data"))) command will work or not. Right now I am thinking about what are the functions i can run from the RAM. Do you have any document or can you share some information about what are the functions in general/softdevice calls i can move it to RAM, So that i can achieve the maximum power optimization.

    Note: The reason i am trying to execute code from RAM instead of flash is to optimize the power. When i check the nRF51822 version 3.1 product specification doc , i found there is 1.7 mA current consumption difference between Flash and RAM code execution.

    Regards, Anand

Reply
  • Hi Håkon,

    I just put the adverise_init into RAM to test whether attribute((used, long_call, section(".data"))) command will work or not. Right now I am thinking about what are the functions i can run from the RAM. Do you have any document or can you share some information about what are the functions in general/softdevice calls i can move it to RAM, So that i can achieve the maximum power optimization.

    Note: The reason i am trying to execute code from RAM instead of flash is to optimize the power. When i check the nRF51822 version 3.1 product specification doc , i found there is 1.7 mA current consumption difference between Flash and RAM code execution.

    Regards, Anand

Children
No Data
Related