用RT-Thread Studio向ch32v307vct6燒錄程序,有個(gè)前置條件要完成。
1坑中坑(這部分可以看看,不要跟著操作)
要先用沁恒的燒錄工具WCHISPStudio將ch32v307vct6的ROM改為224K,RAM改為96K,
參考數(shù)據(jù)手冊(cè)可以發(fā)現(xiàn)ch32v307的FLASH和RAM是可以自己配置大小的,第一次見(jiàn)。
然后可以通過(guò)芯片的USB或串口1用WCHISPStudio下載程序,我們僅僅修改下FLASH為224K,RAM為96K。之后就可以用RT-Thread Studio燒寫(xiě)程序了。將BOOT設(shè)置好,再將板子USB或者串口1連到電腦,點(diǎn)擊WCHISPStudio搜索,就可以發(fā)現(xiàn)設(shè)備和查看FLASH了,如圖
總之,這個(gè)方法不可取!
2踩坑頓悟
經(jīng)歷了前面的坑中坑,我發(fā)現(xiàn)用RT-Thread Studio向ch32v307燒錄程序其實(shí)很簡(jiǎn)單,只要避開(kāi)一個(gè)點(diǎn)就行。
我們先用RT-Thread Studio新建一個(gè)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);
}
}
然后打開(kāi)鏈接腳本link.lds看看FLASH和RAM大小
可以看到FLASH:224K RAM:96K,這里是根據(jù)自己手里的ch32v307修改的,因?yàn)閏h32v307有好幾種存儲(chǔ)分配方式。
這個(gè)鏈接腳本沒(méi)有任何問(wèn)題,我們先編譯下程序,再點(diǎn)擊下載,會(huì)跳出一個(gè)界面
我們可以在這里用Get和Set按鈕查看和修改芯片的存儲(chǔ)分配,可以看到我的芯片現(xiàn)在存儲(chǔ)分配實(shí)際256K ROM+64K RAM,和鏈接腳本里的224K ROM+96K RAM,所以你剛剛在RT-Thread Studio編譯程序得到的鏡像(bin,hex等)無(wú)論通過(guò)那種途徑燒錄到了芯片都是無(wú)效的!
我們想要程序起作用,要么按芯片實(shí)際存儲(chǔ)分配修改鏈接腳本link.lds,要么根據(jù)link.lds設(shè)置芯片存儲(chǔ)分配,我這里就直接修改link.lds了,
想修改芯片配置的直接在剛剛跳出的下載界面通過(guò)下拉框選擇,在點(diǎn)擊Set就好,非常簡(jiǎn)單。
然后我們?cè)俅尉幾g程序點(diǎn)擊下載界面的下載按鈕,
有意思的來(lái)了,你會(huì)發(fā)現(xiàn)控制臺(tái)輸出空空如也!無(wú)論再怎么狂按復(fù)位間它都無(wú)動(dòng)于衷。
沒(méi)錯(cuò),這就是我最開(kāi)始說(shuō)的那個(gè)BUG,這時(shí)候就要上WCH-LinkUtility了,可以到沁恒的官網(wǎng)下載,我們打開(kāi)它,輕輕點(diǎn)擊一下Get或者其它按鈕,總之讓W(xué)CH-LinkUtility與芯片進(jìn)行一次通訊就行,程序就正常運(yùn)轉(zhuǎn)了,控制臺(tái)有了輸出,復(fù)位鍵也正常了,皆大歡喜!
控制臺(tái)輸出:
但當(dāng)我們?cè)俅瓮ㄟ^(guò)RT-Thread Studio下載程序后,芯片又沒(méi)反應(yīng)了。
所以,BUG確定了,是RT-Thread Studio那個(gè)下載工具的問(wèn)題,如果通過(guò)WCH-LinkUtility或者其它工具下載,都是一切正常。
3 總結(jié)與吐槽
總結(jié)就是用RT-Thread Studio編譯得到鏡像文件,再通過(guò)其它燒錄工具(WCH-LinkUtility/WCHISPStudio)下載程序,或者換IDE比如MounRiver Studio。這個(gè)問(wèn)題僅限ch32。
希望有人能早日解決這個(gè)問(wèn)題吧,還有能不能不要下載程序的時(shí)候跳出一個(gè)下載界面讓用戶二次操作嗎,太反人類了,直接給一個(gè)進(jìn)度條就好啦。
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7522瀏覽量
164128 -
RAM
+關(guān)注
關(guān)注
8文章
1369瀏覽量
114846 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1303 -
Flash存儲(chǔ)
+關(guān)注
關(guān)注
0文章
38瀏覽量
8330 -
CH32V307VCT6
+關(guān)注
關(guān)注
0文章
2瀏覽量
1045
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論