打印
[硬件设计]

本地烧写程序如何写?

[复制链接]
1788|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MeterLeader|  楼主 | 2015-1-25 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问,本地烧写程序如何编写?
我现在做一个远程升级的功能,当收到远程传过来的hex文件,我需要将它写入本地CPU片内ROM
的指定地址中,由于片内ROM是由许许多多扇区构成,大小也不一。hex文件大小需占用多个扇
区,那么在编写片内ROM读、写程序时,肯定要根据各个扇区的实际大小数hex文件字节数,做
循环写入,是这样吗?  这hex文件内容又如何读取呢,是做什么链接吗?

相关帖子

沙发
从小木丁丁| | 2015-1-26 10:28 | 只看该作者
有点麻烦啊,帮顶

使用特权

评论回复
板凳
MeterLeader|  楼主 | 2015-1-28 09:25 | 只看该作者
补充问:
(1) Hex文件的格式应该是固定的,记录长度+地址(基地址或偏移)+数据+校验,将相应记录数据写入该地址即可?
(2) 能否在设备上电运行老程序后,调用擦除和写入程序擦/写片内ROM,将所有Hex文件的记录写入相应地址,作为新的升级程序覆盖老程序?如果在设备上电运行老程序后,擦除片内ROM上老程序,相当于自己把自己擦除了,程序会否死在当下,无法再写入新的程序?这本地程序升级到底是个什么原理?

使用特权

评论回复
地板
星辰yyt| | 2015-2-3 09:43 | 只看该作者
一般情况下,这种会分成两段程序,一段是boot段,一般是app段,boot用着升级程序,用这段程序去修改除去boot段Flash的其他扇区Flash,单片机上一般情况下boot是是不能被升级的,但是WinCE boot是可以自己升级的。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
MeterLeader + 3
5
xbd_119| | 2015-2-3 19:33 | 只看该作者
也是可以自己升级自己的,这要牵扯到pic编程,最简单的方法是把升级程序用汇编写,在升级的时候copy这段代码到ram中运行升级

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
MeterLeader + 2
6
xbd_119| | 2015-2-3 19:34 | 只看该作者
注意汇编里不能引用程序的绝对地址

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
MeterLeader + 1
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

92

帖子

0

粉丝