Nordic BLE Soc 存储器空间的分配与配置

2020-03-23  本文已影响0人  超级普普罗特

下面文章中使用nRF52832-QFAA(RAM64K, FLASH512K)举例.

FLASH分配

Nordic BLE Soc可以实现三类软件,

  1. 不带SoftDevice(蓝牙协议栈)的软件
  1. SoftDevice,不支持DFU(OTA)的软件
FLASH分区 地址范围 大小
Application area (incl. free space) 0x0002 6000 - 0x0008 0000 360 kB
SoftDevice 0x0000 1000 - 0x0002 6000 148 kB
Master Boot Record (MBR) 0x0000 0000 - 0x0000 1000 4 kB

从官网上下载的SoftDevice是包含MBR的,因此可以理解成 SoftDevice 在FLASH里的位置是0x0000 0000 - 0x0002 6000, Application 在FLASH里的位置是0x0002 6000 - 0x0008 0000。
因此,带SoftDevice,不支持DFU(OTA)的软件中,Application工程的FLASH配置如下,

Application工程的FLASH配置
  1. SoftDevice,且支持DFU的应用。
FLASH分区 地址范围 大小
Bootloader settings 0x0007 F000 - 0x0008 0000 4 kB
MBR parameter storage 0x0007 E000 - 0x0007 F000 4 kB
Bootloader 0x0007 8000 - 0x0007 E000 24 kB
Application area (incl. free space) 0x0002 6000 - 0x0007 8000 328 kB
SoftDevice 0x0000 1000 - 0x0002 6000 148 kB
Master Boot Record (MBR) 0x0000 0000 - 0x0000 1000 4 kB

RAM分配

虽然从工程上,程序分为SoftDevice, Application和Bootloader, 但是我们对RAM空间的分配重点考虑会同时访问RAM的程序。比如SoftDevice和Application(或者SoftDevice和Bootloader)。
这种情况我们将RAM空间分为两部分,

  1. SoftDevice的RAM空间
  1. Application的RAM空间
    根据上述SoftDevice 的RAM空间要求分配在RAM开始的位置,也就是0x20000000 - 0x20003000,Application工程里的RAM空间配置如下,

    Application工程里的RAM空间配置
  2. Bootloader的RAM空间
    Bootloader也需要用到SoftDevice,因此Bootloader和SoftDevice需要共用RAM。因此,Bootloader工程配置可以参考Application的工程配置。
    详细可以参考[SDK ROOT]\examples\dfu\secure_bootloader\pca10040_s132_ble\arm5_no_packs\secure_bootloader_ble_s132_pca10040.uvprojx

上一篇 下一篇

猜你喜欢

热点阅读