我的想法是:
1。用bootrom通过网络下载debug时的vxworks内核映象,建立调试环境,bootrom中已经创建了TFFS文件系统。
2。建立一个downloadable的项目,加入通过ftp获取PC机上的vxworks内核+application映象文件的代码。
3。用常规的文件打开,写,关闭完成映象文件写入flash。
4。更改bootrom的启动方式(从网络改为tffs),写入,OK。
是有点麻烦,以后更新就很方便了。不知还有没有更好的方法??我现在还没试过从tffs上启动内核,不知xiaohua兄作过没有?
[em21][em21]
成功啦!超级终端打印出“ld_test_obj called, param=beef”的信息。
厉害!!!vxfree兄,我对你的佩服如滔滔江水奔流不息,如黄河泛滥一发不可收拾□□□□□(此处省掉5000字)。
言归正传,现在远程升级应用程序的基本方法可以归纳如下。
第一种方法:采用bootrom + vxworks + application
1。创建tffs文件系统。
2。创建bootable型的一个项目,在usrAppInit()中加入vxfree兄的test代码(对入口程序名自行更改),生成vxworks映象。
3。创建downloadable型的一个项目,这就是你的application!生成.out文件。
4。通过网络将这两个文件写入已经创建了tffs文件系统的flash。
5。更改bootrom的引导行(见前面的帖子),使其从tffs引导系统。
6。通过编译器烧写bootrom.hex到bootrom芯片(或者和vxworks共用一片flash但要用tffsBootImagePut()来完成)。
7。重启,OK。
以后直接通过网络更新tffs下的.out文件,重启就完成升级。这种方法的缺点在于占用vxworks空间较大,光vxworks映象就有1M多点,bootrom又是1百多K,优点在于启动速度快!
第二种方法: vxworks_romCompress + application
1。创建tffs文件系统。
2。创建bootable型的一个项目,在usrAppInit()中加入vxfree兄的test代码(对入口程序名自行更改),生成vxworks_romCompress 映象。
3。创建downloadable型的一个项目,这就是你的application!生成.out文件。
4。通过网络用tffsBootImagePut()来将vxworks_romCompress写入已经创建了tffs文件系统的flash,而.out文件则直接用文件操作写入。
5。重启,OK。
以后更新应用程序同第一种方法。这种方法的优点在于省空间,缺点是启动慢一点,因为要解压。这种方法我没有试过,只是按理论来说的,应该可行。
问一个问题:如果要把第一种方式的映象进行压缩,然后解压运行,不知该如何进行??
-----------------------------------------------------------------------------
刚才不知怎么连不上论坛了,害得我帖了N遍。。。。:(
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
我要赚赏金
