准备:
- Eclipse IDE for Embedded C/C++ Developers使用的版本是:Version: 2021-12 (4.22.0)
- 编译工具链:gcc-arm-none-eabi-9-2020-q2-update-win32
- 把工具链的路径,添加到eclipse的配置中
- GD32F310K的可运行的Demo,可移植keil中的工程。要把工程中的Firmware文件夹也复制到eclipse的工程中。
- 移植一个gcc版本的启动文件,文件名的扩展名要是大写的“S”。我是从一个STM32F4的芯片上移植过来的,也可以从GD32的其他的芯片上移植赤来,参考文章:https://aijishu.com/a/1060000...
- 移植一个ld链接文件,我也是从STM32F4的一个文件中移植过来的。
步骤:
新建一个工程,选择C Managed Build,把源代码复制到工程目录下。
右键工程名,进入设置工程界面。
芯片类型为M4
添加头文件路径
添加一些Symbols
设置链接文件的路径
都设置好后,就可以进行编译了。
添加串口与printf时,会有错。
对于printf 的重定向,在gcc中不再是fputc函数,而是_write函数,这里重新写一个_write函数。
int
_write (int fd, char *pBuffer, int size)
{
for (int i = 0; i < size; i++)
{
while (RESET == usart_flag_get (EVAL_COM, USART_FLAG_TBE))
;
usart_data_transmit (EVAL_COM, (uint8_t) pBuffer[i]);
}
return size;
}
并增加newlib-nano的支持
再编译后,没有错误。
通过GD_Link_Programmer下载的芯片上,运行正常。
问题
1、目前是缺少openocd的cfg文件,还无法使用openocd进行下载仿真。
2、不知道GDlink在设备管理器中是以哪种设备存在的,在里面找不到GDlink.
3、使用高版本的gcc编译器里的gdb时,会有缺少dll的问题,使用低版本就可以。