CC2530单片机技术与应用
上QQ阅读APP看书,第一时间看更新

任务二 物理地址烧写软件为CC2530烧写Hex文件

一、任务描述

通过设置工程参数,将编译好的工程文件,生成 Hex 文件,然后利用物理地址烧写软件SmartRF将Hex文件烧写到CC2530单片机中,观察LED灯的效果。

二、任务目标

1.训练目标

① 本任务要求了解基本的编译和调试技能。

② 掌握将工程文件生成Hex文件的技能。

③ 掌握Hex文件烧写的技能。

④ 了解CC Debugger仿真下载器和SmartRF闪存编程器的作用和区别。

2.素养目标

① 培养学生在工作现场的6S意识和用电安全意识。

② 爱惜工具,注重场地整洁。

③ 具备积极、主动的探索精神。

三、相关知识

1.物理地址烧写软件介绍

SmartRF闪存编程器(SmartRF Flash Programmer)可以对德州仪器公司的低功率射频片上系统的闪存进行编程。此外,它还可以读取和写入芯片上的IEEE/MAC地址。软件安装完毕后, SmartRF闪存编程器其运行界面如图1.50所示。

图1.50 SmartRF闪存编程器的运行界面

SmartRF 闪存编程器有多个选项可供选择,其中 System-on-Chip 用于编程德州仪器公司的SoC芯片,如CC1110、CC2430和CC2530等。

2.物理地址烧写软件的操作

Erase(擦除):将擦除所选SoC的闪存存储器。

Erase and program(擦除和编程):将擦除所选SoC的闪存存储器,然后用Flash image (闪存映像)下拉列表框字段中选定的Hex文件对它编程。

Erase,program and verify(擦除、编程和验证):与“擦除和编程”选项相同,但编程后闪存的内容将读出并与Hex文件进行比较。这将检测编程中的错误或因闪存损坏所导致的错误,所以建议编程后一定要进行验证。

Append and verify(追加和验证):这一动作将内容写入Flash image中给出的Hex文件内,对于所选的SoC,则不先擦除闪存。注意,所有要写入的闪存在编程开始之前必须要能读出0xFF (即已擦除)。当一个程序划分成多个Hex文件时,这个功能是非常有用的。

这个动作要用debug(调试)命令从Flash中读出,这意味着如果在芯片上debug命令受阻,就不可能执行这个动作了。

Verify against hex-file (验证 Hex 十六进制文件):这一动作将把 Flash 的内容与 Flash image中的Hex文件进行比较。注意,该功能只验证Flash中是否存在Hex文件的内容,如果在Flash中没有额外的写入,就不做任何检查。这个动作要用debug命令从Flash中读取。

Read flash into Hex file(读入Hex十六进制文件):这一动作读取整个Flash的内容,然后把它写入Flashimage中给定的Hex文件内。

注意

Flash image中给定的Hex文件将被重写。这个动作也要用debug命令从Flash中读取。

3.CC2530组网烧写Hex可执行程序

协调器主板上电,使用公母串口线将CC2530连接到PC上,打开PC端上的“CC2530组网参数设置V1.2.exe”进行CC2530配置。打开配置工具,选择COM1口打开,读取当前连接到的CC2530信息,在这个界面中可以设置、读取和修改参数设置(注意:配置CC2530参数时必须把协调器、传感器和继电器的PAN ID以及通道设置成同样的参数,每一个CC2530的通道(Channel)也要设置成一样,这样才可以组网, 其中继电器配置的序列号为 0001、0002、0003;协调器、传感器的波特率为 38400,继电器的波特率为 9600)。环境监测、智能路灯等用到的温度、湿度、光照传感数据是由四通道独立采集的CC2530板获取的,需要将一块CC2530板烧写“四通道独立采集代码Hex”,烧写完后直接可以用,不需要配置。

大唐移动通信科技有限公司的 CC2530 模块组网时,先根据模块要实现的功能进行一次烧写,再根据厂家给定的PAN ID的可下载运行的Hex文件进行二次烧写组网代码。注意:组网时,先给协调器主板上电,再给其他模块上电。

四、任务实施

1.利用IAR编译生成可下载运行的Hex文件

MSP430在用JTAG下载的时候,Hex文件是不能使用的。但是如果用Proteus仿真(只有Proteus 7.6及其以上版本才支持MSP430仿真),则只支持Hex文件仿真,所以有必要输出Hex文件。

① 打开IAR的工程选项,选中左边栏的Linker,如图1.51所示。

图1.51 利用IAR生成Hex文件设置1

