GD32F470 移植STM32F429工程 Keil调试笔记

keil版本:5.25
安装
GigaDevice.GD32F4xx_DFP.3.0.4.pack
Keil.STM32F4xx_DFP.2.15.0.pack

一、GD32F470 与 STM32F429 切换编译

1、原项目为STM32F429 工程,切换到GD32F470 只需在 Options for Target"“对话框的Device菜单中选中“GD32F470II”,重新编译即可,一般不会有编译错误。
GD32F470 移植STM32F429工程 Keil调试笔记_第1张图片
2、将项目工程在切换回STM32F429,在 Options for Target”"对话框的Device菜单中选中“GD32F29IITx”,重新编译即可,但这样会显示编译错误,如图:
GD32F470 移植STM32F429工程 Keil调试笔记_第2张图片
空间不够报警。
解决:STM332F429 IRAM1、IRAM2 都要勾选
GD32F470 移植STM32F429工程 Keil调试笔记_第3张图片
GD32F470 只有 IRAM1
GD32F470 移植STM32F429工程 Keil调试笔记_第4张图片
3、有时将项目工程再次切换回GD32F470时,会报错如下图:
GD32F470 移植STM32F429工程 Keil调试笔记_第5张图片
这个错误一直没找到原因,我是重装了keil之后才解决。

二、ST FSMC 移植到GD EXMC

ST的 FSMC PSRAM 支持8bit、16bit、32bit的位宽通讯
GD32F470 移植STM32F429工程 Keil调试笔记_第6张图片

GD的EXMC PSRAM 只支持8bit、16bit 的位宽通讯
在这里插入图片描述

三、CAN初始化卡死在 Error_Handler();

解决:更改stm32f4xx_hal_can.c中
HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef *hcan) 函数
移动 CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);函数位置
GD32F470 移植STM32F429工程 Keil调试笔记_第7张图片
详见:GD32替换STM32遇到的坑之《HAL库CAN无法初始化》

你可能感兴趣的:(stm32,笔记,单片机)