美文网首页
Nordic BLE Soc 存储器空间的分配与配置

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

作者: 超级普普罗特 | 来源:发表于2020-03-23 13:23 被阅读0次

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

FLASH分配

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

  1. 不带SoftDevice(蓝牙协议栈)的软件
  • 将Soc当成普通MCU用,不使用蓝牙协议栈。
  • 程序包括Application(有时候也可以包括Bootloader,不讨论这种情况)。
  1. SoftDevice,不支持DFU(OTA)的软件
  • 蓝牙协议栈提供API接口进行调用。
  • FLASH和RAM各自划分成两部分,一部分给SoftDevice,一部分给Application。
  • FLASH分配如下,
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的应用。
  • 蓝牙协议栈提供API接口进行调用。
  • FLASH分配如下(也见SDK文档),分别给SoftDevice,Application和Bootloader相关。
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空间
  • 根据查阅官网下载的SoftDevice的压缩包里的s132_nrf52_x.x.x_release-notes.pdf可以获得SoftDevice所需的最小RAM空间。
    rs132_nrf52_7.0.1_release-notes
    然而,这是所需的最小RAM空间,实际使用的话,要将RAM空间上调到nrf_sdh_ble_enable函数调用时执行成功为止。我暂时分配的是0x3000。
  • SoftDevice 的RAM空间要求分配在RAM开始的位置,也就是0x20000000 - 0x20003000。
  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

相关文章

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

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

  • 第四章 内存管理

    内存管理的功能: 内存空间的分配与回收。由操作系统完成主存储器空间的分配与管理。 地址转换。存储管理必须提供地址变...

  • nordic ble pstorage记录

    pstorage 1 memory map 2 注意事项 memory register时最小分配单位为一个扇区,...

  • iOS开发-内存分配与分区

    iOS开发中的内存分配与分区 内存 关于RAM&ROM RAM与ROM就是具体的存储空间,统称为存储器。 RAM(...

  • 内存池

    内存管理 定义:操作系统对内存的划分和动态分配 功能: 内存空间的分配和回收:由操作系统完成主存储器空间的分配和管...

  • 【BLE】Nordic Softdevice命名规则

    Softdevice命名规则一:Softdevice包括两种底层协议栈:BLE和ANT。BLE包括两种角色:cen...

  • 【BLE】Nordic Keyboard & Mouse 的HI

    Keyboard HID Service: 下图是Nordic官方代码.\nRF5_SDK_15.2.0_9412...

  • STL源码剖析

    空间配置器 分为第一级空间配置器,和第二级空间配置器 配合使用 第一级空间配置器分配大内存大于128bytes...

  • 解决Nordic nRF5 SDK 16.0.0例程KEIL5

    最近有Nordic BLE的项目需求,想趁机将SDK升级到最新版本。从官网下载了16.0.0的SDK后,使用KEI...

  • STM32学习:存储器与寄存器

    一、寄存器及寄存器映射 存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程称为存储器...

网友评论

      本文标题:Nordic BLE Soc 存储器空间的分配与配置

      本文链接:https://www.haomeiwen.com/subject/odwiyhtx.html