2020-11-10 17:24:26 信驰达科技

芯片型号:凯发app官方网站-凯发k8旗舰厅注册登录

模块型号:rf-bm-nd04

一.  以下是我测试的环境: 

环境:win7,64位,iar集成开发环境

sdknrf5_sdk_13.0.0_04a0bfd

协议栈:s132_nrf52_4.0.2_softdevice.hex

bootloader工程:secure_dfu_ble_s132_pca10040

application工程:ble_app_buttonless_dfu_pca10040_s132

硬件平台:pca10040开发板

二.  在做空中升级过程中可能遇到的问题

1.缺少uecc.h文件

2.缺少micro_ecc_lib_nrf52.lib文件

3.出现报错:#error "debug public key not valid for production. please see https://github.com/nordicsemiconductor/pc-nrfutil/blob/master/readme.md to generate it"

4.升级过程中出现:fw version错误

三.  安装所需的软件

1gcc-arm-none-eabi-4_9-2015q3-20150921-win32.exe:

根据提示安装 4.9-2015-q3-update 版本的 gcc compiler toolchain for arm

2make-3.81.exe:

3python-2.7.12.amd64.msi

4nrfgo studio

主要提供nrfjprog.exemergehex.exe

这两个软件在nrfgo studio的安装目录下找到

c:\program files (x86)\nordic semiconductor\nrf5x\bin

安装之后用cmd输入nrfjprogmergehex,查看是否安装可用

无线通信方案厂商

无线通信方案厂商

(5)oreutils-5.3.0.exe:

http://gnuwin32.sourceforge.net/packages/coreutils.htm

四. 安装步骤

1.安装编译环境:

(1)双击安装make-3.81.exe ,

(2)安装coreutils-5.3.0.exe,

(3)安装gcc-arm-none-eabi-4_9-2015q3-20150921-win32.exe 

把路径path : c:\program files (x86)\gnu tools arm embedded\4.9 2015q3\bin;c:\program files (x86)\gnuwin32\bin添加到环境变量

无线通信方案厂商  


(4)安装python-2.7.12.amd64.msi。

 双击python-2.7.12.amd64.msi安装 ,安装完毕后,把python的路径加入到环境变量中

c:\python27\

c:\python27\scripts

进入命令行窗口,并到python路径,输入python -m pip install nrfutil等待安装完成

  

nrfutil会被安装到c:\python27\scripts目录下, 我安装的nrfutil版本是3.3.0,后面安装可能会更新,所以可能会遇到版本兼容问题。nrf studio的安装目录下也有这个软件,可以拿来代替。


2.解决缺少uecc.h文件问题

(1)下载micro-ecc:

直接用我下载好的或到凯发app官方网站官网下载micro-ecc :

注意:凯发app官方网站官网上下载的文件夹名称的名字要改成micro-ecc

(2)把micro-ecc文件夹复制到nrf5_sdk_13.0.0_04a0bfd\external\micro-ecc目录下

  无线通信方案厂商

(3)打开micro-ecc目录可以看见uecc.h

  无线通信方案厂商

3.解决缺少micro_ecc_lib_nrf52.lib的问题

(1)方法1:双击批处理文件nrf5_sdk_13.0.0_04a0bfd\external\micro-ecc\build_all.bat即可生成lib文件;  

(2)方法2:也可以进入nrf5_sdk_14.0.0_3bcc1f7\external\micro-ecc\nrf52_keil\armgcc路径,输入make 生成lib文件。

  

以上两种方法都是用到了micro-ecc\nrf52_keil\armgcc\makefile

把生成的micro_ecc_lib_nrf52.lib添加到工程即可。

4. 解决编译报错问题

编译过程中会出现报错:#error "debug public key not valid for production. please see https://github.com/nordicsemiconductor/pc-nrfutil/blob/master/readme.md to generate it",看报错就知道这是缺少秘钥造成的,这个故意报错,需要大家添加一个秘钥上去。

打开cmd命令行,键入一下指令

nrfutil.exe keys generate private.pem

nrfutil.exe keys display --key pk --format code private.pem --out_file public_key.c 

这样生成的秘钥就保存在 public_key.c中,打开public_key.c。把数组pk复制到报错的位置。

  无线通信方案厂商

5. 烧录协议栈、应用层、bootloader

(1)先要生成bootloader setting, 这个文件包含了app version ,bootloader version , hw version, 等信息。

执行nrfutil.exe settings generate --family nrf52 --application nrf52832_xxaa_app.hex --application-version 3 --bootloader-version 2 --bl-settings-version 1 bootloader_settings.hex

  无线通信方案厂商

 (2)合并所有文件,注意自己的hex文件名。

合并bootloader文件和softdevice文件:mergehex.exe --merge nrf52832_xxaa_bootloader.hex s132_nrf52_4.0.2_softdevice.hex --output production_final1.hex 

将上一个合并文件与app程序合并:mergehex.exe --merge production_final1.hex nrf52832_xxaa_app.hex --output production_final2.hex

将上一个合并文件与配置settings 文件合并:mergehex.exe --merge production_final2.hex bootloader_settings.hex --output production_final.hex

删除:del production_final1.hex

删除:del production_final2.hex

  

最后生成烧录文件production_final.hex

(3)烧录一个文件即可,烧录前先用nrfgo studio擦除芯片。

nrfjprog -f nrf52 --eraseall

nrfjprog -f nrf52 --program "production_final.hex" --verify

nrfjprog -f nrf52 --reset

  无线通信方案厂商


  这时打开手机app nrf connect即可看到程序中设置的蓝牙名称的设备了。

(4)打包ota所需的zip文件。这里只介绍升级应用层,至于升级bootloader和协议栈下次有空再研究。

执行nrfutil pkg generate --hw-version 52 --sd-req 0x98 --application-version 0xff --application nrf52832_xxaa_app.hex --key-file private.pem nrf52832_xxaa_app.zip

--sd-req 0x98 : 0x98是 协议栈版本,如下图所示

  无线通信方案厂商

--application-version 0xff :0xff是应用层版本。 

 --key-file private.pem 这个是"解决编译报错问题 "中生成的秘钥文件。


6. 手机空中升级的实现

(1)连接蓝牙

  无线通信方案厂商

(2)点击圆圈处

  无线通信方案厂商

(3)发送请求,设备将复位并进入bootloader状态。

  无线通信方案厂商

(4)发送完以后,可以看到名为dfutarg的设备,说明此时设备进入bootloader 状态。连接蓝牙dfutarg设备。

  无线通信方案厂商

(5)点击右上角的dfu按钮,选择zip文件,开始升级

无线通信方案厂商无线通信方案厂商无线通信方案厂商


       


德州仪器

凯发app官方网站-凯发k8旗舰厅注册登录
产品
新闻
联系
网站地图