[EIDE] 导入MDK工程且兼容GCC编译的方法

0. 声明

本系列文章禁止搬运/转载至CSDN, 禁止基于内容衍生的任何收费行为!!! 请各位遵守开源免费之精神.

1. 前言

在一些开发中, 我们使用armcc编译器比较困难,但是完全基于makefile去操作gcc是一件很繁琐的行为;如之前写的文章使用makefile编译工程, 所以这里介绍一种生成通用MDK工程但利用EIDE去兼容GCC编译器的方法.

2.实现方法

!!! warning "注意"

1. 根据以下文章基于STM32CubeMX生成MDK工程;

!!!

2. 在生成MDK工程后别急着退出工程, 修改生成MDK工程,换成生成makefile工程.

imgimg

3. 打开文件夹你就会发现, 这两个工程是共存的.

img

4.打开EIDE , 导入MDK工程

具体流程可以去参考上面写好的文章基于STM32CubeMX生成MDK工程;
img

5. 复制makefile工程生成的.s文件和.ld文件到EIDE工程文件路径下;打开code然后修改链接器内容

img
img
img

不出意外你编译会触发一个error " non constant or forward reference address expression for section .ARM.extab"

这其中原因为 你的gcc版本也是10版的, 你可以换成11版或者前往.ld文件 将全部的(READONLY) 替换成空格:(老用户推荐)
但是如果你以前没安装过gcc,似乎 直接导入 STM32 Cube Programmer CLI 工具 是集成了新版本的GCC的;但是已经安装过的话,要把 **C:\Users\你的用户名.eide\tools ** 路径下的文件全部清除掉,然后重新打开code,等待eide漫长的自恢复,再只下载STM32 Cube Programmer CLI也可以解决.


之后点击编译即可.
img

至此, 你就算编译完成了! 然后就是配置 烧录配置进行烧录即可. (附加一张本工程的基于openOCD 的 daplink 配置方法 )

posted @ 2025-05-18 02:59  划水佬  阅读(308)  评论(2)    收藏  举报