用RT-Thread Studio向ch32v307vct6燒錄程序,有個前置條件要完成。
1坑中坑(這部分可以看看,不要跟著操作)
要先用沁恒的燒錄工具WCHISPStudio將ch32v307vct6的ROM改為224K,RAM改為96K,
參考數據手冊可以發現ch32v307的FLASH和RAM是可以自己配置大小的,第一次見。
然后可以通過芯片的USB或串口1用WCHISPStudio下載程序,我們僅僅修改下FLASH為224K,RAM為96K。之后就可以用RT-Thread Studio燒寫程序了。將BOOT設置好,再將板子USB或者串口1連到電腦,點擊WCHISPStudio搜索,就可以發現設備和查看FLASH了,如圖
總之,這個方法不可取!
2踩坑頓悟
經歷了前面的坑中坑,我發現用RT-Thread Studio向ch32v307燒錄程序其實很簡單,只要避開一個點就行。
我們先用RT-Thread Studio新建一個ch32v307的模板工程
這是模板main線程
int main(void)
{
rt_kprintf("MCU: CH32V307n");
rt_kprintf("SysClk: %dHzn",SystemCoreClock);
rt_kprintf("www.wch.cnn");
LED1_BLINK_INIT();
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
while(1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_0);
rt_thread_mdelay(500);
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
rt_thread_mdelay(500);
}
}
然后打開鏈接腳本link.lds看看FLASH和RAM大小
可以看到FLASH:224K RAM:96K,這里是根據自己手里的ch32v307修改的,因為ch32v307有好幾種存儲分配方式。
這個鏈接腳本沒有任何問題,我們先編譯下程序,再點擊下載,會跳出一個界面
我們可以在這里用Get和Set按鈕查看和修改芯片的存儲分配,可以看到我的芯片現在存儲分配實際256K ROM+64K RAM,和鏈接腳本里的224K ROM+96K RAM,所以你剛剛在RT-Thread Studio編譯程序得到的鏡像(bin,hex等)無論通過那種途徑燒錄到了芯片都是無效的!
我們想要程序起作用,要么按芯片實際存儲分配修改鏈接腳本link.lds,要么根據link.lds設置芯片存儲分配,我這里就直接修改link.lds了,
想修改芯片配置的直接在剛剛跳出的下載界面通過下拉框選擇,在點擊Set就好,非常簡單。
然后我們再次編譯程序點擊下載界面的下載按鈕,
有意思的來了,你會發現控制臺輸出空空如也!無論再怎么狂按復位間它都無動于衷。
沒錯,這就是我最開始說的那個BUG,這時候就要上WCH-LinkUtility了,可以到沁恒的官網下載,我們打開它,輕輕點擊一下Get或者其它按鈕,總之讓WCH-LinkUtility與芯片進行一次通訊就行,程序就正常運轉了,控制臺有了輸出,復位鍵也正常了,皆大歡喜!
控制臺輸出:
但當我們再次通過RT-Thread Studio下載程序后,芯片又沒反應了。
所以,BUG確定了,是RT-Thread Studio那個下載工具的問題,如果通過WCH-LinkUtility或者其它工具下載,都是一切正常。
3 總結與吐槽
總結就是用RT-Thread Studio編譯得到鏡像文件,再通過其它燒錄工具(WCH-LinkUtility/WCHISPStudio)下載程序,或者換IDE比如MounRiver Studio。這個問題僅限ch32。
希望有人能早日解決這個問題吧,還有能不能不要下載程序的時候跳出一個下載界面讓用戶二次操作嗎,太反人類了,直接給一個進度條就好啦。
-
存儲器
+關注
關注
38文章
7528瀏覽量
164345 -
RAM
+關注
關注
8文章
1369瀏覽量
115009 -
RT-Thread
+關注
關注
31文章
1305瀏覽量
40386 -
Flash存儲
+關注
關注
0文章
38瀏覽量
8334 -
CH32V307VCT6
+關注
關注
0文章
2瀏覽量
1055
發布評論請先 登錄
相關推薦
評論