最近在做一个使用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:假定母板中的所使用的硬件资源不影响子板的更新。 |