发新帖本帖赏金 50.00元(功能说明)我要提问
12下一页
返回列表
打印
[APM32F4]

Eclipse 下开发APM32F4过程分享

[复制链接]
989|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kai迪皮|  楼主 | 2022-11-28 18:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kai迪皮 于 2022-11-28 18:16 编辑

#申请原创# @21小跑堂

前言
前段时间整了一下VSCode 开发APM32F4的过程,想着还有一个老牌的IDE——“Eclipse”。想着哥俩齐,也去玩一下Eclipse看看怎么开发APM32F4,下面就简单记录一下整个过程。

1 开发环境
- 开发板: APM32F407IG MINI 开发板
- 调试器: J-Link V9/V10 或 Geehy-Link
- 操作系统: WIN10 64-bit OS
- IDE:Eclipse IDE for Embedded C/C++ Developers Version: 2022-12 (https://ftp.yz.yamagata-u.ac.jp/pub/eclipse//technology/epp/downloads/release/2022-12/M2/eclipse-embedcpp-2022-12-M2-win32-x86_64.zip)直接下载全量包解压即可。
- 交叉编译链: xpack-arm-none-eabi-gcc-10.2.1-1.1-win32-x64(记得添加Path)
- 编译工具: gnu-mcu-eclipse-windows-build-tools-2.12-20190422-1053-win64(记得添加Path)
- GDB服务器: OpenOCD(请使用我分享的版本哟 openocd-v0.12.0-rc2-2022-11-22-1713.zip (9.96 MB) ) / J-Link GDB Server CL V7.62c(最新版支持APM32F4了)

开发环境的配置配置这里就不在赘述啦,相信大家都会的。下面我们直接进入正文。

2 工程开发

2.1 新建工程

在工程目录下新建一个“Eclipse”文件夹(注意,要全英文路径哦)保存我们的工程文件,并把上次我们用VSCode开发中使用到的启动文件(startup_apm32f40x.S)及链接脚本文件(APM32F4xxxG_FLASH.ld)复制到里面。

打开Eclipse。 在“File->New”下可选择新建C/C++ Project,选择C Managed Build。  





输入 Project name,配置工程类型,为了方便建议将工程放到Project目录下。编译链选择为 ARM Cross GCC。  



若Eclipse IDE已正确设置了ARM Toolchains Path,这里将会自动选择路径。若Eclipse IDE未设置ARM Toolchains Path,也可在这里选择到ARM Toolchains绝对路径。  



点击”Finish”, 至此, 完成Project的建立。  

2.2. 新建工程文件夹并添加文件

2.2.1 手动建立文件夹及添加文件



建立虚拟文件夹Application。  



同样方法建立CMSIS、 Board、 StdPeriphDriver文件夹。  



右击Application,选择Import选项, 可导入文件。  



Import选择File System。选择需要导入的文件的路径,勾选需要导入的文件。  



同理,将所需文件导入CMSIS、 Board、 StdPeriphDriver文件夹。



2.3 工程配置

右击工程,选择工程属性Properties选项打开。  



2.3.1 Target Processor 配置

在“C/C++ Build->Settings->Tool Settings->Target Processor”下配置如下:可以根据目标芯片的内核, 选择cortex-m3、 cortex-m4、 cortex-m23或cortex-m33。 在这里我们选择“cortex-m4”。  



2.3.2 Optimization 配置

在“C/C++ Build->Settings->Tool Settings->Optimization”选项中配置优化等级, 可选-O0、 -O1、-O2、 -O3、 -Os、 -Ofast、 -Og。  



2.3.3 GNU Arm Cross C Compiler 配置

在“C/C++ Build->Settings->Tool Settings->GNU Arm Cross C Compiler”选项中配置Cross C编译选项。
本例中, 在‘’Preprocessor->Defined symbols”选项中添加APM32F10X_HD和APM32F103_MINI预编译宏。  



在”includes->Include paths”选项中添加工程所需的头文件路径。在本例中添加:
"${ProjDirPath}/../../Include"
"${ProjDirPath}/../../../../../Boards"
"${ProjDirPath}/../../../../../Libraries/APM32F4xx_StdPeriphDriver/inc"
"${ProjDirPath}/../../../../../Libraries/CMSIS/Include"
"${ProjDirPath}/../../../../../Libraries/Device/Geehy/APM32F4xx/Include"

注意: 本例中添加的头文件路径为相对路径。 这里也可以直接添加绝对路径  



2.3.4 GNU Arm Cross C Linker 配置

在“C/C++ Build->Settings->Tool Settings->GNU Arm Cross C Linker”配置Cross C链接选项。在“General ->Script files”选项中添加:
"${workspace_loc:/${ProjName}/APM32F4xxxG_FLASH.ld}"链接脚本负责告诉链接器,编译完成的可执行文件如何配置内存。



在Miscellaneous选项中,勾选Use newlib-nano及Do not use syscalls。(可优化代码大小)  



2.3.5 Build Steps 配置-生成 bin 文件

在“C/C++ Build->Settings-> Build Steps”可添加命令, 生成bin/hex文件。

本例中添加:
arm-none-eabi-objcopy -O binary "Template.elf" "Template.bin"; arm-none-eabi-objdump -D "Template.elf" > "Template.dump"


最后我们点击“Apply and Close”按钮,保存我们的配置。

2.4 编译工程

选择Project->Build Project可编译当前工程。
注意: Build Project是编译当前工程, Build All是编译当前workspace所有工程。  

注意: 每次编译之前需先保存当前工程再编译,否则编译的是上一次的工程。修改后,为了确保
正确,请先clean工程后再build。
编译完成后,可见已生成对应的elf、 hex及bin文件。  



2.5 使用 Geehy-Link 下载及调试工程

2.5.1 Debug 配置界面

在菜单栏中,点击Run->Debug Configurations,进入Debug配置界面。  

使用OpenOCD作为GDB Server,使用GCC工具链中的GDB工具作为GDB Client。 双击GDB OpenOCD Debugging,新建一套OpenOCD的配置选项。  

2.5.2 Main 选项卡



在Main选项卡中,选择当前工程,一般会自动添加当前工程下的elf文件。如果没有,可以点击Browse,手动添加elf文件。
注意: 如果之前编译了多个型号,需要选择对应的可执行文件.elf。为了方便, 也可以对每个型号都新建一套Debug的配置。  

2.5.3 Debugger 选项卡

若在搭建Eclipse环境时已正确配置OpenOCD路径,这里将自动识别。如果之前没有正确配置,也可在Executable path栏,选中OpenOCD的绝对路径。在Config options栏中,填写使用的cfg文件。 本例中为:
-f interface/cmsis-dap.cfg -f target/apm32f4x.cfg
OpenOCD的cfg文件提供了调试器、 调试协议、目标芯片识别及目标芯片烧写算法选择等信息。  



2.5.4 SVD Path 选项卡



2.6 Debug 界面

Debug Configurations配置完成后,点击Debug,进入Debug视图。






以上就是搭建Eclipse开发APM32F4的开发过程啦。相关源码请看这里 APM32F4xx_SDK_Eclipse_v0.1.zip (7.46 MB)

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 50.00 元 2022-11-30
理由:恭喜通过原创审核!期待您更多的原创作品~

评论
kai迪皮 2022-12-1 09:59 回复TA
@21小跑堂 :感谢,感谢。 
21小跑堂 2022-11-30 15:19 回复TA
在eclipse环境下搭建APM32开发,文章结构清晰,内容充实,整个搭建过程详细合理,继续加油。 
沙发
两只袜子| | 2022-12-1 14:54 | 只看该作者
整个开发过程写得很细致到位啊,牛

使用特权

评论回复
板凳
burgessmaggie| | 2022-12-1 17:40 | 只看该作者
这个直接使用stm32的程序替代不好用吗?

使用特权

评论回复
地板
wengh2016| | 2022-12-1 17:48 | 只看该作者
本帖最后由 wengh2016 于 2022-12-4 22:42 编辑

感觉还是keil简单许多。              

使用特权

评论回复
评论
kai迪皮 2022-12-5 23:39 回复TA
@wengh2016 :是的。毕竟商业用途,也是Keil赚钱的主要途径。 
wengh2016 2022-12-4 22:43 回复TA
@kai迪皮 :个人的话**可以,公司的就得花钱了。 
kai迪皮 2022-12-4 14:30 回复TA
毕竟keil 是花钱的 
5
houjiakai| | 2022-12-4 20:51 | 只看该作者
这个不习惯使用Eclipse ?

使用特权

评论回复
6
rosemoore| | 2022-12-5 21:16 | 只看该作者
是不是也可以搭建apm的其他芯片?

使用特权

评论回复
评论
kai迪皮 2022-12-5 23:36 回复TA
可以的,以此类推喔 
7
cashrwood| | 2022-12-5 23:18 | 只看该作者
这个可以运行keil生成的库文件吗?

使用特权

评论回复
评论
kai迪皮 2022-12-5 23:38 回复TA
.a类型的库文件吗?可以的。 
8
tabmone| | 2022-12-6 13:06 | 只看该作者
可以使用keil开发的。              

使用特权

评论回复
9
uiint| | 2022-12-6 14:07 | 只看该作者
APM32F4对编译器还有要求的吗

使用特权

评论回复
10
hearstnorman323| | 2022-12-6 14:48 | 只看该作者
这个也需要gcc的吗?              

使用特权

评论回复
11
hilahope| | 2022-12-6 15:49 | 只看该作者
这个写的确实非常详细了。
              

使用特权

评论回复
12
chenci2013| | 2022-12-6 16:33 | 只看该作者
Eclipse 编译太慢是怎么个问题?

使用特权

评论回复
13
modesty3jonah| | 2022-12-6 17:17 | 只看该作者
感觉Eclipse 太复杂了,不如直接使用keil简单。

使用特权

评论回复
14
weifeng90| | 2022-12-6 19:13 | 只看该作者
我还是喜欢用eclipse搞编程

使用特权

评论回复
评论
kai迪皮 2022-12-7 11:36 回复TA
哈哈,萝卜青菜。适合自己就好。 
15
yangxiaor520| | 2022-12-12 19:50 | 只看该作者
eclipse可以安装IAR插件,使用方便。

使用特权

评论回复
16
Undshing| | 2023-1-3 15:27 | 只看该作者
还是keil简单

使用特权

评论回复
17
febgxu| | 2023-1-5 13:45 | 只看该作者
感觉eclipse编译好慢。              

使用特权

评论回复
18
mattlincoln| | 2023-1-6 14:04 | 只看该作者
怎么设置才能只编译一个工程的代码?

使用特权

评论回复
19
sdlls| | 2023-1-6 17:13 | 只看该作者
为什么不使用keil?              

使用特权

评论回复
20
louliana| | 2023-1-6 18:40 | 只看该作者
这个学习一下,是否可以开发其他的芯片?

使用特权

评论回复
发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

196

帖子

11

粉丝