完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
|
|
你好, 可以使用编译选项的post step来生成hex文件,另外论坛中有.out文件转hex文件的工具,楼主搜索一下。 - ERIC |
|
|
|
我是用can在线烧写,根据您的提示我就.OUt文件转为Hex后又转为bin,调用flash API将bin文件烧录到dsp中,问题是在调用调用flash API时需要指出烧写起始地址,这个起始地址是怎么找的,或定义的呢?难道用out.文件转为Hex后又转为bin后就默认了起始地址了? |
|
|
|
aixi162852 发表于 2018-5-14 11:49 搜索者 你好,为什么需要转换成bin文件呢? 在我的理解,如果在线烧写,应该有上位机软件根据协议发送烧写数据,然后C2000在通过CAN接收数据,调用FLASH烧写。 那么这里所要的起始地址,数据,等,就都是要靠上位机来解析的。地址和数据都在hex文件中有。 Eric - ERIC |
|
|
|
|
|
|
|
guigui_7044 发表于 2018-5-14 12:08 我是用can自己写的引导烧写程序,我了解到的是can通讯是需要发送bin文件的,所以想将hex文件转为bin文件,我在想能不能有种简便的方式将,out转hex文件,在转为bin文件,能否将这些功能嵌套在编译CCS3.3编译器中,编译一次ccs3.3时,out、hex和bin文件都一起能出来。我是个菜鸟,能够将详细说明下如何通过hex文件看起始地址吗?谢谢! |
|
|
|
你好,生产的hex文件就是我要烧写的内容吗,是不是想烧写哪一部,就从hex单挑出来某一部分再烧写?能够说得详细点如何从hex文件看起始和结束地址啊 |
|
|
|
guigui_7044 发表于 2018-5-14 12:08 你好,我现在用的通过ccs3.3编译完整个工程后,生产的.out文件,用你推荐的out转.hex文件方式后,通过查看hex文件数据,由out转hex文件也对,现在遇到一个问题是再有hex转bin文件,发现转为的bin只有开头和结尾正确,中间的数值都不对,这是为什么呢,能够给我推荐咱ti常用的hex转bin的工具吗,我用得51Hex_Bin。另外用的Hex2Bin工具也不行,转为的bin全部为0,不知道为何,再次期待你的解答,谢谢 |
|
|
|
aixi162852 发表于 2018-5-14 12:57 hex转bin很简单的 你可以自己写个小程序转换。 |
|
|
|
之前一直说hex文件,那如何将hex文件中有用的数据提取出来呢,把有用的数据提取出来就可以一点点把数据传输到dsp中进行烧写了。 |
|
|
|
guigui_7044 发表于 2018-5-14 12:08 你能否告诉我上位机大体如何解析我hex数据吗,以方便进行can数据传输,在调用flash烧写函数进行在线升级烧写。 |
|
|
|
生成ASICII格式的hex文件后,你用记事本打开会发现里面是'0'至'F'的一些字符。比如"A1 D4 55 DD"之类,那么'A''1'就表示一个8位数0xA1(161)。你用我在这个帖子前面的回复中给出的字符转十进制数的函数就可以得到hex文件中所有十进制数。 |
|
|
|
那要看你的hex文件是什么格式才能解析,比如intel格式,摩托罗拉格式还是ASCII格式。 |
|
|
|
我现在用的是ccs3.3,dsp芯片是tms320f2808,现在是想通过can通讯来实现程序的在线升级,我之前没有做过这方面呢,你有经验一般用,你觉得hex通常需要什么格式的啊。intel格式,摩托罗拉格式还是ASCII格式? |
|
|
|
我现在用的是ccs3.3,dsp芯片是tms320f2808,现在是想通过can通讯来实现程序的在线升级,我之前没有做过这方面呢,你有经验,你觉得hex通常需要什么格式的啊。intel格式,摩托罗拉格式还是ASCII格式?我这块确实遇到麻烦了,没有做过,所以在此就多麻烦各位大侠了! |
|
|
|
aixi162852 发表于 2018-5-14 14:09 intel 的hex文件, 或是ASCII 的hex文件也好,都是类似的,包含地址,数据。文档SPRU513F有对这两种格式的说明。 上位机解析成一个个数据包,跟芯片上自己编写的升级程序制定好一个协议,接收数据并烧写。 Eric - ERIC |
|
|
|
guigui_7044 发表于 2018-5-14 14:18 上位机解析成一个个数据包,我发现intel 的hex文件, 或是ASCII 的hex文件,地址并不是连续的,我每次解析时需要对每一段不连续的地址进行分析?分别烧进对应的地址空间去。我在想有没有能够生产地址连续的hex的文件?,这样地址连续了,就只考虑起始地址和结束地址地址就行了,不用考虑每一段不连续的地址了,这样通讯起来也简单。谢谢您每次的耐心的解答。 |
|
|
|
aixi162852 发表于 2018-5-14 14:25 intel格式中,每一块flash的地址是连续的。 你找一份hex文件格式的资料看看,我用的intel格式的。 |
|
|
|
你好,我生产的hex文件某一段如下:我用的hex命令是hex2000 -romwidth 16 -memwidth 16 -i -o xxx.hex H100.out :06 E050 00 9A 00 FE 86 00 06 A6 :20 E054 00 81AD 0000 81B5 0000 81B7 0000 81B9 0000 81D1 0000 81D3 0000 81E9 0000 81EB 0000 5A,这样就会发现E053的数据是没有的,我通过ccs在线调试发现E053的数据是FFFF,所以在这就没有数据,我的疑问是从E050到E054这块中有个断层即E053造成地址没有连续,那我每次进行烧写时需要先判断地址,在判断数据长度,就是您所说的一块一块的烧写对吗?我这样的理解对吗,有没有更好的方式呢,期待帮助中,谢谢! 能不能有种可以使生产hex文件地址联系的方式将E053的数据也加上,这样我解析时就只考虑起始地址就行了,然后烧写完全按顺序向下烧写直至结束就行了,不必每次都判断地址在判断地址的长度。 我对这块了解甚少,希望大侠们给我提供更好的思路。 |
|
|
|
guigui_7044 发表于 2018-5-14 14:18 我之前工程中只要一个main函数时,我定义如下的三个变量,运行时这个三个变量值都是正常为1,但是当我在mian函数之 前增加了一个bootmain在线烧写主函数后,在如此定义的话,以下三个变量都是0而不是1,这是为什么,是因为cmd配置有 错造成的吗,我仔细核对了下cmd配置没有重叠的部分,应该是没有问题。您遇见过这样现象吗,有何解决办法吗?大体的意思是程序先进入bootmain判断是否在线烧写更新程序,否则的话进入主函数main。谢谢 UINT16 Com_off=1; UINT16 Com_on=1; UINT16 Com_off_fault=1; void Warn(void) [ ....... ] |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
709 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
619 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1080 浏览 1 评论
776 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
537 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
189浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
147浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
19浏览 13评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
138浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
132浏览 12评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 16:22 , Processed in 1.185624 second(s), Total 85, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号