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

Softdevice suitable for multilink central NRF51822

Hi, I am using NRF51822 and GCC compiler. I am using softdevice S130. SDK 12.2. I want to receive the data from Peripheral that is one way only. I want to use multilink central application on NRF51822. When i compile the code then i got the error as

/usr/local/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld: region RAM overflowed with stack

I checked in Makefile, Heap size is zero only. How can i use the nrf51822 to fit this application? i changed the RAM area as

RAM (rwx) :  ORIGIN = 0x20001fe8, LENGTH = 0x2018

Is it possible to use other SD and reduce some more RAM?

  • For single GAP Peripheral link you can go with legacy S110 which has slightly smaller RAM and flash footprint. However this lacks some features of S130 and also it stopped evolving much earlier then S130 (but that is basically at the end of dev life cycle as well now, all Nordic effort goes to nRF52...)

    Btw. I believe you should be able to make it work with S130 just by reviewing linker RAM limits and what Soft Device reports back during initialization. At least if you use 32kB RAM version of nRF51 it should work (but 16kB might as well, you would need more than 6-8kB of RAM by your app to cross the limit but that's hopefully not the case - and if it is you might think about some optimizations like merging some large RAM buffers together where possible).

  • my bad. I have module with 16KB version. I think you are right. i should go with NRF52. But i am facing one more problem. If i flashed S130 and peripheral blinky example then NRF51 works some time after powering OFF and ON cycle. it is not at all getting start. I kept above mentioned RAM setting.

  • Hard to say, I cannot run the example right now to go step by step with you. But all Nordic projects can be debugged either in Keil or when you enable RTT/UART debug logging. What exactly is your project saying? I recommend to start with pre-compiled HEX file, test, if all OK then compile it yourself without any change, test again, and only then fiddle with anything, especially RAM settings. If you encounter any issue in any step, open new question and describe in the greatest detail what HW you have, what project/SDK/SoftDevice you use, what exactly you did, what you expect to happen and what happened instead.

Related