話說本人使用的是GD32F103VCT6(或GD32F103VET6),采用SWD燒寫的方式,確實一直用的好好的。但是,量產的多少,總會出現一些意想不到的情況,比如引出SWD燒寫口的焊盤脫落了,或者因為靜電等原因造成SWD無法燒錄,又或者是出現“Programming error@:0x00000000”的情況。這個時候,只是一味地采用SWD燒寫的方式,就有點無能為力了。
眾所周知,可以使用串口給STM32燒寫程序,只需設置成Boot0=1,Boot1=0,使用flash_loader_demonstrator這個小工具即可。那么,GD32F10x是否也可以這么做呢?查看了電路圖,我的電路板剛好USART1也引出來了。馬上去試試唄。
GD32F10x的引導配置
GD32F10x系列微控制器提供了三種引導源,可以通過BOOT0和BOOT1引腳來進行選擇。該兩個引腳的電平狀態會在復位后的第四個CK_SYS(系統時鐘)的上升沿進行鎖存。用戶可自行選擇所需要的引導源,通過設置上電復位和系統復位后的BOOT0和BOOT1的引腳電平。一旦這兩個引腳電平被采樣,它們可以被釋放并用于其他用途。
上電序列或系統復位后,ARMCortex-M3處理器先從0x00000000地址獲取棧頂值,再從0x00000004地址獲得引導代碼的基地址,然后從引導代碼的基地址開始執行程序。 根據所選擇的引導源,主FLASH存儲器(開始于0x08000000的原始存儲空間)或系統存儲器(開始于0x1FFFF000的原始存儲空間)被映射到引導存儲空間(起始于0x00000000)。片上SRAM存儲空間的起始地址是0x20000000,當它被選擇為引導源時,在應用初始化代碼中,你必須使用NVIC異常表和偏移寄存器來將向量表重定向到SRAM中。嵌入式的Bootloader存放在系統存儲空間,用于對FLASH存儲器進行重新編程。在GD32F10x設備中,Bootloader可以通過USART0(對應STM32F10x的USART1)接口和外界交互。
使用串口來給GD32F10x燒寫程序
1、采用FlyMcu工具,測試是不行,識別不了GD32F10x芯片。
2、是不是GD32F10x有自己專用的串口燒寫工具呢?網上一搜索,確實如此,那就是:GigaDevice MCU ISP Programmer。 3、采用GigaDevice MCU ISP Programmer給GD32F10x燒寫程序: (1)打開軟件:分明是欺負我的筆記本屏幕有點小啊,算了,忍了。
識別出串口為“COM15”,波特率不要選擇太高,這里選擇“115200”。點擊“Next”,會彈出下面界面:
(2)繼續點擊“Next”,會出現下面界面:
能夠自動識別出芯片型號,我這里的芯片型號是“GD32F103VCT6”。繼續點擊“Next”,會出現下面界面:
勾選“Download to Device”,添加要燒錄的hex文件,勾選上“Erase necessary pages”和“Verity after download”,點擊“Next”即可。 (3)此時會出現下面的界面,說明正在燒寫程序:
(4)出現下面的界面,表示燒寫成功。
可以看出,燒寫過程還是挺方便、挺快捷的。 這樣就完成了幾塊電路板的修復,還是挺不錯的。
審核編輯 :李倩
-
電路板
+關注
關注
140文章
4997瀏覽量
98908 -
串口
+關注
關注
14文章
1559瀏覽量
77085
原文標題:如何使用串口來給GD32F10x燒寫程序
文章出處:【微信號:雨飛工作室,微信公眾號:雨飛工作室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論