nRF52832 BLE_DFU空中升级OTA(二)编译下载(SDK14.2.0)
上一篇配置好了开发环境,现在就可以试着跑一下例程了,这里需要两个例程,一个是bootloader的,一个是应用程序的,其路径分别为:
bootloader:SDK_14.2.0工程\examples\dfu\bootloader_secure_ble\pca10040\arm5_no_packs
应用程序:SDK_14.2.0工程\examples\ble_peripheral\ble_app_buttonless_dfu\pca10040\s132\arm5_no_packs
这里用到了一些工具(参考文章及下载地址http://www.cnblogs.com/iini/p/9314246.html)下面开始步骤
1,双击“key_generate.bat”以生成相应的私钥(priv.pem)和公钥(dfu_public_key.c)
“key_generate.bat”代码如下,也可以在CMD命令行输入
::generate private key nrfutil keys generate priv.pem ::generate public key related with private key: priv.pem nrfutil keys display --key pk --format code priv.pem --out_file dfu_public_key.c
2,将dfu_public_key.c替换目录SDK_14.2.0工程\examples\dfu\dfu_req_下的同名文件,这个是公钥,写入bootloader里面的
3,编译bootloader工程:SDK_14.2.0工程\examples\dfu\bootloader_secure_ble\pca10040\arm5_no_packs
4,将生成的hex改为:bootloader.hex,放入(替换)Script_SDK14_S132_nRF52832文件夹
5,编译应用程序工程:SDK_14.2.0工程\examples\ble_peripheral\ble_app_buttonless_dfu\pca10040\s132\arm5_no_packs
6,将生成的hex修改为:app.hex,放入(替换)Script_SDK14_S132_nRF52832文件夹
7,双击“settings_page_generate.bat” 生成settings.hex
“settings_page_generate.bat”代码如下
::generate settings page for current image: app.hex nrfutil settings generate --family NRF52 --application app.hex --application-version 1 --bootloader-version 2 --bl-settings-version 1 settings.hex
8,双击“mass_program.bat”来烧录softdevice,app和bootloader,自带擦除芯片和合并hex
“mass_program.bat”代码如下
::merge bootloader and settings mergehex.exe --merge bootloader.hex settings.hex --output bl_temp.hex ::merge bootloader, app and softdevice mergehex.exe --merge bl_temp.hex app.hex s132_nrf52_5.0.0_softdevice.hex --output whole.hex nrfjprog.exe --eraseall -f NRF52 nrfjprog.exe --program whole.hex --verify -f NRF52 ::the following two commands are used to enable PIN RESET ::nrfjprog.exe --memwr 0x10001200 --val 0x00000015 --verify -f NRF52 ::nrfjprog.exe --memwr 0x10001204 --val 0x00000015 --verify -f NRF52 nrfjprog.exe --reset -f NRF52
好了,到了这一步,就可以用利用nRF Connect或nRF Toolbox来连接设备看看是否有dfu的标志了,接下来是怎么升级,至于升级的程序(工程)怎么来,下一篇再介绍
9,将新的工程(用来升级的)编译的hex文件改名为app_new.hex,放入(替换)Script_SDK14_S132_nRF52832文件夹
10,双击“zip_generate.bat”,生成SDK14_app_s132.zip,注意这里用到了私钥priv.pem,私钥要保管好哦
“zip_generate.bat”代码如下
nrfutil.exe pkg generate --application app_new.hex --application-version 2 --hw-version 52 --sd-req 0x9D --key-file priv.pem SDK14_app_s132.zip
11,下载SDK14_app_s132.zip到手机,利用nRF Connect或nRF Toolbox升级
附图
连接
界面
使能
进入bootloader
选择升级
升级中