-->

Nrf51 学习笔记1

2020-08-15 04:58发布

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



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



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.zip
后运行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


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




(这个不行可以暂时忽略)

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







4.bootloadr 烧录

打开nRFgo Studi 擦除整片flash
烧写SoftDevice

烧写bootloader

打开nRF Connect





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图标







如果成功nRf会断开连接且显示成功,设备也会进入App

标签: