Nrf51 学习笔记1

ぐ巨炮叔叔 提交于 2020-08-15 05:42:23

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

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!