求教,有關(guān)CH582F的OTA BLE升級(jí)的幾個(gè)小問題

芯片:CH582F,參考文檔:芯片資料包中的《WCH藍(lán)牙空中升級(jí)(OTA BLE)》


【問題1】

參考文檔中的方式一(備份升級(jí)方式),使用AssemblingFileTool工具生成了bin文件。這個(gè)文件需要使用什么工具燒寫到片子上去?文檔中說使用ISP工具進(jìn)行下載,但是ISP工具不是只能下載hex文件嗎?


【問題2】

按照文檔說明,使用官網(wǎng)提供的安卓OTA APP進(jìn)行升級(jí),點(diǎn)擊下載之后,片子log提示擦除失敗。原因是因?yàn)樵诓脸皶?huì)計(jì)算IMAGE_A、IMAGE_B、IAP等的理論地址,然后進(jìn)行地址校驗(yàn),結(jié)果校驗(yàn)失敗了。這個(gè)地址的劃分有文檔說明嗎?


望大拿指教,謝謝。

問題1:

isp燒錄工具是可以燒錄bin文件的http://www.findthetime.net/downloads/WCHISPTool_Setup_exe.html

問題2:

OTA的升級(jí)固件應(yīng)該放入APP部分,也就是例程BackupUpgrade_OTA編譯生成的hex,

emobile_2023-03-27_10-37-58.png



我之前用ISP工具升級(jí)過BIN文件,但是升級(jí)進(jìn)去之后片子的狀態(tài)是不正常的,但是只升級(jí)hex文件是工作正常的。


這個(gè)是我生成BIN文件的截圖:

image.png


然后這個(gè)是生成BIN文件時(shí)的信息:

0000#11:28:41:718>> 開始將E:\code\rs_fashion\round_screen\CH583EVT\EVT\EXAM\BLE\BackupUpgrade_IAP\obj\BackupUpgrade_IAP.hex文件轉(zhuǎn)成BIN格式

0001#11:28:41:751>> HEX已成功轉(zhuǎn)成BIN格式(22246B=>454344B).

,BIN數(shù)據(jù)并保存在E:\CODE\RS_FASHION\ROUND_SCREEN\CH583EVT\EVT\EXAM\BLE\BACKUPUPGRADE_IAP\OBJ\BACKUPUPGRADE_IAP.BIN

0002#11:28:41:761>> 開始將E:\code\rs_fashion\round_screen\CH583EVT\EVT\EXAM\BLE\BackupUpgrade_JumpIAP\obj\BackupUpgrade_JumpIAP.hex文件轉(zhuǎn)成BIN格式

0003#11:28:41:764>> HEX已成功轉(zhuǎn)成BIN格式(34B=>4B).

,BIN數(shù)據(jù)并保存在E:\CODE\RS_FASHION\ROUND_SCREEN\CH583EVT\EVT\EXAM\BLE\BACKUPUPGRADE_JUMPIAP\OBJ\BACKUPUPGRADE_JUMPIAP.BIN

0004#11:28:41:768>> 開始將E:\code\rs_fashion\round_screen\CH583EVT\EVT\EXAM\BLE\Peripheral\obj\Peripheral.hex文件轉(zhuǎn)成BIN格式

0005#11:28:41:798>> HEX已成功轉(zhuǎn)成BIN格式(442243B=>157216B).

,BIN數(shù)據(jù)并保存在E:\CODE\RS_FASHION\ROUND_SCREEN\CH583EVT\EVT\EXAM\BLE\PERIPHERAL\OBJ\PERIPHERAL.BIN

0006#11:28:48:940>> 合并文件成功,文件另存為C:\Users\Administrator\Desktop\582.bin.bin(454344Bytes)


ISP(V3.4)升級(jí)的時(shí)候就是這樣勾選的,然后下載:

image.png


我這個(gè)操作過程有錯(cuò)誤的地方嗎?還是說BackupUpgrade_IAP和BackupUpgrade_JumpIAP工程有需要配置的地方?


BackupUpgrade_IAP和BackupUpgrade_JumpIAP是沒有問題的,你的第三個(gè)hex不對(duì),你應(yīng)該燒錄我們的BackupUpgrade_OTA生成的hex,而不是peripheral例程,peripheral例程是一個(gè)單獨(dú)跑的例程。


1111111


"你的第三個(gè)hex不對(duì),你應(yīng)該燒錄我們的BackupUpgrade_OTA生成的hex,而不是peripheral例程,peripheral例程是一個(gè)單獨(dú)跑的例程"

peripheral例程是我的項(xiàng)目,我把BackupUpgrade_OTA中有關(guān)OTA BLE的代碼移植了過來。


從你的合成hex截圖來看,你的地址并沒有分配正確,是有沖突的,有兩個(gè)文件的起始地址都是0,正確的方法是將你的功能移植到BackupUpgrade_OTA中來,當(dāng)然,如果你就想要移植到peripheral例程,那么可參考此鏈接移植:https://www.cnblogs.com/debugdabiaoge/p/15975537.html


我嚴(yán)格按照鏈接中的文檔進(jìn)行操作,但是在合并文件的時(shí)候仍然出現(xiàn)APP起始地址為0的情況,如下圖:

image.png


APP的Link.ld文件部分內(nèi)容如下(我進(jìn)行了擴(kuò)容,APP區(qū)增大到了236K):

MEMORY

{

????FLASH (rx) : ORIGIN = 0x00001000, LENGTH = 236K /* 44K */

? ??RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K

}


APP的startup_CH583.S文件最后跳轉(zhuǎn)的內(nèi)容如下:

????la t0, main

? ? csrw mepc, t0


? ? j 0x40000 /* 0x10000 */

請(qǐng)問下,工具里面的“StartAddr”是由什么決定的?是從hex包里讀出來的嗎?那hex包里的起始地址又是根據(jù)哪個(gè)文件生成的呢?


起始地址就是根據(jù)LD文件來的,

emobile_2023-03-29_15-38-59.png

如果用方式一升級(jí),只需要將OTA部分的代碼移植過來,然后copy LD文件和啟動(dòng)文件就可以了,

如果是使用方式二升級(jí):之前提供的鏈接沒有涉及到擴(kuò)容,可參考https://www.cnblogs.com/risc5-ble/p/16986897.html

也可以將整個(gè)EVT包發(fā)送至hy@wch.cn,我們幫忙看下。


手機(jī)升級(jí)HEX可以,BIN文件不行不知道什么原因!


藍(lán)牙OTA升級(jí)HEX和BIN文件 - 沁恒微電子社區(qū) (wch.cn)參考本帖


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

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