NRF52832的DFU

news/2024/10/30 21:30:04/

开发环境:

Winsodw:10

nRF5_SDK:17.1.0

1 工具安装

1.1 gcc-arm-none-eabi

Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer

下载“gcc-arm-none-eabi-10.3-2021.10-win32.exe”,接提示安装。注意安装完后添加环境变量。

1.2 minGW

MinGW - Minimalist GNU for Windows download | SourceForge.net

下载mingw-get-setup.exe,安装过程中要下载很多包,估计要1~2小时安装完成。

1.3 python

最好根据pc-ble-driver-py的版本来安装python的版本,否则下面安装nrfutil失败时无法解决。

pc-ble-driver-py · PyPI

在上面的网站查看pc-ble-driver-py对应的python版本。

1.4 pc-nrfutil

Release v6.1.7 · NordicSemiconductor/pc-nrfutil · GitHub

# 解压后安装
python setup.py install# 如果pc_ble_driver_py版本不对,手动安装pc_ble_driver_py
pip install pc_ble_driver_py-0.17.0-cp310-cp310-win_amd64.whl

 在命令行输入“nrfutil”查看是否安装成功。

 1.5 micro-ecc源码

Release 1.1 · kmackay/micro-ecc · GitHub

解压后将文件夹micro-ecc-1.1改名为micro-ecc,后放在external\micro-ecc下

双击打开C:\MinGW\msys\1.0\msys.bat,进到 external/micro-ecc/nrf52hf_armgcc/armgcc目录。编译lib文件。

 2 生成key

mkdir key
cd key
nrfutil keys generate private.key
nrfutil keys display --key pk --format code private.key --out_file dfu_public_key.c

然后将生成的dfu_public_key.c替换examples\dfu\dfu_public_key.c

3 boot工程和应用工程的编译

3.1 boot工程编译

打开工程examples\dfu\secure_bootloader\pca10040_s132_ble\ses编译。

 如果报错,修改examples\dfu\secure_bootloader\pca10040_s132_ble\ses\flash_placement.xml文件。删除size="0x4"。

 将生成的secure_bootloader_ble_s132_pca10040.hex改名为boot.hex放到key文件夹中。

3.2 应用工程编译

打开工程examples\ble_peripheral\ble_app_buttonless_dfu\pca10040\s132\ses编译。

如果报错,删除nRF_Segger_RTT下的SEGGER_RTT_Syscalls_SES.c文件。如果找不到函数定义,记得把头文件路径加到工程中。

将生成的ble_app_buttonless_dfu_pca10040_s132.hex改名为app.hex放到key文件夹中。

3.3 生成zip

nrfutil pkg generate --hw-version 52 --application-version 1 --application app.hex --sd-req 0x101 --key-file
private.key test_dfu.zip
# --hw-version:硬件版本nrf52822为51,nrf52832为52
# --application-version:应用的版本号,用户自已设置
# --sd-req:协议栈版本

4 DFU

先烧写s132_nrf52_7.2.0_softdevice.hex,boot.hex,app.hex,烧写完成后,用nRF connect扫描,发现DfuTarg,此时程序不会自动运行app,需要dfu一次才能运行app。

 连接后点右上角的dfu,选zip包

 开始升级

 升级完成后,设备重启,此时扫描到Nordic_Buttonless

 连接后使用Swcure DFU Service即可以进入boot,再一次升级。

 5 seting文件的使用

之前烧写的程序,必需要dfu一次才能运行app,使用seting文件即可以解决这个问题。

nrfutil settings generate --family NRF52 --application app.hex --application-version 1 --bootloader-version 1 --bl-settings-version 1 setting.hex

重新烧写s132_nrf52_7.2.0_softdevice.hex,boot.hex,app.hex和setting.hex,然后使用nRF connect扫描,这次就直接运行app了。


http://www.ppmy.cn/news/318181.html

相关文章

Jetson nano镜像烧录教程

一、SD卡格式化 1.安装SD Card Formatter软件 网盘资源 链接:https://pan.baidu.com/s/1I8_eqPG062cZ0XuSpmB1TA 提取码:m88w 2.打开软件 3.格式化SD卡 第一步、选择SD卡的磁盘分区 第二步、选择快速格式化(Quick format) 第三步、点击 Format 进行格式化 4.点击 是…

Jackson,Fastjson详细教程

Jackson&#xff0c;Fastjson详细教程 1.Jackson2.解决Jackson的中文乱码问题3.多种样式的json4.Fastjson 1.Jackson 导入Maven依赖&#xff1a; <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency><gro…

Jetson Nano烧录系统及系统初始化设置

要使用ZED相机&#xff0c;主控制器就必须具有英伟达显卡&#xff0c;因此我使用了jetson nano板子&#xff0c;该板子就具有英伟达显卡&#xff0c;价格也不是很贵&#xff0c;方便使用。ZED相机需要下载对应的SDK包才能使用&#xff0c;且SDK包只对Jetpack4.4、Jetpack4.5、J…

反馈放大电路与功率放大电路(模电速成)

目录 一、反馈放大电路 1、四种基本组态 2、按反馈信号的极性来分 3、相关参数计算 4、引入电压串联负反馈 5、反馈类型判断 6、深度负反馈 二、功率放大电路 1、功率放大电路基础 2、最大输出功率问题 一、反馈放大电路 1、四种基本组态 电压串联 、电压并联、电流串…

mac系统dns的服务器地址,苹果Mac快速切换DNS地址的方法图文详解

苹果Mac电脑在不同的情况下需要切换不同的DNS地址&#xff0c;那么&#xff0c;Mac如何快速切换DNS地址呢&#xff1f;针对此问题&#xff0c;本文就为大家图文详细介绍苹果Mac快速切换DNS地址的方法&#xff0c;有兴趣的朋友们可以了解下 有很多使用苹果Mac电脑的用户可能需要…

mac系统打开ftp服务器,mac系统打开ftp服务器

mac系统打开ftp服务器 内容精选 换一换 Windows操作系统的本地PC,通过RDP协议(如MSTSC方式)远程桌面连接Windows弹性云服务器报错,报错显示:您的凭据无法工作,之前用于连接到云主机的凭据无法工作,请输入新凭据。请按照以下步骤依次排查,并在每一个步骤执行完后重新连接W…

MacBook如何切换操作win系统?2023最新版Parallels虚拟机

总之&#xff0c;如果你正使用Mac电脑&#xff0c;并且要使用其他系统平台的软件&#xff0c;尤其是Windows软件的话&#xff0c;那么使用虚拟机将会是比使用 BootCamp安装原生双系统更加方便&#xff0c;功能更丰富&#xff01; Parallels Desktop可以在 macOS 上提供给你无与…

苹果系统中英文输入法切换_Mac 一键切换中英输入法方案

1. 前言 原文发布在语雀:Mac 一键切换中英输入法方案 语雀​www.yuque.com 一般 mac 自带有:ABC 输入法 简体拼音 但是简体拼音并不足够好用,因此很多人会再加一个第三方输入法:搜狗、百度等等。 从使用经验上来讲,第三方输入法的中文足以覆盖简体拼音键盘。英文使用 ABC…