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_第1张图片
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.zipNrf51 学习笔记1_第2张图片
后运行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配置如下
Nrf51 学习笔记1_第3张图片

(这个不行可以暂时忽略)
在这里插入图片描述

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

Nrf51 学习笔记1_第5张图片

Nrf51 学习笔记1_第6张图片
Nrf51 学习笔记1_第7张图片

Nrf51 学习笔记1_第8张图片

Nrf51 学习笔记1_第9张图片

Nrf51 学习笔记1_第10张图片
Nrf51 学习笔记1_第11张图片

4.bootloadr 烧录

打开nRFgo Studi 擦除整片flash
烧写SoftDevice
Nrf51 学习笔记1_第12张图片
烧写bootloader
Nrf51 学习笔记1_第13张图片
打开nRF Connect

Nrf51 学习笔记1_第14张图片
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_第15张图片
Nrf51 学习笔记1_第16张图片
如果成功nRf会断开连接且显示成功,设备也会进入App

Nrf51 学习笔记1_第17张图片

你可能感兴趣的:(嵌入式,物联网)