keer_zu:
想做一个mega128的远程程序升级 要升级的程序能不能通过串口写入flash存储器? 如果可以那样,写入的代码应该是哪种形式的? 如何解决重定位问题的?
如果要通过串口写入,要写入的程序是不是编译输出的.hex文件?还是别的? 写入falsh]的位置是不是根据编译器设置的目标存储器而定? 还请各位指教/
pantodd: 这样。
在M128的BOOT区的BOOTLOADER程序与远程的上位机进行通讯(通讯可以是串口,SPI,I2C。。。)如果这个远程很远,要考虑其它通讯媒介了。 BOOTLOADER将上位机收到的数据包中的数据写入其应用区的FLASH这样就可以程序升级。当然自已可以定义通讯协议。这样写入FLASH的位置可以由上位机决定了。 keer_zu:谢谢
如果升级程序,那么写入的文件是什么文件?是不是我们平时用ISP下载的 .hex文件?只要编译时设置好就行吗?
音乐乐乐 : 什么文件都行,反正上位机是自己写的通讯程序
可以将hex加密成只有自己程序才能读懂的文件,呵呵。
keer_zu : 那么程序的定位问题呢?
^_^:
写入的是可执行的二进制代码,程序代码中的地址应该是绝对地址,所以我把程序最终加载的位置一定是确定的吧?这样的程序是编译器直接生成的?
|