协议栈烧录问题

第一个是nrf52840_xxaa是项目程序,第二个flash_s140_nrf52_7.2.0_softdevice是协议栈。

协议栈(SoftDevice)只需要烧录一次,之后更新应用程序时不需要再重新烧录它。

断电后不需要重新烧录协议栈,只要芯片没有被整片擦除,协议栈会一直保留在 Flash 中。

协议栈(SoftDevice)到底是什么?

SoftDevice 是 Nordic 半导体为 nRF5 系列芯片提供的预编译蓝牙协议栈二进制文件,它运行在芯片的 Flash 低地址区域(例如从 0x0 开始)。它负责:

  • 蓝牙 LE 协议的底层实现(链路层、HCI、GAP、GATT 等)

  • 射频硬件的驱动和管理

  • 中断处理、时间片调度、安全连接等功能

你的应用程序 运行在 Flash 的高地址区域(例如从 0x26000 开始),通过 SoftDevice 提供的 API 函数(如 sd_ble_gap_adv_start)来使用蓝牙功能,而不需要自己实现复杂的蓝牙协议。

这种架构类似于计算机的操作系统(SoftDevice)与应用程序的关系:操作系统负责底层硬件管理,应用程序通过系统调用与之交互。

原理:协议栈与应用程序是分离的

Nordic的芯片采用双分区存储架构,可以理解为:

  • 协议栈(SoftDevice) :相当于电脑的"操作系统",安装在Flash的低地址区域

  • 应用程序 :相当于电脑的"应用软件",安装在Flash的高地址区域

这两个区域在烧录时是独立且互不覆盖的。只要不执行整片擦除,协议栈就会一直保留在芯片里。

相关推荐
仰泳之鹅2 小时前
【51单片机】第一课:单片机简介与软件安装
单片机·嵌入式硬件·51单片机·1024程序员节
2201_756206342 小时前
STM32F407 + ML307 阿里云物联网项目总结
c语言·开发语言·嵌入式硬件
Zarek枫煜2 小时前
[特殊字符]栈(Stack)原理详解 \+ Zig / C3 双语言实现
c语言·单片机·嵌入式硬件·算法
小草cys3 小时前
轮足机器人无法直立的原因,哎
单片机·嵌入式硬件·机器人
kyle~3 小时前
ROS2 Control
c++·嵌入式硬件·机器人·ros2
EVERSPIN3 小时前
单片机外扩SRAM芯片:Async Fast EMI504WF08VB-10IE应用
单片机·嵌入式硬件·sram芯片·外扩sram·外扩sram芯片
LCG元3 小时前
STM32嵌入式开发:基于STM32F103的智能水族箱控制
stm32·单片机·嵌入式硬件
凌盛羽3 小时前
使用python绘图分析电池充电曲线
开发语言·python·stm32·单片机·fpga开发·51单片机
yongui478343 小时前
红外额温枪/体温枪单片机控制源码(STM32方案)
stm32·单片机·mongodb