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).

Reply via email to