一 GDLink下载和调试
1.1 硬件结构和试用板组成
感谢极术社区提供的GD32开发板,具体的板子资源和配套软件可以在极术社区官网和GD官网下载,资源很全。我拿到手的GD32F427由GD32F103CBT6和GD32F427VKT6组成,其中F1是做Link的转换,用于下载程序,原理图如图所示。
之后在GD官网下载了GDLink的上位机,软件包内的内容如图所示。
其中GDLinkCLL 类似GDB调试,用命令行的模式去调试程序, gdb是以r或c
启动,GDLink是go,基本思路一样,可以按16/32位读写寄存器,具体细节有配套的手册,我没有焊接SWD或者jtag,第一次使用GD的生态,整体挺方便,能缩短开发时间。
1.2 GDLink程序下载和读取
接图2,在连接miniUSB接口之后,GDLink Programmer界面点connect,打开keil编译后的hex文件就可以Program到板子,很方便(去掉GDLink的接口,界面还会显示正在连接,即使重新插上usb也会程序下载失败,多点击两次disconnect,重新连接就可以解决)。
二 USART2
USART0有大佬做过测试,接收需要去掉一部分元器件,我就舍弃掉了,写了串口2的驱动,能够正常实现收发,由于第一次接触GD的外设库,随便看了gd32f4xx_gpio、gd32f4xx_usart、gd32f4xx_misc,库文件没啥可说的,gpio配置按照外设库的函数顺序依次配置就行,我的USART2的代码是这样(为了省事,我没有单独新建GD的工程,是在Demo的基础上开发,添加了自己的system文件夹存放驱动文件,目前写了串口和SPI)。
USART2比较简单,后期就是优化中断处理函数,main函数里面就是使能USART2_init()然后while死循环就可以了。
注释掉的是我没有使能中断的时候用轮询的方式进行测试,没啥用。和其他人一样,我中断处理函数里面就是收到啥返回啥,串口助手截图显示。
整体做的很简单,SPI的还没处理完
目前是准备串口接收蓝牙或上位机数据,通过SPI存到Flash.对GD的GDLink很感兴趣,比Openocd的环境感觉要精简,而且jtag板子用的FTPI一类的芯片价格也比F1贵吧,没仔细查,纯感觉。从手册上没看到重映射,都是复用AF,测试做的很糙,等不加班了再测点别的