首页 资讯 应用 高压 设计 行业 低压 电路图 关于

嵌入式

旗下栏目: PLC 嵌入式 单片机 DCS

蓝牙BLE带加密的空中升级步骤

嵌入式 | 发布时间:2017-11-26 | 人气: | #评论# | 本文关键字:蓝牙,BLE,空中升级
摘要:带加密的空中升级主要包括两部分:加密与与解密。加密与解密的对象都是升级文件,但是执行这两个过程却用的是不同的工程代码。升级文件加密由EBL(EncryptedBootLoader)工程实现,这个工程会

带加密的空中升级主要包括两部分:加密与与解密。加密与解密的对象都是升级文件,但是执行这两个过程却用的是不同的工程代码。升级文件加密由EBL(Encrypted Boot Loader)工程实现,这个工程会配合专用的工具,读取没有加密的升级文件,然后进行AES加密,并生成加密的升级文件。而解密的过程则由BEM(Boot Encrypted Manager)工程实现,这个工程除了选择运行哪种类型的程序(ImageA或ImageB)外,还会判断当前的程序是否被加密,如果加密,则解码程序并覆盖原先的程序空间(加密的程序将无法直接运行)。

一、带解密功能的启动代码

这个启动代码,也就是BEM(Boot Encrypted Manager),可以用来解码被加密的升级文件。TI提供这个BEM工程,它位于:$INSTALL_DIR\Projects\ble\util\BEM\cc254x下。这个工程基本上可以不需要修改,唯一需要修改只有用于解密的密码了。因为加密使用的是128位的AES加密,所以密码需要16字节,如下:

static const uint8 aesKey[KEY_BLENGTH] = {

  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F

};

这里的16字节的密码需要跟实际加密密码一致。编译这个工程,并保证没有错误,可以通过编译器直接下载程序到芯片中,或可使用SmartRF Programmer软件将这个工程编译生成的.hex文件下载到芯片中。

二、出厂时的应用代码

在产品出产时,只会包含两段代码:一段是BEM代码,另一段是带OAD功能的应用程序。这段出产时的应用代码(通常是ImageA)直接以明码形式下载到芯片中,不需要加密。下面就开始如何建立这个应用代码的工程。

1.选择Project->Edit Configuration->New,添加一个新的工程配置,取名为CC2541-OAD-ImgA-Bootstrapped,并以基于原先CC2541-OAD-ImgA配置为基础。

蓝牙BLE带加密的空中升级步骤

2. 选择Project->Options->C/C++ Complier->Preprocessor->Defined symbols下的编辑框添加下面两句:

BOOTP_E_IMAGE_A

FEATURE_OAD_SECURE

蓝牙BLE带加密的空中升级步骤

3. 选择Project->Options->Post-build command line下将原先的:

"$PROJ_DIR$\..\..\common\cc2540\cc254x_ubl_pp.bat" "$PROJ_DIR$" "ProdUBL" "$PROJ_DIR$\CC2541-OAD-Encrypted-ImgA\Exe\SimpleBLEPeripheral"

修改为:

"$PROJ_DIR$\..\..\common\cc2540\cc254x_ubl_pp.bat" "$PROJ_DIR$" "ProdUBL" "$PROJ_DIR$\CC2541-OAD-ImgA-Bootstrpped\Exe\SimpleBLEPeripheral"

蓝牙BLE带加密的空中升级步骤

4. 选择Project->Options->Linker->Linker configuration file,将原先的:

$PROJ_DIR$\..\..\common\cc2540\cc254x_f256_imgA.xcl

修改成:

$PROJ_DIR$\..\..\common\cc2540\cc254x_f256_imgAe.xcl

蓝牙BLE带加密的空中升级步骤

5. 打开oad_target.c文件,将文件698行开始的下面代码去掉:

#if defined (FEATURE_OAD_SECURE) && defined (HAL_IMAGE_A)

  #define BOOTP_E_IMAGE_A 

#endif

6. 编译工程,并保证工程没有错误。将这个工程直接通过编译器下载到芯片中,或将它生成的.hex文件通过SmartRF programmer下载到芯片中。

责任编辑:BLE工程
首页 | 电气资讯 | 应用技术 | 高压电器 | 电气设计 | 行业应用 | 低压电器 | 电路图 | 关于我们 | 版权声明

Copyright 2017-2018 电气自动化网 版权所有 辽ICP备17010593号-1

电脑版 | 移动版 原创声明:本站大部分内容为原创,转载请注明电气自动化网转载;部分内容来源网络,如侵犯您的权益请发送邮件到[email protected]联系我们删除。