Hi,
The RAM size in NRF52832 linker script is wrong.
For example, in nRF52832_XXAA_s113.lds,
GROUP(S113_softdevice.o)
MEMORY
{
FLASH_SOFTDEVICE (RX) : ORIGIN = 0x00000000, LENGTH = 0x0001c000
FLASH (rx) : ORIGIN = 0x1c000, LENGTH = 0x64000
SRAM_SOFTDEVICE (RWX) : ORIGIN = 0x20000000, LENGTH = 0x0000260c
RAM (rwx) : ORIGIN = 0x2000260c, LENGTH = 0x1d9f4
}
which means the RAM is 0x0000260c+0x1d9f4 = 128K
However, according to the datasheet, it should be 64K. The wrong RAM size leads to a wrong stack address, and the program crashes immediately after reset.
Also, in nRF52832_XXAA_nosoftdev.lds , the RAM size is 0x1d9f4, which simply removes the SRAM_SOFTDEVICE part. But if there is no softdevice, the whole ram should be accessible to the user code.
-
This topic was modified 4 years, 5 months ago by wtywtykk.