前言
前段时间整了一下VSCode 开发APM32F4的过程,想着还有一个老牌的IDE——“Eclipse”。想着哥俩齐,也去玩一下Eclipse看看怎么开发APM32F4,下面就简单记录一下整个过程。
1 开发环境
/ 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的开发过程啦。