本帖最后由 江陵龙少 于 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的。 |