请教下单片机IAP的原理

[复制链接]
4715|4
 楼主| 江陵龙少 发表于 2010-11-4 20:29 | 显示全部楼层 |阅读模式
本帖最后由 江陵龙少 于 2010-11-4 20:31 编辑

最近接触到一款单片机DS89C450,功能很强大,有64KB FLASH,有MMU,支持IAP。
看了下数据手册,对IAP有了个不成熟的理解,请指教:
数据手册上说,只能对64KBFLASH的上半区编程,则我首先应该写一个加载器,并通过编程器烧录到低32KB区,该加载器的功能是,当需要更新程序时,通过串口发送命令序列,然后,将bin文件(源程序事先编译好,并将HEX文件转化为BIN文件)发送下去,当然这些需要PC网管来配合。当对FLASH的编程成功后,后面放一条跳转语句,跳到高32KB区执行指令。
当不需要更新程序时,或者串口收不到特定的命令序列,加载器直接跳转到高32KB区执行指令。
这其中,有个关键就是,PC网管和加载器之间的通信,我应该用间接寻址的高128B来接收BIN文件,每次最多128B,收满之后立即写入FLASH,
还有,要将HEX文件转化为BIN文件。

上面是个人对IAP的思考,请大家指教!更想知道大侠们是怎样实现IAP的。
xwj 发表于 2010-11-4 20:37 | 显示全部楼层
不一定非要将HEX文件转化为BIN文件传输,传输环节用HEX格式会更可靠些,然后单片机收到了在自己转换即可。

当然,HEX数据量会大很多,传输环节用的时间会多一些。
 楼主| 江陵龙少 发表于 2010-11-4 22:05 | 显示全部楼层
谢谢xwj的指点,HEX格式我还需要深入学习。
xwj 发表于 2010-11-4 22:29 | 显示全部楼层
HEX格式很简单的,看完下面的短文你就明白了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 江陵龙少 发表于 2010-11-4 22:45 | 显示全部楼层
再次感谢xwj前辈的热情指导!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

286

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部