登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
单片机应用于方案
›
详细阐述UCD3xxx系列数字电源控制器烧写常用的两种十六 ...
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版
详细阐述UCD3xxx系列数字电源控制器烧写常用的两种十六进制文件
[复制链接]
1733
0
ad***
管理员
发表在
电源技术
2014-4-14 10:43:11
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
摘
要
后缀为X0 的文件是十六进制文件格式的一种,而Intel Hex 文件格式也是一种常用的十六进制文件格式。X0是
TI
烧写软件和工具常用的文件格式,而Hex 文件是第三方烧写器常用的文件格式。编译器(如TI 集成开发环境CCS)编译C 语言或者汇编语言程序生成二进制机器代码,然后由机器代码生成X0 和Hex 这两种十六进制文件格式。本文首先介绍这两种文件格式,然后介绍如何在CCS 编译环境中产生这两种文件格式,最后结合
UCD
3
xxx
系列数字
电源
控制器通过实例来进一步了解这两种文件格式。
1 X0
和
Hex
文件格式
X0 和Hex 文件是由一行行符合对应文件格式的文本所构成的ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)文本文件。在计算机中,所有的数据在存储和运算时都要使用二进制数表示,例如a、b、c、d 这样的52 个字母(包括大写),0、1 等数字,还有一些常用的符号(如*、#、@等)在计算机中存储时也要使用二进制数来表示。ASCII 码就是用来表示这些字母、数字以及符号的,它使用指定的7 位或8 位二进制数组合来表示128 或
256
种可能的字符。而X0 和Hex 文件格式就利用ASCII 码来表示二进制信息。
X0 格式的名称是“泰克扩展十六进制文件格式”(Tektronix Extended hexadecimal file format),具体格式参见图1。
图
1
:
X0
文件格式
X0 文件以百分号“%”为记录标志,表示一行的开始;记录长度指的是每一行除百分号外的字符数(不是字节数),占一个字节;记录类型占一个字符,共两种:6 -代表数据,8-代表结束;校验是整个一行字符除(注意不是字节)除校验自身和百分号外的校验和,占一个字节;地址共9 个字符,第一个字符是8,指的是地址共占8 个字符,后面8 个字符(4 个字节)是数据所要加载的地址;数据就是程序代码或
其它
信息。
以计算机常用的“Hello, Word!(加换行符)”为例,如果把它加载到地址0x
006
B,那么X0 文件如下
表示:
%2A6DE80000006B
48
656C6C6F2C20576F726C64210A
%09819800000000
Hex 文件格式有很多种,本文主要介绍“英特尔十六进制目标文件格式”(Intel Hexadecimal object file format),具体格式如图2 所示。
图
2
:
Hex
文件格式
Intel Hex 文件以冒号“:”为记录标志,表示新的一行的开始;记录长度占一个字节,指的是每一行所包含实际数据或信息的字节数;加载偏置占两个字节,是相对地址(加载偏置加上扩展线性地址就是绝对地址);记录类型共有6 中,分别为:0 -数据记录,1 -文件记录结束,2 -扩展段地址记录,3 -起始段地址记录,4 -扩展线性地址记录,5 -起始线性地址记录;每一行记录的数据部分都是可变的,最多可以有
255
个字节,也可能没有,取决于所记录的类型。最后一个是校验,它是除冒号和校验自身的校验和,具体做法是每个字节累加,然后取计算结果最后一个字节补码(取反加1)作为校验字节。
还是以“Hello, Word! (加换行符)”为例,把它加载到地址0x0000,Hex 文件如下:
:0F00000048656C6C6F2C20576F726C64210A7E
:00000001FF
2 UCD3xxx
存储结构
图
3
:
UCD3xxx
存储结构
介绍如何生成X0 和Hex 文件以前,需要先了解一下UCD3xxx 系列数字控制器存储结构,如图3 所示。UCD3xxx 三种模式:复位模式、ROM 模式以及
Flash
模式。这三种状态对应的存储映射是不一样的。复位模式下,所有
内存
都映射为ROM;ROM 模式下,程序闪存(Program Flash)被映射在0x
10000
至0x
17
FFF
,数据闪存(Data Flash)是从0x18800 至0x18FFF,随机存取存储(RAM)放在0x19000 至0x19FFF;Flash 模式下,数据和随机存取位置不变,程序闪存位置被重新映射到0 至0x7FFF。程序闪存最后4 个字节是保存整个程序闪存的校验和。
UCD3xxx 起机过程是:上电开始进入复位模式;上电完成后进入ROM模式,此时芯片会自动跳转到0xA000 执行。在0xA000 至0xAFFF 这一段地址内,固化了一段ROM 程序,这段程序除了做一些芯片自身的初始化外,它还会计算程序闪存的校验和,然后和程序闪存最后4 个字节保存的校验和对比,如果不一致,此时程序会停下来,等待主机命令。如果对比结果一致,那么芯片就会进入Flash 模式,ROM 程序会执行跳转指令进入程序闪存中运行。
3
如何在
CCS
集成开发环境下生成
X0
和
Hex
文件
图
4
:
CCS
编译器编译选项设置
X0 和Hex 文件的生成离不开格式转换程序:Hex
470
.exe 和FusionX0ToHex.exe。Hex470.exe 是汇编语言工具包里面自带的程序。FusionX0ToHex.exe 是TI 数字电源设计(Fusion Digital Power Designer)图形用户界面(GUI)所带的转换程序。Hex470.exe 和FusionX0ToHex.exe 可以用命令行来调用,下面分别介绍各自的命令格式。
Hex470.exe 的命令行格式为:Hex470 [选项] 文件名,hex470 是调用转换程序的命令,选项是控制转换过程的附加信息(具体信息可参考文献2),文件名是指输入文件的名称。Hex470 可以把CCS 编译生成的后缀为
Out
的文件转换成各种格式的Hex 文件,如:
Hex470 –i
sample
.out
这段命令是把生成的sample.out 文件转换成Intel Hex 格式文件,文件名称为sample.hex;
Hex470 –x sample.out
这段命令是把生成的的sample.out 文件转换成X0 格式文件,文件名称sample.x0。
既然Hex470 可以直接把Out 文件转换成Hex 文件,那为什么要先转成X0 再转换成Hex 文件呢?有两个原因:Hex470 不会计算程序闪存的校验和;Hex470 生成的Hex 文件地址是基于程序闪存模式,而烧写器需要的地址是ROM模式,也就是从0x10000 至0x17FFF,所以UCD3xxx 不支持Hex470 直接生成的Hex 文件,需要通过FusionX0ToHex.exe 转换程序把X0 文件转换成Hex 格式文件,具体命令格式是:
FusionX0ToHex --infile x0-file
--format intel|srec|hexdump
--pflash-checksum calc|none|source
--export pflash|dflash|both|source
--outfile hex-file
--infile 主要指定输入X0 文件。
--format 主要指定生成哪种Hex 格式,分别为intel、srec(Motorola S-Record)和hexdump。
--pflash-checksum 主要指定程序闪存的校验模式,calc 模式-基于X0 文件计算校验位并写入相应位置;none 模式-校验位默认为0xFFFFFFFF;source 模式是使用X0 自己的校验位。
--export 指定输出哪一部分存储,pflash 指只输出程序闪存部分。dflash 指输出数据闪存部分。both 是输出程序和数据闪存。无论哪一部分,如果X0 文件中没有就用0xFF 填充。source 是直接把X0 输出。
--outfile 是指定输出Hex 文件名称。
下面就介绍一下如何在CCS 编译环境中嵌入hex470 和FusionX0ToHex 命令行。
在CCS(3.x 版本)编译环境中,进入工程(Project)菜单,然后选择编译选项(Build Options),然后点击通用标签(
General
),就会出现如图4 所示界面。在最后编译步骤(Final build steps)中,我们可以输入下面两条命令行:
hex470 -x -memwidth 8 .\debug\FB_48V_HS.out
FusionX0ToHex --infile FB_48V_HS.x0 --pflash-checksum calc --export both --format intel –outfile FB_48V_HS.hex
第一条命令中:-x 选项就是指把.\debug\FB_48V_HS.out 转换成X0 文件,-memwidth 8 是定义系统存储字宽为8 位。
图
5
:生成的
X0
文件(
UCD3xxx
)
图
6
:生成的
Hex
文件(
UCD3xxx
)
第二条命令中:输入待转文件是FB_48V_HS.x0,输出文件是FB_48V_HS.hex,计算程序闪存的校验位,同时输出程序和数据闪存内容,格式是intel 十六进制。
4
基于
UCD3xxx
进一步了解
X0
和
Hex
文件格式
为了进一步了解X0 和Hex 格式,下面通过UCD3xxx 硬
开关
全桥评估板软件来看一下具体生成的X0和Hex 文件,如图5 和图6 所示。
图5 的第一列统一是百分号开始;下面两列(一个字节)表示的是每一行除百分号外的字符长度,每行最多字符数是0x4E(78);然后一列表示后面数据类型,除最后一行是8(结束)外,其它都是6(数据);再有两列是整行的校验;地址占9 列,以8 开始,后面4 个字节代表实际地址;地址后面就都是数据了。从图中可以看出,X0 文件的程序闪存的地址都是从0 开始的,而且也没有整个程序闪存的校验。TI 烧写软件和工具主要使用X0 格式的文件,烧写软件自己会计算程序闪存的校验和,然后写到最后4 个字节,所以X0 不需要计算整个程序闪存的校验和。
图6 的第一列都是冒号;后面依次一个字节指的是整行所含数据的字节数;两个字节是偏置地址;一个字节是指的记录类型;然后是字节数不等的数据。最后一个字节是每一行的校验。图6 的第一行指定扩展地址,为0x0001;最后一行标志文件结束。另外,在程序闪存最后4 个字节(粉红色区域)就是整个程序闪存的校验和。如果这个校验和不对,程序就不会跳到程序闪存中执行。
5
小结
如果使用TI 提供的烧写软件(GUI)和工具(
USB
适配器)烧写的话,只需要格式为X0 的文件;如果使用第三方烧写器在生产线烧写,那么就会需要Hex 格式文件。可以根据本文的介绍来生成所需的X0或者Hex 文件。
6
参考资料
1.SLUS868D - Digital Power Controllers, Texas Instruments Inc., 2012
2.SPNU
118
J -
ARM
Assembly Language Tools v4.9 User's Guide, Texas Instruments Inc., 2011
3.SRecord V1.59- Manipulate EPROM load files, 2012
4.Fusion Digital Power Designer, Texas Instruments Inc., 2012
十六进制
,
第三方
,
Intel
,
软件
相关帖子
凝智科技-天津医科大学机房UPS监控项目———凝智科技-天津医科
Controx软件在立体仓库系统中的应用———Controx软件在立体仓库
brd格式的PCB文件用什么软件打开?
Altium Designer 15软件安装与破解详细图文教程(包成功破解)
模拟电路PDF康华光
模拟电路PDF康华光
【原创】16X16X16光立方 无需编程TF卡播放任意动画 音频+动画+广告+遥控
求VC++6.0软件
求助安装USB-JTAG软件在JZ2440开发板ARM9系统上
好消息,人人都可以学单片机了,全中文单片机编程软件出来了!
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
模电数电论坛
Allegro论坛
Protel,DXP,Altium论坛
原理图论坛
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
产品品牌:永嘉微电/VINKA 产品型号:VK2C21D 封装形式:SOP16 概述 VK2C21D是
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
产品品牌:永嘉微电/VINKA 产品型号:VK2C21C 封装形式:SOP20 概述 VK2C21C是
更多
精华推荐
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
VK2C21B SOP24高抗干扰LCD液晶段码驱动芯片
低成本、高性能、带EEPROM了解一下
工控仪表/水电气表LCD驱动/抗干扰液晶段码
更多
社区学堂
VKL144A TSSOP48 点阵式液晶驱动芯片/
高抗干扰液晶显示驱动/省电液晶驱动IC/
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表