-
是的。项目中用第二种,但第一种更好。不占用flash空间。
-
1.简单修改其bootloader然后加升级判断,延时等,写入OTP。要么选择升级,要么从Flash启动。
2.或者开辟一个区,一直从Flash启动,也是先启动自己区内的Bootloader,判断是否升级,升级了升级,不升级了跳到应用程序部分。
目前用第二种,但第一种更完美。
欢迎拍砖。
-
至于实现的问题,自己写工具也行,理解更深(细节)。其过程为,Bootloader做了两步,第一步在原有(boot rom)的bootloader的基础上,把自己的bootloader 下载下去。这一步因为已经固化了,所以其交互的格式受限制。只能按照其rom中固化的sci通信格式走。也就是开始是0x08AA,然后怎么样,怎么样的... ...。第二步才是在已下载到ram的bootloader基础上,进行应用程序下载(如果只是从RAM跑,就不用烧写) 或 烧写(需加载到Flash中的话。跑就不一定在哪里了,看你应用而定,可能有些是在Flash中,有些在RAM中)。原理搞清楚就行了,有兴趣可以玩玩儿。
不过这种方法不好。因为还得有跳线选择从哪里启动。应用中还是麻烦。更常用的方法是,把自己的bootloader烧写到其中一个区(这个区只放Bootloader),然后直接读出你应用程序烧写后的区做成要升级的固件,通过bootloader区的代码执行下载,烧写。简单,明了。
这个方法也不完美。最好是能把其BOOT ROM的SCI启动的代码看懂,其实很简单,有源码,有说明(ti.com)。然后根据需要设置上电延时升级判断等,然后固化到OTP中。这样既不占用Flash空间,又不用要跳线。直接从OTP启动就行。 再参考CKFA 就 perfect。
哈哈,浅见,欢迎拍砖。
-
谢谢。motoandroid@126.com 期待中。。。
-
经历:
使用2812+FPGA开发过大功率电化学电源(微弧氧化电源)。3年。
使用2808开发化学分析仪器。2年。
独立开发项目中用到的上位机软件,算法等。(C#, matlab, C, C++)
电气工程及其自动化专业。电力电子方向。
希望得到配套的工具协助开发。(借用)。
留个邮箱: motoandroid@126.com
定期汇报。谢谢。
-
晕。。。。。