| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 使用Nordic的nrf52840实现蓝牙DFU过程 -> 正文阅读 |
|
[Python知识库]使用Nordic的nrf52840实现蓝牙DFU过程 |
需要用到的软件:交叉编译环境:gcc-arm-none-eabi 手机app:nRF Toolbox或者nRF Connect 安装gcc-arm-none-eabi安装gcc-arm-none-eabi按照默认配置直接安装,在完成页面选择添加至环境变量。 MinGW安装MinGW按照默认配置安装,到Installation Manager界面选择如下三个package: micro-ecc拷贝将下载的micro-ecc-master压缩包解压后重命名为micro-ecc,然后拷贝到nRF5_SDK_17.1.0_ddde560\external\micro-ecc路径下。 Python安装如果安装有多个版本的Python,可以参考使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)安装。 nRFUtil安装安装了Python后,可以直接在命令行输入pip install nrfutil进行安装。 生成micro_ecc_lib_nrf52.lib打开C:\MinGW\msys\1.0路径下的批处理文件msys.bat,输入cd /E/nRF5_SDK_17.1.0_ddde560/nRF5_SDK_17.1.0_ddde560/external/micro-ecc/nrf52nf_keil/armgcc后回车(注意路径中用/,不是\),然后输入make会有如下提示: 生成公私密钥用到的命令帮助,可以查看具体的参数: 新建一个文件夹,命名为key,在命令行切换路径到新建的文件夹,输入nrfutil keys generate private.pem,生成私钥,每次升级的时候需要用私钥对image进行验签。 Boot和App的HEX文件生成Boot文件使用E:\nRF5_SDK_17.1.0_ddde560\nRF5_SDK_17.1.0_ddde560\examples\dfu\secure_bootloader\pca10056_s140_ble\arm5_no_packs下的keil工程,编译后生成nrf52840_xxaa_s140.hex,复制到key文件夹中,并重命名为Bootloader.hex。 App文件使用E:\nRF5_SDK_17.1.0_ddde560\nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_buttonless_dfu\pca10056\s140\arm5_no_packs下的keil工程,将生成的HEX文件名称改为ApplicationA。 DFU包生成用到的命令帮助,可以查看具体的参数: 在命令行切换路径到key文件夹,输入nrfutil pkg generate --hw-version 52 --sd-req 0x100 --application-version 2 --application Bootloader Settings文件生成用到的命令帮助,可以查看具体的参数: 如果直接把协议栈、Bootloader和ApplicationA文件下载进去后,会发现广播名称一直是DfuTarg,一直卡在Bootloader里面处于DFU模式,没有进入ApplicationA。这是因为在进入app程序之前boot需要基于Bootloader Settings中的信息对app程序进行完整性检查。在没有app、app完整性校验失败或者没有Bootloader Settings的情况下,boot会进入DFU模式。 HEX文件合成用到的命令帮助,可以查看具体的参数: DFU测试程序下载进去之后,通过串口的log可以看到上电后直接运行了ApplicationA程序。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/22 18:41:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |