1.1准备工作
下载 Eclipse IDE for Embedded C/C++ Developers,
参考链接:Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 rId5 projects...
下载交叉编译工具链gcc-arm-none-eabi
参考链接:Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
下载Build 工具
参考链接:The xPack Windows Build Tools releases | The xPack Build Framework
安装过程不做详细描述。
1.2建立一个工程(验证准备工作)
本文使用的MCU为国民科技n32g430c8l7。
与Keil不同的是Eclipse开发MCU需要一个.ld文件,设备gcc的启动文件,其他文件都是通用的。由于习惯了使用STM32CubeIDE,所以文件目录结果模仿其生成的目录结构。
图1
图2
新建C/C++工程,见图1、2
输入工程名称、选择工程模板、选择编译工具链如图3所示。
图3
选择工具链名称和路径,路径为准备工作中编译工具链安装路径。
图4
新建Core目录用于存放项目初始化代码和main函数及启动代码。
Core目录中新建Src子目录存放外设初始化和main函数源码。
Core目录中新建Inc子目录存放外设初始化和main函数头文件。
Core目录中新建Startup目录用于存放,项目适用芯片的gcc启动文件。
新建Drive目录,其目录内新建CMSIS和Peripheral目录用于存放,CMSIS文件和标准 外设库。
图5
将标准外设库源文件和头文件拷贝到..Drive/Peripjeral目录下
将CMSIS头文件拷贝到../Drive/CMSIS/inc目录下。见图6忽略错误。
图6
将启动文件startup_n32g430_gcc.s拷贝到..Core/Startup目录下。
n32g430_flash.ld拷贝到项目根目录下。
将system_n32g430.h、n32g430_conf.h、n32g430.h拷贝到..Core/Inc目录下。
将system_n32g430.c拷贝到..Core/Src目录下。
将gcc例程GPIO工程中的bsp_delay.c ,bsp_led.c,ng32g430_it.c和main.c拷贝到..Core/Src目录下。
将gcc例程GPIO工程中的bsp_delay.h ,bsp_led.c,ng32g430_it.h和main.h拷贝到..Core/Inc目录下。
此时编译有图7下错误
图7
原因没有设置头文件路径。
设置头文件路径参考图8
图8
再次编译出现如图9下错误。注意languages 选项中选择GNU C因为我们的头文件都是C语言的头文件不是汇编语言的,初次搭建环境时这里就遇到了问题。
图9
原因是没有添加.ld脚本文件路径。添加方法参考图10
图10
此时编译 Build Finished. 0 errors, 1 warnings. (took 611ms)。0errors是不是我们已经成功了,但是一个严重强迫症患者我是不允许有着一个1 warnings。
图11
警告内容: cannot find entry symbol Reset_Handler; defaulting to 08000000Chapter_1 C/C++ Problem,我猜问题应该在启动文件。
设置启动文件路径,具体操作参考图12
图12
因为启动文件是汇编语言编写的所以路径,语言选择汇编。
此时再次编译,20:54:26 Build Finished. 0 errors, 0 warnings.到这里貌似大功告成。
补充如何生成不同格式的固件文件文件参考图13
至此Eclipsegccmcu编译环境搭建完毕。
图14
下期预告,gcc+eclipse+pyocd调试n32g430c8l7
|