打印
[boot]

对于通过外部U盘对程序进行升级的问题

[复制链接]
2149|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pinda_|  楼主 | 2013-9-27 20:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        最近一个月都在搞USB升级程序,从最基础的看起,到最后自己画出整个boot的流程图。废话不多说,今天终于将程序调通。但是,出现了问题;

        问题背景:我采用SL811HS芯片作为USB控制器,U盘文件格式为FAT32,内部升级程序文件为test.bin。
        问题描述:我写了一个非常简单的程序,通过定时器中断对某个LED进行控制,每0.1s进行亮灭切换,最后将test.out文件通过hex2000工具转换成test.hex;转化CMD命令:
                                   hex2000 -romwidth 16 -memwidth 16 -i -o test.bin test.hex
        然后,我使用WINHEX工具将test.hex转化成test.bin(这里有些奇怪,我使用的是F2812芯片,所有片内FLASH扇区都参与工作[与项目需求相符合],经转化后得到的test.hex为10.3KB,而转化成.bin为35KB,不明白为什么)。  结果,问题出现了,我通过查看View Memory Windows清楚的得知,程序已经顺利烧录进片内FLASH中,为了确认事实,在断电后,我再次上电连接,通过汇编代码也得到了相似的认证,可程序就是无法运行。
         后来,我对test.bin进行反向转化为test.hex(中间经过AES加密),发现前面大约有0x4000左右的未使用区域,它采用0xFF来代替,实际上,我查看了升级程序的汇编代码,发现不存在这种现象。我明明从0x3D8000开始烧录,结果,实际情况是从0x3DC000开始烧录,而0x3D8000~0x3DC000的值都为0xFFFF。
        
        至此,我把自己能验证的方法都试了一遍,不太清楚到底问题出在哪里,有没有哪位可以提供些许帮助,或者,给予个链接,我自己去看。(从接触到现在学了6个月,有些东西说的不明白,请大家谅解。)

相关帖子

沙发
zhangmangui| | 2013-9-28 23:29 | 只看该作者
不太懂   @computer00 请求帮助解释一下  谢谢你

使用特权

评论回复
板凳
pinda_|  楼主 | 2013-9-29 09:41 | 只看该作者
@zhangmangui今天早上又再一次看了下HEX文件的定义,感觉确实是WINHEX格式转换有问题,但是,公司另一个人转换的文件是可以的,这让我感到不可思议。

使用特权

评论回复
地板
pinda_|  楼主 | 2013-9-29 09:41 | 只看该作者

使用特权

评论回复
5
zhangmangui| | 2013-9-29 10:28 | 只看该作者
pinda_ 发表于 2013-9-29 09:41
@zhangmangui

不好意思  具体不太了解  只有你和他做详细的对比了

使用特权

评论回复
6
pinda_|  楼主 | 2013-9-29 10:52 | 只看该作者
zhangmangui 发表于 2013-9-29 10:28
不好意思  具体不太了解  只有你和他做详细的对比了

我现在觉得问题就是出在hex to bin 上, 就是不知道转化过程中哪里出错了, 大神何时再现:'(

使用特权

评论回复
7
风潇潇姿姣姣| | 2019-5-28 11:33 | 只看该作者
楼主还在吗?我现在也在做U盘升级,向您请教一下如何将接收到程序烧写到TMS320F2812的FLASH里呢?怎么设置CMD文件等?麻烦您了!

使用特权

评论回复
8
蒋博1026| | 2019-5-31 16:23 | 只看该作者
没太看明白呀,基础太差了,希望楼主如果有时间的话可以再详细解说一下

使用特权

评论回复
9
蒋博1026| | 2019-5-31 16:24 | 只看该作者
最近手头也有一个进行U盘升级的任务,也在进行相关的学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

173

帖子

0

粉丝