前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nRF5x系列蓝牙模块DFU升级服务移植 -- 2 文件生成

nRF5x系列蓝牙模块DFU升级服务移植 -- 2 文件生成

原创
作者头像
DN
修改2020-07-02 10:02:33
9110
修改2020-07-02 10:02:33
举报
文章被收录于专栏:JETSON NANO AIJETSON NANO AI

文章中所使用的工具,请参考《nRF5x系列蓝牙模块DFU升级服务移植 -- 1 工具安装》说明。

2.1  micro_ecc_lib_nrf52.lib文件的生成

首先选中C:\MinGW\msys文件夹中的批处理执行文件msys.bat,点击打开,如下图所示:

在SDK中找到算法,如下图所示:

在打开的msys.bat文件框中的命令行输入指令cd /F/nRF5_SDK_15.0/external/micro-ecc/nrf52hf_keil/armgcc,然后回车执行指令,如下图所示:

继续输入指令make,然后回车,如下图所示:

生成的lib文件,可在F:\nRF5_SDK_15.0\external\micro-ecc\nrf52hf_keil\armgcc文件夹中找到,如下图所示:

备注:在make时候,如果提示文件找不到,如下图所示:

该处错误是因为没有发现GNU的路径,这里我们打开F:\nRF5_SDK_15.0\components\toolchain\gcc文件夹,找到Makefile.windows文件,使用记事本打开,修改GNU安装路径,如下图所示:

2.2  密钥的生成

在F盘新建一个命名为key的文件夹,在此处打开dos命令框(Shift+鼠标右键打开),在命令行中输入指令nrfutil.exe keys generate F:\key\private.key,回车执行指令,执行结果如下图所示:

打开F:\key文件夹,可以找到新生成的private.key文件,如下图所示:

然后使用该文件生成一个C文件,这里的文件分别是私钥(private.key)和公钥(public_key.c)。

备注:务必要保存好私钥private.key,以后每个新的image要升级时,都会先通过这个私钥对它进行签名,一旦private.key丢失或者被暴露,DFU将无法进行或者变得不安全。

在dos命令行中输入指令nrfutil keys display --key pk --format code F:\key\private.key --out_file F:\key\public_key.c,回车执行,结果如下图所示:

打开F:\key文件夹,可以找到新生成的public_key.c文件,如下图所示:

到此密钥已经完成生成,而这个公钥是后面boot工程所需要的,所以需要将public_key.c文件重命名为dfu_public_key.c,并替换F:\nRF5_SDK_15.0\examples\dfu中的dfu_public_key.c文件,如下图所示:

2.3  boot工程的hex生成

打开F:\nRF5_SDK_15.0\examples\dfu\secure_bootloader\pca10040_ble\arm5_no_packs文件夹下的keil工程,如下图所示:

如果之前的操作均完成且正确的话,编译该工程会提示0错误,并且在F:\nRF5_SDK_15.0\examples\dfu\secure_bootloader\pca10040_ble\arm5_no_packs\_build文件夹中生成nrf52832_xxaa_s132.hex文件,如下图所示:

把nrf52832_xxaa_s132.hex的文件名更改为boot.hex,放到之前新建的F:\key文件夹中,如下图所示:

2.4  应用程序的hex生成

这里使用SDK库自带的ble_app_buttonless_dfu用例工程进行hex文件生成步骤的说明。

打开F:\nRF5_SDK_15.0\examples\ble_peripheral\ble_app_buttonless_dfu\pca10040\s132\arm5_no_packs文件夹下的keil工程,如下图所示:

如果之前的操作均完成且正确的话,编译该工程会提示0错误,并且在F:\nRF5_SDK_15.0\examples\ble_peripheral\ble_app_buttonless_dfu\pca10040\s132\arm5_no_packs\_build文件夹中生成nrf52832_xxaa.hex文件,如下图所示:

把nrf52832_xxaa.hex的文件名更改为app.hex,放到之前新建的F:\key文件夹中,如下图所示:

2.5  应用程序的zip生成

进入F:\key文件夹,在此处打开dos命令框(Shift+鼠标右键打开),在命令行中输入指令nrfutil pkg generate --hw-version 52 --application-version 1 --application app.hex --sd-req 0xa8 --key-file private.key test.zip,回车执行指令,执行结果如下图所示:

执行后可在F:\key文件夹中找到test.zip文件,如下图所示:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档