0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

工程编译和OAD测试过程中的注意事项

电子设计 来源:网友电子设计发布 作者:网友电子设计发布 2021-12-14 15:36 次阅读

OAD(http://www.ti.com/cn/lit/swra580 ), 即Over the Air Download,是通过无线的方式远程更新固件的一种方法。On chip,就是片上, 升级的对象不需要外挂Flash, 通过芯片片内Flash完成新固件存储及老固件向新固件的切换。On chip OAD方案因为不需要外部接口就能够实现固件的更新,在传感器智能门锁,电力监控等无线应用广受欢迎。

在TI新发布的CC1310 片内OAD工程里, 由于很多细节没有说明, 用户使用过程可能出错. 这里将结合TI CC1310 SDK 1.60.00.21 版本(http://www.ti.com.cn/tool/cn/simplelink-cc13x0-sdk), 讲解在工程编译和OAD测试过程中的注意事项.

试验提前准备:

两个CC1310的Launchpad评估板(http://www.ti.com.cn/tool/cn/LAUNCHXL-CC1310 )

CC1310 软件开发包:simplelink_cc13x0_sdk_1_60_00_21(http://www.ti.com.cn/tool/cn/simplelink-cc13x0-sdk )

工具:Uniflash烧写工具(http://www.ti.com.cn/tool/cn/UNIFLASH )

串口工具:HTerm

PYTHON环境及工具:PYTHON 2.7

CC1310片内OAD例程编译

CC1310 片内OAD的例程在上述SDK的文件夹examples\rtos\CC1310_LAUNCHXL\easylink中, 对应有采集器(rfWsnConcentratorOadServer)和节点(rfWsnNodeIntFlashOadClient)两个例程; 我们将其导入到CCS(7.0 以上版本)中.

这里需要注意的第一个点,在SDK的文文件夹\examples\rtos\CC1310_LAUNCHXL\easylink\hexfiles\onChipOad中已经有已经编译好的固件, 这个固件目前不能够和工程编译的固件混合使用. 你可以只使用已经编译好的进行测试,或者只使用工程编译好的.

我们首先编译好采集器工程(无需任何修改),并将工程下载到CC1310 Launchpad 1 中;

接着, 按照工程内的README.md指导(第136~145行)设置,我们编译节点工程, 发现报错,如下图, 错误原因可使用存储不足;

针对这个,我们可以从工程编译生成的.map文件察看具体的存储的细节,可以看出是.const太大导致。

我们如果将之前工程设置的FEATURE_OAD_ONCHIP取消,重新编译,察看正常的.map文件, 可以发现主要占用.const空间的主要被smartrf_settings_predefined.obj占用,经过检查后,发现主要是无线RF的补丁导致,而这部分补丁针对我们对OAD的验证没有关系。

恢复到README.MD的工程设置后,打开工程目录文件夹smartrf_settings中的smartrf_settings_predefined.c,将下面四个RF_Mode变量修改如下, 接着重新编译工程。

RF_Mode RF_prop_lrm =

{

.rfMode = RF_MODE_PROPRIETARY_SUB_1,

.cpePatchFxn = 0,

.mcePatchFxn = 0,

.rfePatchFxn = 0,

};

RF_Mode RF_prop_ook =

{

.rfMode = RF_MODE_PROPRIETARY_SUB_1,

.cpePatchFxn = 0,

.mcePatchFxn = 0,

.rfePatchFxn = 0,

};

RF_Mode RF_prop_hsm =

{

.rfMode = RF_MODE_PROPRIETARY_SUB_1,

.cpePatchFxn = 0,

.mcePatchFxn = 0,

.rfePatchFxn = 0,

};

RF_Mode RF_prop_sl_lr =

{

.rfMode = RF_MODE_PROPRIETARY_SUB_1,

.cpePatchFxn = 0,

.mcePatchFxn = 0,

.rfePatchFxn = 0,

};

成功编译,从下图可以看到编译后的程序大小为57K,满足不能大于60K的限制。

这里需要说明的一点是,README.MD里面说的另外一点nodeFwVersion修改应该是在oad_client.c而不是NodeTask.c中;

CC1310片内OAD例程BIN固件生成及加载测试

因为这个工程的设置是针对IMAGE文件,如果直接下载到芯片是没办法正常运行的(因为芯片的复位向量没有可执行程序,需要借助BIM来跳到IMAGE程序入口),需要将编译好的固件和Boot管理的BIM固件结合在一起,步骤如下

先mergy BIM和节点固件(请将两个固件拷贝至python的目录后执行)

python /usr/bin/hexmerge.py -o rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_all_v1.hex "--overlap=error" rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_tirtos_ccs.hex bim_intflash_cc1350lp.hex

接着,因为BIM需要检验IMAGE的CRC文件,需要通过下面的命令将生成的hex转换成bin。(需要下载安装一个crc计算组件crcmod https://pypi.python.org/pypi/crcmod/1.7#downloads)

python oad_image_tool_13x0.py -t onchip -i production -v 0x0100 -m 0x1000 -ob rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_all_v1.bin rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_all_v1.hex

我们通过Uniflash, 把bin文件下载到节点Launchpad 2后,节点固件就可以正常工作了。你可以看到Launchpad的指示灯闪烁,从Launchpad 2串口可以看到SCE的ADC信息。我们开启采集器launchpad 1,可以看到节点已经和采集器建立通讯,可以正常工作了。

这里还需要注意的是通过oad_image_tool_13x0.py -v生成的版本号只是采集器端Available FW显示的版本号,不是实际的固件版本号。

下一步是将升级需要的程序加载到采集器端。首先,我们需要根据README.MD的说明设置成IMAGE B。 接着,通过上述的python工具,将编译生成的.hex 文件转换成.bin文件。注意oad_image_tool_13x0.py 的-m参数需要设置成0x10000。之后,我们在采集器评估板右键选择Update available FW, 再同时按下左键和右键,采集器进入加载固件界面,如下:

接着断开采集器的串口,我们将结合PYTHON把需要更新的节点固件传递到采集器的外部Flash。 这里,因为PYTHON的脚本是针对LINUX写的,为了在WINDOWS能够工作,请先安装模块pyserial并修改脚本oad_write_bin.py (目录C:\ti\simplelink_cc13x0_sdk_1_60_00_21\tools\easylink\oad)。PYTHON的安装不在文档讨论范围。Pyserial的下载安装可参考http://blog.csdn.net/oxp7085915/article/details/52191698

修改后的脚本参考如下(已经用黄色MARK)

#!/usr/bin/python

import serial, sys, io, os

import serial.tools.list_ports

plist =list(serial.tools.list_ports.comports())

if len(plist) <= 0:

print "The Serial port can't find!"

else:

plist_0 =list(plist[0])

port0 = plist_0[0]

file = sys.argv[1]

断开原串口助手(采集器所连接)打开命令行,执行oad_write_bin.py脚本,将新生成的节点固件bin文件传递给采集器。可以看到传输提示。等待传输完成。

C:\Python27>python C:\ti\simplelink_cc13x0_sdk_1_60_00_21\tools\easylink\oad\oad

_write_bin.py C:\ti\simplelink_cc13x0_sdk_1_60_00_21\examples\rtos\CC1310_LAUNCHXL\easylink\hexfiles\onChipOad\ccs\rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_app_v2.bin

传输完成后,重新打开串口连接采集器串口,按Launchpad右键出现Update Available Firmware后,再同按左键同时按下右键,然后可看到V02的固件已经可供使用。

接下来通过采集器Launchpad右边按键选择Update Node Firmware,再按左键同时按下右键执行选择。可以看到升级开始和完成。

升级完成后,通过Send Fw Ver Req可以看到固件已经从V01更新到V02了。

总结

本文,针对TI最新发布的CC1310片内OAD解决方案,描述了在对应工程编译,链接,测试过程中需要注意到的点,并成功实现了片内OAD功能。

审核编辑:何安淇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 无线
    +关注

    关注

    31

    文章

    5427

    浏览量

    173052
  • 嵌入式处理
    +关注

    关注

    0

    文章

    341

    浏览量

    9994
收藏 人收藏

    评论

    相关推荐

    脉冲式充电器的使用注意事项

    脉冲式充电器的使用注意事项主要包括以下几个方面: 一、安全注意事项 用电安全 :在充电过程中,应始终保持警惕,注意用电安全,避免触电和短路等危险情况的发生。 防火防灾 :避免在易燃易爆
    的头像 发表于 09-26 16:05 528次阅读

    RIGOL产品在材料应力测试过程中的应用

    、强度、刚度、稳定性等,可以精确地控制产品质量。本篇解决方案将介绍RIGOL产品在材料应力测试过程中的应用。
    的头像 发表于 07-12 17:01 274次阅读
    RIGOL产品在材料应力<b class='flag-5'>测试过程中</b>的应用

    4芯M16母头生产注意事项

      德索工程师说道4芯M16母头作为一种常见的连接器类型,广泛应用于各种电子设备,其质量直接关系到整个系统的稳定性和可靠性。因此,在生产过程中,需要严格遵守一系列注意事项,以确保产品
    的头像 发表于 05-27 18:01 240次阅读
    4芯M16母头生产<b class='flag-5'>注意事项</b>

    高速串行信号测试注意事项有哪些

    随着信息技术的飞速发展,高速串行信号传输技术已成为现代通信领域的核心。然而,由于高速串行信号具有高频、高速、高带宽等特点,其测试过程也面临着诸多挑战。本文将详细探讨高速串行信号测试时需要注意
    的头像 发表于 05-16 16:55 419次阅读

    芯海通用 MCU 应用笔记:CS32F03x设计注意事项

    本技术文档汇总了 CS32F03x (包括 RA) 在设计,开发,调试过程中经常遇到的问题和需要注意事项,旨在帮忙用户快速使用 CS32F03x系列 MCU。*附件:应用笔记:CS32F03x设计
    发表于 05-16 11:02

    数字源表的使用方法和注意事项

    数字源表是电子工程领域不可或缺的重要测量设备,以其高精度、多功能的特性,广泛应用于科研、生产、教学等多个领域。然而,如何正确使用数字源表,以及在使用过程中需要注意哪些事项,对于确保测量
    的头像 发表于 05-15 16:03 687次阅读

    电阻测试仪的使用方法和注意事项

    电阻测试仪是电子和电气领域中不可或缺的一种测试设备,主要用于测量电阻值的大小,从而判断电气元件或电路的工作状态。随着科技的不断发展,电阻测试仪的功能也日益完善,但在使用过程中,正确的操
    的头像 发表于 05-11 16:27 3339次阅读

    FMD LINK 使用注意事项

    电子发烧友网站提供《FMD LINK 使用注意事项.pdf》资料免费下载
    发表于 05-06 10:11 0次下载

    SMT贴片加工生产过程中需要注意的方面

    一站式PCBA智造厂家今天为大家讲讲SMT贴片加工过程中需要注意的方面?SMT贴片加工的几点注意事项。SMT或表面贴装技术是现代电子生产中最常用的技术之一。它已经被广泛应用于各种领域
    的头像 发表于 02-20 09:14 446次阅读

    PCBA加工过程中一定要注意事项

    一站式PCBA智造厂家今天为大家讲讲pcba生产过程中需要注意什么?PCBA加工生产过程中注意事项。PCBA是Printed Circuit Board Assembly(印刷电路板
    的头像 发表于 12-20 09:43 470次阅读

    霍尔元件使用的注意事项

    使用寿命,有一些注意事项需要牢记。本文将详细介绍霍尔元件使用的注意事项。 一、安装注意事项 1. 霍尔元件需要正确安装在电路板上,确保其与周围元件之间的间距适宜,以避免信号干扰。 2. 在安装
    的头像 发表于 12-18 14:56 1215次阅读

    数据采集设备测试有哪些注意事项

    数据采集设备测试有哪些注意事项
    的头像 发表于 12-05 10:05 548次阅读

    如何进行电源的效率测试?有哪些注意事项呢?

    如何进行电源的效率测试?有哪些注意事项呢? 电源的效率测试是评估电源输出电能与输入电能之间的转化效率的过程。这对于设计和选择高效电源以减少能源浪费非常重要。本文将介绍电源效率
    的头像 发表于 11-29 10:56 1274次阅读

    电源适配器的包装和运输过程中需要注意哪些事项

    电源适配器的包装和运输过程中需要注意哪些事项? 电源适配器是电子产品必不可少的一部分,而包装和运输对于保证产品的完好还原以及减少损坏都有着至关重要的作用。所以,在电源适配器的包装和运
    的头像 发表于 11-23 14:38 1121次阅读

    如何解决车载部品测试过程中峰值电流不足的问题?

    如何解决车载部品测试过程中峰值电流不足的问题? 随着汽车电子系统的不断发展和普及,车载部品的测试过程变得更加复杂和严峻。其中一个常见的问题是峰值电流不足。峰值电流不足可能导致测试结果不准确、设备损坏
    的头像 发表于 11-23 10:33 513次阅读