GD32F10X工程移植编译出错处理办法

[复制链接]
175|6
 楼主 | 2018-10-18 10:25 | 显示全部楼层 |阅读模式
首先说一下我遇上的情况。我的工程代码是从别人那考的原程序,编译环境是Keil5,下载方式用的是SW。工程copy过来直接编译出现:
..\HARDWARE\ADC\Adc_Init.c(34): error:  #167: argument of type "dma_parameter_struct" is incompatible with parameter of type "dma_parameter_struct *"

RTE\Device\GD32F103CB\gd32f10x_bkp.c(219): error:  #147-D: declaration is incompatible with "FlagStatus bkp_flag_get(void)" (declared at line 222 of "D:\Keil_v5\ARM\PACK\GigaDevice\GD32F10x_DFP\2.0.1\Device\Firmware\Peripherals\inc\gd32f10x_bkp.h")

RTE\Device\GD32F103CB\gd32f10x_dbg.c(38): error:  #20: identifier "DBG_CTL0" is undefined
以上错误有32多条。

由于GD片子我一开始不是很熟悉,这些错误直接是配置文件里的,我也没法修改。于是我在百度中盲目搜索关于GD32环境移植有关的内容。最后发现问题出在这里:之前我Copy的程序用的兼容包GD32F10x_AddOn_V2.0.0_KEIL插件.而现在电脑里装的是GD32F10x_AddOn_V2.0.1_KEIL插件。两个之间是否存在直接关系,于是我找到工程文件下的RTE文件夹,直接将其中的Device删除。Keil会有一个提醒,直接确定不管它。左边文件目录出现很多感叹号。
后面是重点,重新再次配置manage Run-Time Environment。(魔术棒右边绿色的),这里打开一下点击OK,Keil又会给出提醒。不用管,这样会发现感叹号重新消失。我的理解是环境配置正常了。于是直接编译。
未定义和申明错误的问题直接解决,只剩下这个错误
..\HARDWARE\ADC\Adc_Init.c(165): error:  #167: argument of type "dma_parameter_struct" is incompatible with parameter of type "dma_parameter_struct *"

革命即将胜利,
这里存在结构体冲突还是怎滴,于是我将dma_init(DMA0, DMA_CH0, dma_data_parameter);修改为
dma_init(DMA0, DMA_CH0, &dma_data_parameter);问题完美解决。编译通过。

下载程序后我发现SW找不到单片机,于是通过J-link直接修改与GD32类似的单片机型号,问题解决。
下载之后程序正常运行。
以上是我遇上的GD32移植环境问题,希望有点帮助。
| 2018-11-8 14:16 | 显示全部楼层
非常感谢楼主的经验呀
| 2018-11-10 18:18 | 显示全部楼层
这些报错的不是很明白的
| 2018-11-10 18:59 | 显示全部楼层
这些报错的好解决的,,第一个大意就是定义的结构体冲突了
| 2018-11-10 18:59 | 显示全部楼层
找到这两个的,,取消掉一个的就OK了
| 2018-11-10 21:13 | 显示全部楼层
这些报错的基本上都不太难解决的呢
| 2018-11-11 13:10 | 显示全部楼层
只要有报错的就好解决的
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

快速回复 返回顶部 返回列表