替换前检查:
1、修改全局宏定义,450改为4710:
2、device芯片设备更换:
3、更换启动文件,记得要在keil工程中添加修改:
4、比较两个启动文件,修改堆栈大小:
5、将所有defined (GD32F450)的地方也添加上defined (GD32F470)
特别注意这两个文件里面的GD32F450,比较难找:
比较450工程与470工程,发现gd32f4xx_fmc.c的差异很大 ,尝试直接赋值粘贴.但不太可行,认为是寻找的470开发板例程比目前的工程过于高级(已经跨了一个大版本2->3):
450与470中的system_gd32f4xx.c里的系统初始化函数不一样;
研究后,判定只有从3.0.0支持GD32F470,要想从GD32F450替换为GD32F470,必须要将所有库都替换为3.0.0版本(建议参考官方470例程进行移植修改):
GD32F470的包也是今年在3.0.0版本添加:
MDK5 Software Packs (keil.com)
2、从systeminit函数看确实有所变化
不完全替换成3.0.0版本的后果是:for循环运行缓慢,无法进入定时器:
无法进入滴答定时器中断:
总结:需将工程内的离线库版本完全修改为3.0.0版本;