前言
借助之前在GD32E103上移植RT-Thread的代码来移植到GD32F105。
一、替换文件
1、复制一个gd32e103工程,命名为gd32f105-eval。
2、复制官方GD32F10x系列开发板下的GD32F10x_Firmware_Library文件夹下所有文件放到Libraries文件夹下。
3、复制原GD32E103工程Libraries\CMSIS下的core_cmFunc.h和core_cmInstr.h文件到rt-thread-rt-smart\bsp\gd32f105\gd32f105-eval\Libraries\CMSIS。
4、复制RTE文件夹重命名为_rt-thread_gd32f10x,并存放在RTE文件夹。
5、删除drivers文件夹下这5个文件,其实删不删对后面移植没关系,只是强迫症觉得好看。
二、添加文件到工程
1、添加库文件,路径为:
rt-thread-rt-smart\bsp\gd32f105\gd32f105-eval\Libraries\GD32F10x_standard_peripheral\Source,
rt-thread-rt-smart\bsp\gd32f105\gd32f105-eval\Libraries\CMSIS\GD\GD32F10x\Source,
rt-thread-rt-smart\bsp\gd32f105\gd32f105-eval\Libraries\CMSIS\GD\GD32F10x\Source\ARM
2、删除原本这两个头文件路径
3、添加新的头文件路径
4、修改芯片为GD32F105VCT6。
5、修改名称,这个对工程影响不大,强迫症而已。
三、修改源码
1、打开RTE_Components.h,添加以下代码
#define RTE_DEVICE_STDPERIPHERALS_ADC
#define RTE_DEVICE_STDPERIPHERALS_BKP
#define RTE_DEVICE_STDPERIPHERALS_CAN
#define RTE_DEVICE_STDPERIPHERALS_CRC
#define RTE_DEVICE_STDPERIPHERALS_DAC
#define RTE_DEVICE_STDPERIPHERALS_DBG
#define RTE_DEVICE_STDPERIPHERALS_DMA
#define RTE_DEVICE_STDPERIPHERALS_ENET
#define RTE_DEVICE_STDPERIPHERALS_EXMC
#define RTE_DEVICE_STDPERIPHERALS_EXTI
#define RTE_DEVICE_STDPERIPHERALS_FMC
#define RTE_DEVICE_STDPERIPHERALS_FWDGT
#define RTE_DEVICE_STDPERIPHERALS_GPIO
#define RTE_DEVICE_STDPERIPHERALS_I2C
#define RTE_DEVICE_STDPERIPHERALS_MISC
#define RTE_DEVICE_STDPERIPHERALS_PMU
#define RTE_DEVICE_STDPERIPHERALS_RCU
#define RTE_DEVICE_STDPERIPHERALS_RTC
#define RTE_DEVICE_STDPERIPHERALS_SDIO
#define RTE_DEVICE_STDPERIPHERALS_SPI
#define RTE_DEVICE_STDPERIPHERALS_TIMER
#define RTE_DEVICE_STDPERIPHERALS_USART
#define RTE_DEVICE_STDPERIPHERALS_WWDGT
2、全局搜索gd32e10x.h,将出现的地方改成gd32f10x.h。
3、编译后应该只有一个地方出错,将提示到的头文件#include "gd32e10x_exti.h"改成#include "gd32f0x_exti.h"即可。
4、编译0错误0警告,下载即可。