nrf52840 内部 flash 结构

个人博客

所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 nixgnauhcuy's blog

如需转载,请标明出处!

前言

不同的 SDK 版本 flash 结构可能不同,以实际 SDK 版本提供的为准。

最近开发用的芯片正好是 Nodic 的 52840,学习过程中,正好对相关的知识做个总结,方便自己后面回顾。

先贴出一张 52840 和 52832 的 flash 结构图,这个是在网上翻阅资料找到的图片,当时保存到电脑里,正好拿出来用。

image

图片以 nRF52840 S140 v6 为例,52840 有 1MB 的 flash 和 256Kb RAM, 从上图可以看出 flash 最下边是 SoftDevice(蓝牙协议栈),中间是 Application(应用层), 再往上是 UserData 和 Bootloader。SoftDevice 下边还有 MBR(Master Boot Record,主引导记录)下边我们在详细分析它们。


52840 flash 结构解析

SoftDevice(蓝牙协议栈)

上边图中可以知道 SoftDevice 在 Flash 中的映射地址是 0x00000000-0x00026000,总共是 152Kb,但是其中要拆分成 4Kb 的 MBR 和 148Kb 的 Softdevice。

image

MBR(Master Boot Record,主引导记录), The main functionality of the MBR is to provide an interface to allow in-system updates of the application, the SoftDevice, and bootloader firmware1,MBR 的主要功能是提供一个接口,以允许对应用程序,SoftDevice 和引导加载程序固件进行系统内更新。


Application

Application 存放了我们应用程序代码,在 Flash 中的映射地址是 0x00026000-0x000ED000,共 796Kb。


UserData

UserData 存放了配置信息,资料中是这样解释的:This 28KB section of flash memory is reserved for config settings. It uses an open source file system called Little File System, which is a part of ARM Mbed OpenSource to store bonding data. For example, when you bond the nRF52 with another Central device,用于存储绑定数据,它在 Flash 中的映射地址是 0x000ED000-0x000F4000,共 28Kb。


Bootloader

Bootloader,总共 48Kb,但是要拆分成三部分,分别是2

  • Bootloader(40Kb,引导程序,0x000F4000-0x000FE000)
  • Master Boot Record Params(4Kb,主引导记录参数,0x000FE000-0x000FF000)
  • Bootloader Settings(4Kb,引导程序设置,0x000FF000-0x00100000)

Bootloader3

A bootloader may be used to handle in-system update procedures.

The bootloader has full access to the SoftDevice Application Programming Interface (API) and can be implemented like any application that uses the SoftDevice. In particular, the bootloader can make use of the SoftDevice API for Bluetooth® Low Energy communication.

上边是官方文档的原文,bootloader主要用于处理系统内更新程序,主要用途有:

  • booting into an application
  • activating new firmware
  • optionally, entering DFU mode where DFU transports are activated and new firmware can be delivered
  • feeding the watchdog timer

Master Boot Record Params

官方文档中没有找出相关的信息,但是应该和 MBR 相似,存放了程序引导信息。


Bootloader Settings4

Bootloader Settings 保存了 bootloader 和 DFU 信息,如:

  • current firmware - size, CRC-32,当前固件 - 大小,CRC-32。
  • pending firmware - size, CRC-32,待定的固件--大小,CRC-32。
  • progress of the firmware update,固件更新的进度。
  • progress of the firmware activation,激活固件的进度。
  • current firmware versions (application and bootloader),当前的固件版本(应用程序和引导程序)。
  • transport-specific data,传输特定数据。

其他

除了 flash 中的结构地址映射外,还需要关注 FICR(信息配置寄存器,0x10001000) 和 UICR(用户信息配置寄存器,0x10000000),

  • FICR, 存储了工厂信息配置,是在出厂时预先编程的,用户不能擦除。这些寄存器包含了芯片特有的信息和配置。
  • UICR, 可以用于配置用户特定设置的非易失性存储器(NVM)寄存器,用于管理 FLASH 区域(0x0-0x80000)中的 NVM 存储器存储,一般不建议在这里面存储信息,除非不使用 softdevice 则可以通过 fstorage 将数据写入 UICR (即只能在禁用 softdevice 时使用)。

52840 上电运行流程

上电后,系统先执行 softdevice,softdevice 通过读取 UICR 一个寄存器的值,来判断目前系统是否有 BootLoader ,如果没有 BootLoader ,系统直接跳到 application;如果有 BootLoader,系统先跳到 BootLoader,BootLoader 再根据目前的情况来决定是进入升级模式还是跳往 application。


结尾

本人水平有限,错误、疏漏之处在所难免,还请各位多多包涵,如有问题,欢迎评论指导我修正错误,也希望本文能给你带来一些对 52840 flash 映射理解上的帮助!

参考


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容