CH58x BackupUpgrade_OTA內(nèi)存只給18K問題

1、編譯BackupUpgrade_OTA

搜狗截圖20211111163530.jpg

如上如編譯結(jié)果所示,內(nèi)存已占用94%還剩余1100字節(jié),對于我的工程來說是遠(yuǎn)遠(yuǎn)不夠的。


2、我修改了一下Link.ld文件? ?RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K

3、編譯是通過了

搜狗截圖20211111164107.jpg

但是確無法合并固件,提示無效的HEX文件!

搜狗截圖20211111164302.jpg

4、改回Link.ld,注釋部分代碼使已用ram小于18K,可以編譯通過且可以合并固件。

請問CH58x BackupUpgrade_OTA官方工程例子 內(nèi)存為什么只給18K?是否可以增加到全部的32K?


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

這個是寫錯了,明天更新。

image.png
上圖一起改就行了。


按上圖改了,但是合并固件的時候還是提示無效的HEX文件。


image.png
改了以后要重新編譯

image.png

這個3個文件都要改


測試了一下,發(fā)現(xiàn)應(yīng)該是AssemblingFileTool這個工具有問題,該工具無法轉(zhuǎn)換超過一定大小的hex文件

請按以下操作,應(yīng)該能復(fù)現(xiàn)。

1、用官方的BackupUpgrade_OTA例子,先不做任何改變,編譯且轉(zhuǎn)換成bin沒問題

2、在peripheralmain.c文件中定義數(shù)組

u8?test_code[4];

在int main( void )函數(shù)中,Main_Circulation();前面加入以下代碼

uint32?i;
??for?(i?=?0;?i?<?4;?++i)?{
??????test_code[i]?=?i;
??}
??test_func();

定義函數(shù)

void?test_func()?{
????uint8?i=0;
????for(i=0;i<2;i++)?PRINT("STR?arry:%x\n",?test_code[i]);
????for(i=0;i<2;i++)?PRINT("STR?arry:%x\n",?test_code[i]);
????for(i=0;i<2;i++)?PRINT("STR?arry:%x\n",?test_code[i]);
????for(i=0;i<2;i++)?PRINT("STR?arry:%x\n",?test_code[i]);
????for(i=0;i<2;i++)?PRINT("STR?arry:%x\n",?test_code[i]);
????for(i=0;i<2;i++)?PRINT("STR?arry:%x\n",?test_code[i]);
????for(i=0;i<2;i++)?PRINT("STR?arry:%x\n",?test_code[i]);
???//一直重復(fù)
???//一直重復(fù)
}

重復(fù)增加那一行,直到編譯后的FALSH大于187852 B(大概在這個位置)

image.png

3、用AssemblingFileTool工具去轉(zhuǎn)換HEX文件,報錯:無效的HEX文件。

4、減小代碼量,使編譯后的FALSH小于187852 B(大概在這個位置),工具又可以轉(zhuǎn)換HEX文件了。



咨詢了技術(shù),是工具的問題

推薦用下面的工具合并固件

https://gitee.com/iot-fan/iot-fan_at_cnblogs/tree/master/Tools/hex_tools



剛好遇到這個問題 插旗


工具已經(jīng)更新,留個郵箱可以先發(fā)給你。
下次會隨著EVT一塊更新。


麻煩發(fā)一份 個人信息保護(hù),已隱藏? 謝謝?。?!


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频