② 勾选Override default,将文件扩展名修改为“.hex”。接着选择output选项卡,在output下拉列表框中选择intel-extened,其他的选项保持默认即可,如图1.52所示。

图1.52 利用IAR生成Hex文件设置2

如果针对大型程序,还需要进行第三步操作,如ZStack协议栈中的程序。

③ 找到f8w2530.xcl文件,并打开,如图1.53所示。这个文件在“Projects/zstack/T00ls/CC2530DB”目录下,也可以在IAR编译环境的Workspace窗格中打开T00ls文件夹查看。在f8w2530.xcl文件中找到两行被注释掉的语句。

//-M(CODE)[(_CODEBANK_START+_FIRST_BANK_ADDR)-(_CODEBANK_END+_FIRST_BANK_ADDR)]*\

//_NR_OF_BANKS+_FIRST_BANK_ADDR=0x8000

把这两行前面的“//”去掉,保存,然后重新编译。

图1.53 f8w2530.xcl文件设置修改

注意

去掉这两行的“//”后,在编译输出Hex 格式时没有问题,但在debug模式下编译会提示警告:“Warning[w69]: Address translation (-M, -b# or -b@) has no effect on the output format‘debug’ The output file will be generated but noaddress translation will be performed.”。不过并不会影响debug调试的使用。也许正是为了屏蔽此警告,所以TI在发布ZStack时选择了默认为debug模式才注释掉了这两行指令,但在编译Hex时,又不提示任何警告和错误。

注意

生成的Hex文件位于\Debug\Exe目录下。只能用Make命令生成Hex文件,不能用debug命令生成,因为debug命令需要有调试信息。

2.安装物理地址烧写软件

双击打开物理地址烧写软件安装程序Setup_SmartRFProgr_1.6.2.exe命令,如图1.54所示。

图1.54 物理地址烧写软件安装

单击Next按钮继续,显示图1.55所示的界面。选择安装路径(默认即可)。

图1.55 安装路径

继续单击Next按钮,显示图1.56所示的界面。根据需要,选择安装类型。

图1.56 选择安装类型

单击Next按钮,显示图1.57所示的界面,单击Install按钮,开始安装。

图1.57 安装开始界面

安装完成后,显示图1.58所示的界面。

图1.58 物理地址烧写软件安装完成

单击Finish按钮,退出安装程序。物理地址烧写软件的启动方法为,在“开始”菜单中选择Texas Instruments→SmartRF Flash Programmer,如图1.59所示。

图1.59 物理地址烧写软件的启动方法

3.烧写程序

将单片机通过CC Debugger连接到计算机,如图1.60所示。

图1.60 烧写硬件连接示意

运行SmartRF Flash Programmer程序,按烧写器上的复位按钮找到CC2530模块,并按图1.61所示进行操作。

图1.61 SmartRF Flash Programmer 程序操作示意

五、考核与评价

物理地址烧写软件为CC2530烧写Hex文件项目训练评分标准如表1.2所示。

表1.2 物理地址烧写软件为CC2530烧写Hex文件项目训练评分标准

(续表)

六、任务小结

利用IAR编译器生成可下载运行的Hex文件,生成Hex文件位于文件夹\Debug\Exe目录下。只能用Make命令生成Hex文件,不能用debug命令生成,因为debug需要有调试信息。

SmartRF 闪存编程器提供了一套编制、维护、调试环境,能将汇编语言和 C 语言程序编译成Hex可执行输出文件,并能将Hex可执行文件下载到目标CC2530上运行。SmartRF闪存编程器可以将Hex文件直接下载到CC2530单片机中,SmartRF闪存编程器不依赖IAR编程环境。SmartRF 闪存编程器可对德州仪器公司的低功率射频片上系统的闪存进行编程,并可通过MSP-FET430UIF对MSP430器件闪存和eZ430加密狗进行编程。

七、启发与思考

利用 IAR 编译生成可下载运行的 Hex 文件,物理地址烧写软件 SmartRF 为 CC2530 烧写Hex文件。对于IEEE 802.15.4兼容设备(如CC2530)和Bluetooth低能量设备(如CC2540)来说,闪存编程器可向其中读取和写入 IEEE/MAC 地址。此外,闪存编程器还可用于升级SmartRF04EB、SmartRF05EB、CC Debugger和CC2430DB上的固件。

注意

配置CC2530参数时必须把协调器、传感器和继电器的pan ID以及信道设置成同样的参数,每一个CC2530的通道(Channel)也要设置成一样,这样才可以组网,其中网络中只能有一个协调器。为了区分继电器,可将继电器的序列号配置为0001、0002、0003。组网烧写时必须有协调器、终端(多个),继电器烧写程序可选。