crownstone / bluenet

Bluenet is the in-house firmware on Crownstone hardware. Functions: switching, dimming, energy monitoring, presence detection, indoor localization, switchcraft.
https://crownstone.rocks
91 stars 62 forks source link

Clarification required: CORE_BL_RAM #108

Closed mrquincle closed 3 years ago

mrquincle commented 3 years ago

There is a reference to CORE_BL_RAM in the linker files of the boatloader.

I suppose this is not actually used... However, if it is used, we have a problem. If RAM has to be preserved for the bootloader during an update process, we have to move the IPC section below this part.

mrquincle commented 3 years ago

This is only used for the mesh bootloader. We do not use the mesh bootloader.

BUILD_MESH_BOOTLOADER=0

The relevant section in our bootloader does not require anything special w.r.t. RAM:

MEMORY
{
  FLASH (rx) : ORIGIN = BOOTLOADER_START_ADDRESS, LENGTH = BOOTLOADER_LENGTH
  RAM (rwx) :  ORIGIN = RAM_START, LENGTH = RAM_LENGTH
  RAM_BLUENET_IPC (rwx): ORIGIN = RAM_BLUENET_IPC_START, LENGTH = RAM_BLUENET_IPC_LENGTH
  mbr_params_page (r) : ORIGIN = 0x0007E000, LENGTH = 0x1000
  bootloader_settings_page (r) : ORIGIN = 0x0007F000, LENGTH = 0x1000
  uicr_mbr_params_page (r) : ORIGIN = 0x10001018, LENGTH = 0x4
  uicr_bootloader_start_address (r) : ORIGIN = 0x10001014, LENGTH = 0x4
}