WCHISPTool_CMD 燒錄過程中多余的軟復(fù)位

實(shí)驗(yàn)對(duì)象:官方 CH32V208 評(píng)估板 (帶以太網(wǎng)),通過短路帽將 BOOT0 針 對(duì)地短接,BOOT1 針 對(duì)地短接。


通過 WCHISPTool 燒寫:

1. 按住 Download 按鍵(BOOT0 置高 );

2. 通過電源開關(guān)(S1)重新上電;

3. 松開 Download 按鍵 (BOOT0 懸空 );

4. 此時(shí) WCHISPTool 識(shí)別到可燒寫設(shè)備,可以進(jìn)入燒寫流程;

5. 燒寫完成后,因?yàn)橛泄催x“下載完成后執(zhí)行軟復(fù)位”選項(xiàng),芯片復(fù)位,從 Code Flash 啟動(dòng)(BOOT0 = 0),開始執(zhí)行燒錄的程序。

符合預(yù)期。


但是在 Linux 下使用 WCHISPTool_CMD 燒錄時(shí),配置是從 WCHISPTool 導(dǎo)出的。如

`sudo WCHISPTool_CMD -p /dev/ch37x0 -c ./config.ini -o program -f ./GPIO_Toggle.hex`


如果對(duì)板子的操作步驟和上述相同,是無法操作成功的。怎么樣才能成功呢?


在第2步上電以后,不能松開 Download 按鍵,需要保持 BOOT0 置高,再執(zhí)行命令,這樣就可以燒錄成功。但是即便燒錄成功,用戶程序也不會(huì)立即執(zhí)行。因?yàn)槟呐掠小跋螺d完成后執(zhí)行軟復(fù)位”,此時(shí)復(fù)位依然是從 System Flash 啟動(dòng),因?yàn)?BOOT0 為高。


所以要看程序執(zhí)行效果,只能松開 Download 按鍵,再按 Reset 復(fù)位到 Code Flash 啟動(dòng),才會(huì)執(zhí)行用戶程序。


標(biāo)題所說的區(qū)別就在于此,估計(jì) WCHISPTool_CMD 燒錄過程中有執(zhí)行軟復(fù)位。而復(fù)位后因?yàn)锽OOT0=0,芯片就不是從 system flash 啟動(dòng),導(dǎo)致后續(xù)相關(guān)操作失敗。而 WCHISPTool_CMD 沒有像 WCHISPTool 有詳細(xì)的過程,只要過程中報(bào)錯(cuò),就一定按失敗處理,缺少過程信息。但實(shí)際上這個(gè)錯(cuò)誤發(fā)生在中間某次(多余的)軟復(fù)位后。


=====ISP_Command_Tool=====

TOOL VERSION:? V3.60

p:/dev/ch37x0
b:0
v:0
c:./config.ini
o:0
f:./GPIO_Toggle.hex

{"Device":/dev/ch37x0", "Status":"Fail", "Code":6, "Message":"Fail to find any valid isp device"}

而 WCHISPTool 的燒錄過程中,只有在最后才觸發(fā)軟復(fù)位,沒有這個(gè)問題。


補(bǔ)充:這個(gè)問題是在學(xué)習(xí) CH32V208 過程中發(fā)現(xiàn),ch583 使用 WCHISPTool_CMD 燒錄,沒有這個(gè)問題(不需要一直按住 Download 鍵)。


您好,如上現(xiàn)象中使用V3.6工具版本,未更改程序的情況下針對(duì)部分CH32系列芯片工具會(huì)自動(dòng)對(duì)設(shè)備FLASH解保護(hù)然后復(fù)位一次??蓢L試更新下工具:http://www.findthetime.net/downloads/WCHISPTool_CMD_ZIP.html?

如需解保護(hù),命令參數(shù)里可單獨(dú)添加 "-r" 選項(xiàng)。


謝謝確認(rèn)。


http://www.findthetime.net/downloads/WCHISPTool_CMD_ZIP.html 目前提供的是 3.7 版本。


增加 '-r 1' 可以實(shí)現(xiàn)燒錄:


`sudo WCHISPTool_CMD -p /dev/ch37x0 -c ./config.ini -r 1 -o program -f ./GPIO_Toggle.hex`


=====ISP_Command_Tool=====

TOOL VERSION:? V3.70

p:/dev/ch37x0
b:0
v:0
c:../../isp/config.ini
o:0
f:dist/GPIO_Toggle.hex
r:1

{"Device":"/dev/ch37x0","Status":"Ready"}
{"Device":"/dev/ch37x0", "Status":"Programming", "Progress":100%}
{"Device":/dev/ch37x0", "Status":"Finished", "Code":0,"Message":"Succeed"}

如果不帶 '-r 1',則 r 為 默認(rèn)的0,會(huì)出現(xiàn)


`sudo WCHISPTool_CMD -p /dev/ch37x0 -c ./config.ini -o program -f ./GPIO_Toggle.hex`


=====ISP_Command_Tool=====

TOOL VERSION:? V3.70

p:/dev/ch37x0
b:0
v:0
c:../../isp/config.ini
o:0
f:dist/GPIO_Toggle.hex
r:0

{"Device":"/dev/ch37x0","Status":"Ready"}
{"Device":/dev/ch37x0", "Status":"Fail", "Code":13, "Message":"Fail to download"}

不過燒錄全程都需要按住 Download(BOOT0=1)。


我個(gè)人覺得我所說的“多余的”軟復(fù)位并不是發(fā)生在解除保護(hù)的動(dòng)作之后,而是發(fā)生在擦除 Flash 之后。而 WCHISPTool 不會(huì)這樣。


另外,如何下載歷史版本的 WCHISPTool_CMD_ZIP ? 如 3.6?


使用 WCHISPTool_CMD 3.7。如果 config.ini 中 IsCodeProtect=0 ,字面意思為關(guān)閉代碼保護(hù)。


那么在接下來的燒錄中 WCHISPTool_CMD,都可以直接完成燒錄,而且 Download 按鍵在手動(dòng)復(fù)位后就可以松開,燒錄完成后軟復(fù)位后自動(dòng)開始執(zhí)行用戶代碼。(效果和WCHISPTool 相同,符合預(yù)期)


另外,這里所謂的"保護(hù)"具體指的是什么?

反正即便“保護(hù)”了,用 isp 工具說解就解了,不是么?



如上保護(hù)具體是指FLASH寫入保護(hù),取決于芯片上一次燒錄完成后是否開啟了保護(hù),如開啟,則下一次燒錄代碼需要先解除保護(hù)再使用。


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

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