Hello: If anyone is using the nrf52 BSP with the latest code changes you might run into strange issues due to the change we made to get back 32K of RAM. If you go to the nordic infocenter and read the errata for the nrf52 it mentions that the full 64K of RAM is not accessible starting from 0x20000000. Only 32K of RAM is accessible at this address (up to 0x20008000). You can use the other 32K of RAM but this must be located in Code RAM, which starts at 0x8000000. We decided to place the exception stack and the heap in this region and keep .data and .bss in Data RAM.
There is one BIG caveat to using Code RAM: you cannot use this memory with any peripherals that support EasyDMA. For example, you cannot use this memory for packet buffers as you cannot DMA to/from this memory region. Our plan is to modify the linker script to put the heap and stack back into Data RAM. We will keep the CODE_RAM memory region and create a named section called .nzbss which can be used to locate variables in this region. Note that .nzbss stands for “non-zeroed” bss. There are two things to note about locating variables in this section: 1) they will not be automatically zeroed and 2) cannot be used for EasyDMA. Note that we could modify the startup code to zero out this memory region but we decided not to do this as this is a temporary fix (we dont expect anyone to be using the nrf52 with this issue in it).
