本专栏由非官方人员 王小小海 所著,其内容主要记录了在开发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的配置方法。
所有分享内容
笔记分享
- 【笔记分享】NCS下radio_test添加FEM
- 【笔记分享】5340基于 BLE LBS 自定义网络核固件点亮LED并合并固件
- 【笔记分享】5340基于LBS自定义网络核双核DFU实现
- 【笔记分享】5340 设置public address 和 random address
- 【笔记分享】NCS nRF52/53 添加LVGL组件驱动屏幕
- 【笔记分享】VirtualBox Ubuntu22.04 不能使用nrfjprog问题记录
应用分享
暂无
文章目录
- 本文代码位置
- 前言
- 所有分享内容
- 笔记分享
- 应用分享
- NCS nRF5340 BLE LBS DFU使用内部外部Flash 升级
- 前提准备和介绍
- 步骤一、
- 步骤二
- 步骤三
- 步骤四
- 分区表查看
- 拓展
- 结束语
NCS nRF5340 BLE LBS DFU使用内部外部Flash 升级
前提准备和介绍
准备材料
- NCS 2.6.0 开发环境。
- nRF53 系列开发板。
- 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中的代码。
有不明白的地方欢迎提问,也厚脸皮要个赞或者关注,谢谢各位啦。
本系列文章大多数是本人遇到和解决过的问题,难有疏忽之处,有什么问题或者不明白的地方,欢迎留言询问!