Keil转STM32CubeIDE工程移植问题记录

Keil转STM32CubeIDE工程移植问题记录

从Keil软件转战STM32CubeIDE,转换的过程中遇到了不少问题,在此记录一下,防止以后再踩坑.也给同样有转软件需求的朋友做个参考吧~

1.编译报错问题处理

  • 1.大量编译报错显示重复 multiple definition
c:\st\stm32cubeide_1.9.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: ./Library/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.o: in function `HAL_MspInit':
D:/workspace/MPT-I/Library/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.c:52: multiple definition of `HAL_MspInit'; ./HardwareDriverLayer/stm32f4xx_hal_msp.o:D:/workspace/MPT-I/HardwareDriverLayer/stm32f4xx_hal_msp.c:65: first defined here
c:\st\stm32cubeide_1.9.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: ./Library/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_alarm_template.o: in function `HAL_RTC_AlarmAEventCallback':
D:/workspace/MPT-I/Library/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c:252: multiple definition of `HAL_RTC_AlarmAEventCallback'; ./HardwareDriverLayer/HAL_Driver/drv_rtc.o:D:/workspace/MPT-I/HardwareDriverLayer/HAL_Driver/drv_rtc.c:219: first defined here

HAL库提供的模板文件和我们的应用文件冲突导致重复定义
在这里插入图片描述

  • 2.工程没有配置源文件路径导致大量undefined reference 编译错误

在这里插入图片描述

右击工程名->Properties->C/C++ General->Source Location处添加源文件路径(每次新增源文件文件夹需要在此处添加)
在这里插入图片描述

  • 3.alignment of array elements is greater than element size

原因在于:

typedef  CPU_STK __attribute__((aligned(8)))        CPU_STK_8BYTE_ALIGNED;

Keil,VS Code等支持8字节对齐, #pragma pack(8),gcc 默认是4字节对齐,且只支持1,2,4字节对齐, #pragma pack(4).
修改如下:

typedef  CPU_STK __attribute__((aligned(4)))        CPU_STK_8BYTE_ALIGNED;

2.工程相关配置问题

可以通过scanf和sprintf进行浮点数操作
在这里插入图片描述

选择编译器的语法标准,这里我们选用常用的C99标准
在这里插入图片描述

解决STMCube IDE 字母与汉字大小显示不一致的问题:
在这里插入图片描述

3.调试器配置

…持续更新…

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0.零点开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值