打印

请教使用Bootloader在线升级?

[复制链接]
3088|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cheungman|  楼主 | 2008-4-22 15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做一个使用bootloader远程升级的东西。
MCU:         PIC18F458
软件平台:    MPLAB IDE 8.02+PICC18 8.35
下载调试:    MPLAB ICD2
升级通信方式:CAN总线

我有如下几个问题想请教大家:

1。请问我使用ICD2把一个程序烧写到PIC18F458的FLASH中,这个程序是以HEX格式下载到FLASH的(地球人都知道),这个程序有这么一个功能,把其自身的代码读取出来,读取的那么就是HEX数据了吧,然后通过串口发送到PC上显示出来,可行吗?其目的就是把自身的代码给表达出来。

知识普及:
HEX的格式,例如   : 02       0000     04      0000   FA
                    数据长度+数据地址+数据类型+数据+校验

2。如果可行的话,设要升级的板子为子板,用来升级子板的为母板。母板把其自身的代码(HEX数据)通过CAN总线来把数据传给子板的。子板写有BOOTLOADER,假定BOOTLOADER在FLASH的0X00-0X1FF中,用户程序在0X200-0XXXX中,其在上电复位后,如果检测到母板,与其握手后,把母板传过来的要更新代码写进0X200开始的FLASH中,并擦掉旧的代码。以此方式来进行代码的更新,请问各位有什么看法?

PS:假定母板中的所使用的硬件资源不影响子板的更新。
沙发
xieyuanbin| | 2008-4-22 20:56 | 只看该作者

几个建议

1。请问我使用ICD2把一个程序烧写到PIC18F458的FLASH中,这个程序是以HEX格式下载到FLASH的(地球人都知道),这个程序有这么一个功能,把其自身的代码读取出来,读取的那么就是HEX数据了吧,然后通过串口发送到PC上显示出来,可行吗?其目的就是把自身的代码给表达出来。


这个程序使用ICD2下载到FLASH之后已经不是HEX文件格式了.而是指令的二进制表达.代码读出来之后送到PC机,需要PC或单片机做一次转换工作,加上字节数,校验和,编程文本格式等才能成为HEX文件.
2,3没什么意见.

使用特权

评论回复
板凳
cheungman|  楼主 | 2008-4-23 09:34 | 只看该作者

re

对,下载到FLASH中已经是二进制表达了。那请问xieyuanbin版主,我可以通过读FLASH操作把这二进制数据读取出来吗? 

使用特权

评论回复
地板
xieyuanbin| | 2008-4-23 10:32 | 只看该作者

18F有表操作指令

可以以字节为单位读出FLASH的内容.另外还有专门的FLASH读出指令,也一样可以读.

使用特权

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

本版积分规则

25

主题

255

帖子

1

粉丝