请教使用Bootloader在线升级?

[复制链接]
4058|3
 楼主| cheungman 发表于 2008-4-22 15:34 | 显示全部楼层 |阅读模式
最近在做一个使用bootloader远程升级的东西。<br />MCU:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIC18F458<br />软件平台:&nbsp;&nbsp;&nbsp;&nbsp;MPLAB&nbsp;IDE&nbsp;8.02+PICC18&nbsp;8.35<br />下载调试:&nbsp;&nbsp;&nbsp;&nbsp;MPLAB&nbsp;ICD2<br />升级通信方式:CAN总线<br /><br />我有如下几个问题想请教大家:<br /><br />1。请问我使用ICD2把一个程序烧写到PIC18F458的FLASH中,这个程序是以HEX格式下载到FLASH的(地球人都知道),这个程序有这么一个功能,把其自身的代码读取出来,读取的那么就是HEX数据了吧,然后通过串口发送到PC上显示出来,可行吗?其目的就是把自身的代码给表达出来。<br /><br />知识普及:<br />HEX的格式,例如&nbsp;&nbsp;&nbsp;:&nbsp;02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;04&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0000&nbsp;&nbsp;&nbsp;FA<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据长度+数据地址+数据类型+数据+校验<br /><br />2。如果可行的话,设要升级的板子为子板,用来升级子板的为母板。母板把其自身的代码(HEX数据)通过CAN总线来把数据传给子板的。子板写有BOOTLOADER,假定BOOTLOADER在FLASH的0X00-0X1FF中,用户程序在0X200-0XXXX中,其在上电复位后,如果检测到母板,与其握手后,把母板传过来的要更新代码写进0X200开始的FLASH中,并擦掉旧的代码。以此方式来进行代码的更新,请问各位有什么看法?<br /><br />PS:假定母板中的所使用的硬件资源不影响子板的更新。
xieyuanbin 发表于 2008-4-22 20:56 | 显示全部楼层

几个建议

1。请问我使用ICD2把一个程序烧写到PIC18F458的FLASH中,这个程序是以HEX格式下载到FLASH的(地球人都知道),这个程序有这么一个功能,把其自身的代码读取出来,读取的那么就是HEX数据了吧,然后通过串口发送到PC上显示出来,可行吗?其目的就是把自身的代码给表达出来。<br /><br /><br />这个程序使用ICD2下载到FLASH之后已经不是HEX文件格式了.而是指令的二进制表达.代码读出来之后送到PC机,需要PC或单片机做一次转换工作,加上字节数,校验和,编程文本格式等才能成为HEX文件.<br />2,3没什么意见.
 楼主| cheungman 发表于 2008-4-23 09:34 | 显示全部楼层

re

对,下载到FLASH中已经是二进制表达了。那请问xieyuanbin版主,我可以通过读FLASH操作把这二进制数据读取出来吗?&nbsp;
xieyuanbin 发表于 2008-4-23 10:32 | 显示全部楼层

18F有表操作指令

可以以字节为单位读出FLASH的内容.另外还有专门的FLASH读出指令,也一样可以读.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

255

帖子

1

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