pkg/nordic_softdevice_ble: reset memory in the .hex file

softdevice needs the memory at 0x2000 to be initialized to 0xffffffff
according to #5893 and testing. However, the addresses [0x8bc, 0x3000[ are not
set in softdevice.hex.

So use a modified hex file with all the memory set to 0xff as it is the rom
reset value anyway.

This change updates the `.hex` file instead on relying on erasing the
memory.
This commit is contained in:
Gaëtan Harter 2019-05-27 15:13:28 +02:00
parent e5fe8684ea
commit f3e72009e8
No known key found for this signature in database
GPG Key ID: 76DF6BCF1B1F883B
2 changed files with 5 additions and 2 deletions

View File

@ -21,7 +21,7 @@ ifeq (jlink,$(PROGRAMMER))
# special options when using SoftDevice # special options when using SoftDevice
ifneq (,$(filter nordic_softdevice_ble,$(USEPKG))) ifneq (,$(filter nordic_softdevice_ble,$(USEPKG)))
export JLINK_PRE_FLASH := erase\nloadfile $(BINDIR)/softdevice.hex export JLINK_PRE_FLASH := loadfile $(BINDIR)/softdevice.hex
export FLASH_ADDR := 0x1f000 export FLASH_ADDR := 0x1f000
export LINKER_SCRIPT ?= $(RIOTCPU)/$(CPU)/ldscripts/$(CPU_MODEL)_sd.ld export LINKER_SCRIPT ?= $(RIOTCPU)/$(CPU)/ldscripts/$(CPU_MODEL)_sd.ld
# murdock: softdevice.hex file is used for flashing # murdock: softdevice.hex file is used for flashing

View File

@ -21,8 +21,11 @@ prepare: $(PKG_SRCDIR)/.extracted
$(BINDIR)/ble_6lowpan.a: $(PKG_SRCDIR)/.extracted $(BINDIR)/ble_6lowpan.a: $(PKG_SRCDIR)/.extracted
cp $(PKG_SRCDIR)/$(BLE_6LOWPAN_LIB) $@ cp $(PKG_SRCDIR)/$(BLE_6LOWPAN_LIB) $@
# softdevice.hex has the `[0x8bc, 0x3000[` addresses not set.
# However, it requires that the value at `0x2000` is 0xFFFFFFFF
# We just put all the undefined memory to 0xff as it is the rom reset value anyway.
$(BINDIR)/softdevice.hex: $(PKG_SRCDIR)/.extracted $(BINDIR)/softdevice.hex: $(PKG_SRCDIR)/.extracted
cp $(PKG_SRCDIR)/$(SOFTDEVICE) $@ $(Q)$(OBJCOPY) $(OFLAGS) -Oihex --gap-fill 0xff $(PKG_SRCDIR)/$(SOFTDEVICE) $@
$(PKG_SRCDIR)/.extracted: $(PKG_BUILDDIR)/$(PKG_FILE) $(PKG_SRCDIR)/.extracted: $(PKG_BUILDDIR)/$(PKG_FILE)
rm -rf $(@D) rm -rf $(@D)