【nRF52/53】【笔记分享】基于 BLE LBS DFU使用内部外部Flash 升级

本专栏由非官方人员 王小小海 所著,其内容主要记录了在开发5340的过程中遇到的一些问题和解决方法,还有一些应用的例程。作者本人也是在实践应用中遇到的问题,想着把这些问题分享给可能遇到的朋友。仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。

本专栏不涉及基础的安装和环境搭建问题,本例程开发使用最新版本的NCS 2.6.0开发,还请注意!。

本文代码位置

https://gitee.com/seliverwang/ble_lbs_ext_flash_v260

2024.04.29 增加 52840 分支,实现内部外部FLashDFU升级。
2024.05.01 增加 nrf7002dk_nrf5340 分支,实现内部外部FLashDFU升级。由于nrf7002dk的配置有些许不同,更改了Kconfig.dfu的内容

前言

最近很多朋友在后台问我有没有 nRF5340 BLE 外部Flash升级例程,给他们解答了之后,想想还是有很多朋友不知道,这次我就来分享一下 nRF5340 BLE DFU升级 使用内部,外部FLASH的配置方法。


所有分享内容

笔记分享

  1. 【笔记分享】NCS下radio_test添加FEM
  2. 【笔记分享】5340基于 BLE LBS 自定义网络核固件点亮LED并合并固件
  3. 【笔记分享】5340基于LBS自定义网络核双核DFU实现
  4. 【笔记分享】5340 设置public address 和 random address
  5. 【笔记分享】NCS nRF52/53 添加LVGL组件驱动屏幕
  6. 【笔记分享】VirtualBox Ubuntu22.04 不能使用nrfjprog问题记录

应用分享

暂无


NCS nRF5340 BLE LBS DFU使用内部外部Flash 升级

前提准备和介绍

准备材料

  1. NCS 2.6.0 开发环境。
  2. nRF53 系列开发板。
  3. gitee提供的例程代码。

本文使用 nRF5340 DK自带的 FLASH进行外部FLASH升级,如果需要自己接的FLASH那么可以详细看文章。本文根据上诉 Gitee上面的代码来描述当前nRF5340 使用外部Flash进行升级的流程,并且将需要的DFU配置都添加到了一个文件,大家有需要直接复制到自己的工程修改一下 CMAKE和KCONFIG 即可运行。


步骤一、

将Gitee下载下来的例程代码中的 dfu 文件拷贝到自己的工程中。因为能够大大减少错误率,提高效率。

在这里插入图片描述

步骤二

修改根目录下的CMakeLists.txt 为以下内容,注意放置位置,位置不对也会报错:

在这里插入图片描述

步骤三

修改根目录下的KCONFIG文件内容,添加以下内容

在这里插入图片描述

步骤四

进行编译

在这里插入图片描述

如果编译 正确那么会提示

在这里插入图片描述

如果编译错误,需要查看是不是上诉的宏填写错误了。

分区表查看

内部FLASH升级分区表

在这里插入图片描述

外部FLASH升级分区表

在这里插入图片描述


拓展

如果你使用的不是DK板需要自定义FLASH,并且不是QSPI接口,那么你就需要修改以下文件内容,可以看到 Gitee上面 overlay-dfu_external_flash.overlay 原始文件和修改过后的文件不同的地方就是把 QSPI删除了,并且删除了它的节点 mx25r64,新建了一个SPI4 节点的 mx25r128,这个mx25r128名字是随便取的,如果你取 mx25r64 那么会冲突。
顺便说一下,还需要修改 SPI4的 pinctrl 如果你需要修改SPI4默认引脚的话。

2024.04.28 增加 W25Q64 overlay参考。

在这里插入图片描述

修改了以上overlay之后还不够需要在继续修改 overlay-mcuboot_external_flash.conf 文件中的内容,如下图:将图示中的
CONFIG_SPI
CONFIG_SPI_NOR
CONFIG_SPI_NOR_SFDP_DEVICETREE
CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE
取消注释,在执行步骤一的编译操作即可。

在这里插入图片描述

编译结果。

在这里插入图片描述


结束语

以上为整个基于 BLE LBS DFU使用内部外部Flash 升级笔记分享,本文内容较多,不过大多数都是在 overlay中使能对应的 设备树节点,zephyr编译期间去识别对应的节点是否存在,然后在转换为宏来开启对应功能,不太明白可以看一下gitee中的代码。

有不明白的地方欢迎提问,也厚脸皮要个赞或者关注,谢谢各位啦。


本系列文章大多数是本人遇到和解决过的问题,难有疏忽之处,有什么问题或者不明白的地方,欢迎留言询问!

  • 16
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值