Nrf51 学习笔记1

Nrf51 学习笔记1 bootloader移植

BootLoader

Dfu移植(基于sdk12.1 张xx的Bootloader基于 sdk12.3)

1.环境搭建
Nrf51_sdk_12_1.zip
解压至英文目录
Gcc-arm-none-eabi-4_9-20150921-win32.exe

Nrf51 学习笔记1
Mingw
(我这个版本以及gcc版本与其他不一样,但是也能用)
需要配置环境变量

Nrf51 学习笔记1
micro_ecc_lib_nrf51.lib
Micro-ecc-master.zip解压后重命名为\micro-ecc放入sdk12\external\micro-ecc
进入sdk12\external\micro-ecc\nrf51_keil\armgcc,打开命令窗口输入ming32-make.exe
如果路径不对修改components\toolchain\gcc\makefile.windows文件。
nrfutil工具 (用于**和升级包的的制作,请妥善保管好**)
Python2.7.15-amd64安装并配置环境变量(需加入Scripst目录,该目录相当于bin目录)
Python下pip安装
解压pc-nrfutil-master.zipNrf51 学习笔记1
后运行Python setup.py install 命令安装nrfutil,需要联网可能较慢。
2.**生成
私钥生成
Nrfutil keys generate d:\Materia\tmp\nrf51\private.pem

公钥生成
nrfutil keys display --key pk --format code D:\Materia\Tmp\nrf51\private.pem --out_file D:\Materia\Tmp\nrf51\dfu_public_key.c
Nrf51 学习笔记1

3.bootloader移植
使用sdk12\examples\dfu\bootloader_secure\pca10028\arm5_no_packs例程
(nRF51422 = nRF51822 + ANT,不使用ANT时功能一样)
mdk配置如下
Nrf51 学习笔记1

(这个不行可以暂时忽略)
Nrf51 学习笔记1

替换环境搭建时生成的dfu_public_key.c
代码修改如下
(sdk12.1 的BOOTLOADER_SETTINGS_ADDRESS与张xx不一致)
Nrf51 学习笔记1

Nrf51 学习笔记1

Nrf51 学习笔记1
Nrf51 学习笔记1

Nrf51 学习笔记1

Nrf51 学习笔记1

Nrf51 学习笔记1
Nrf51 学习笔记1

4.bootloadr 烧录

打开nRFgo Studi 擦除整片flash
烧写SoftDevice
Nrf51 学习笔记1
烧写bootloader
Nrf51 学习笔记1
打开nRF Connect

Nrf51 学习笔记1
5.升级文件制作
( nrf51422_xxac.hex 为自己编写的app)
nrfutil pkg generate --hw-version 51 --application-version 1 --application nrf51422_xxac.hex --sd-req 0x87 --key-file private.pem dfufile.zip
将dfufile.zip放入手机文件夹
6.bootloader升级
nRF connect 连接DfuTag设备,然后点击dfu图标

Nrf51 学习笔记1
Nrf51 学习笔记1
如果成功nRf会断开连接且显示成功,设备也会进入App

Nrf51 学习笔记1