电子说
话说本人使用的是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)出现下面的界面,表示烧写成功。
可以看出,烧写过程还是挺方便、挺快捷的。 这样就完成了几块电路板的修复,还是挺不错的。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !