背景介绍由于公司没有keil的版权而又频繁收到该公司的律师函遂开始琢磨eclipse搭建嵌入式平台进行单片机的开发。一首先需要在eclipse官网下载安装包点击后进入选择安装包界面选择Eclipse IDE for Embedded C/C Developers。点击后进入下载界面选择国内镜像之后点下载即可。注意此处下载比较慢请耐心等待不要去其他镜像网站去下载镜像文件因为镜像网站下载的IDE和官网下载的不一样的ps我下载的镜像文件是不一样导致后面的环境配置缺少东西不能配置成功二mingw安装mingw安装Mingw工具链网址由于是外网推荐百度网盘下载百度云链接https://pan.baidu.com/share/init?surl1bogR8pmGYd6FDgD7QbgFg密码1111链接是网上找的可能会失效失效的话自行在网上下载下载并安装最好将Mingw安装在C盘接下来就是配置环境变量了找到安装路径下的bin文件夹复制该文件夹路径添加到系统环境变量中去如下图三GNU_MCU工具链下载与配置链接https://pan.baidu.com/share/init?surlq15QtrmjISoomjP_-YPYYA密码1111将下载的文件解压后放到D盘新建一个GNU_MCU文件夹放置这些文件待用。工具链配置若是在镜像网站下载的IDE这步配置可能会有和流程显示有区别的地方建议从头去官网下载IDE1.打开Eclipse-Windows-Preferences-MCU如上图所示点击 Global Arm Toolchains Paths (我们配置全局工具链)点击右侧Browse... 找到D盘-GNU_MCU-Arm Embedded GCC-bin文件夹路径然后确认如上图bin文件路径已经正常添加进去了。2.接下来配置Global Build Tools Path点击右侧Browse... 找到D盘-GNU_MCU-Build Tools-bin文件夹路径然后确认如上图bin文件路径已经正常添加进去了。3.接下来我们配置Global OpenOCD Path点击右侧Browse... 找到D盘-GNU_MCU-OpenOCD-bin文件夹路径然后确认如上图bin文件路径已经正常添加进去了。4.继续配置Global QEMU Path点击右侧Browse... 找到D盘-GNU_MCU-QEMU-bin文件夹路径然后确认如上图bin文件路径已经正常添加进去了。最后点击Apply and Close关闭页面。基于Arm核的相关工具链的配置到这里就结束了。如上我们已经完成了多有的工具链的配置工作我们进行是全局配置所以当具体新建某个工程的时候会自动引用这个配置当然你可以在具体工程中对其进行更改。截至到这一步我们已经基本上完成了基于arm架构的Eclipse C 语言开发环境搭建工作。四CMSIS Pack 下载与配置由于不同厂商Arm芯片的底层外设以及配置是不一样的为了能在Eclipse 能支持对应芯片的开发我们需要安装我们的目标芯片下载对应的CMSIS Pack。方法一打开Eclipse-点击如下图按钮若是镜像网站下载的IDE的安装包好像找不到CMSIS Packs这个文件点击下图刷新按钮刷新完成,在右侧Devices选择单片机厂商以及系列在右侧选择下载对应的pack.方法一下载pack包速度非常慢我下载的时候好像就是因为网速特别慢直接报错了所以推荐用方法二下载pack包方法二由于网络限制方法一很难完成附上网盘链接链接https://pan.baidu.com/share/init?surlKuijjdaY58QMSoRRbntWdg提取码1111安装好pack文件好记住安装路径然后打开eclipse-Window-Perference-C/C-MCU Packages将package folder中的路径改成你的安装路径。如果用的是ST系列的eclipse新建工程时是有模板的比较方便但是如果用的不是ST系列的芯片就需要创建空的模板自己进行配置接下来会继续讲到。五下载与调试工具配置1初次启动Eclipse时第一步就是创建一个工作空间workspace点击“Launch”后就在F盘根目录下创建了一个名为eclipse-workspace的文件夹该文件夹就是Eclipse的工作空间。至此工作空间创建完成。随之进入如下界面。2新建工程打开Eclipse找到“C/C Project”进行工程创建File → New → C/C Project如下图所示选择classic c project选择完后点next点击NEXT后进入如下界面若用的是ST芯片下面有模板可以直接使用比较方便但是如果不是ST的模板就需要创建空模板project name 给工程起个名字user default location 为使用默认地址取消勾选后可以自己选择工程地址project type 选择empty projecttoolchains选择arm cross gcc。完毕后选择下一步勾选debug和release后选择下一步。根据你的gnu mcu安装在哪选择相应路径的bin文件夹即可完毕后点完成。点“Finish”完成工程的创建该空白工程只有一些工具链的包含信息剩下的还需要自己去完善如下图所示两个重要的文件分别是.S文件启动文件和.ld文件链接脚本文件这两个文件必须是基于Eclipse平台下能够使用的需要根据自己当前使用的芯片去查找若我们使用的华大的芯片可以通过华大提供的SDK开发包中进行查找。3.添加相关文件在工程目录下创建“文件夹”如下图所示文件可以创建多层文件夹是.project下的文件夹与源文件的文件夹没有任何关系创建文件时可以创建“虚拟文件夹”。将源文件导入到相应的文件夹中导入文件时要勾选创建“软链接”而非直接将源文件夹导入到工程中来。创建完文件夹后需要往文件夹导入文件选中刚创建的文件夹右键选择Import...选中file system选项点击下一步。根据自己想导入的文件的位置在from directory中选中路径选择文件导入即可。文件导入完毕后如图4.修改配置信息进入工程属性对话框如下图所示确定内核信息是否匹配如果不匹配根据自己当前情况进行修改如下图所示代码优化等级如下图所示勾选必要的告警信息如下图所示修改调试等级增加与芯片库有关的宏定义如下图所示增加头文件路径这里是相对.project工程文件的相对路径如下图所示添加链接脚本对应ARMCC的分散加载文件xxx.sct如下图所示选中下图的两个选项不然编译的时候会报错exit.c:(.text.exit0x18): undefined reference to _exit打开默认生成bin文件如下图所示选择make工具的来源选择内部make勾选“Create extended listing”这样编译代码的时候自动生成汇编文件如下图所示至此主要的配置工作已经完成此时可以编译工程了。六编译工程编译工程的方式可以有如下几种选中待编译的工程鼠标右键选中“ Build Project”如下图所示选中待编译的工程选择 Project → Build Project即可编译当前工程选择 Project → Build All即可编译当前打开的所有工程调试工程在程序的开发阶段工程调试是必须的。下面就介绍一下通过JLink进行在线调试的的方法。选中待调试的工程选中“绿色调试按钮小虫子形状”按钮选“Debug Configurations…”双击“ GDB SEGGER J-Link Debugging”就可自动出现“ HC32F4A0_LED_Demo Debug” 调试文件如下图所示。工程的名字一般不需要修改如果想修改也可以。这里主要配置” Main“、‘”Debugger“、” Startup“ 这三个界面。Main界面Project自动选中了待调试的工程不需要修改C/C Application待调试的应用程序需为elf文件这个是自动选中的不需要修改只有编译通过才会自动选中Debugger界面Device name选择待调试的芯片型号因为这里是通过JLink调试工程所以这里必须与JLink驱动中的芯片型号名字完全一致才行若对名称是否一致产生怀疑可以去SEGGER官网搜索里面有详细的展示附上链接https://www.segger.com/downloads/supported-devices/有的jlink不支持一些芯片这样的话需要自己去添加芯片具体步骤网上有教程此处不展开说明也有一些芯片需要联系芯片厂商下载补丁比如我目前使用的hc32l021联系了厂商打了补丁之后DEBUG才没有报错。如果实在都不行也可以在这里输入芯片内核架构比如Cortex-M0但是这样填入需要搭配官方提供的flash算法一般是.flm文件来进行烧录程序。Endianness大小端模式选择一般为小端模式Connection连接方式选择通过Jlink调试时选择的时USB连接Interface根据实际情况自行选择Initial speed通信速率这个也根据自身情况选择即可其他参数保持不变即可Startup界面Set breakpoint at调试时断点处这里Debug之后在main入口停住其他参数保持不变即可至此完毕。
Eclipse嵌入式环境搭建
背景介绍由于公司没有keil的版权而又频繁收到该公司的律师函遂开始琢磨eclipse搭建嵌入式平台进行单片机的开发。一首先需要在eclipse官网下载安装包点击后进入选择安装包界面选择Eclipse IDE for Embedded C/C Developers。点击后进入下载界面选择国内镜像之后点下载即可。注意此处下载比较慢请耐心等待不要去其他镜像网站去下载镜像文件因为镜像网站下载的IDE和官网下载的不一样的ps我下载的镜像文件是不一样导致后面的环境配置缺少东西不能配置成功二mingw安装mingw安装Mingw工具链网址由于是外网推荐百度网盘下载百度云链接https://pan.baidu.com/share/init?surl1bogR8pmGYd6FDgD7QbgFg密码1111链接是网上找的可能会失效失效的话自行在网上下载下载并安装最好将Mingw安装在C盘接下来就是配置环境变量了找到安装路径下的bin文件夹复制该文件夹路径添加到系统环境变量中去如下图三GNU_MCU工具链下载与配置链接https://pan.baidu.com/share/init?surlq15QtrmjISoomjP_-YPYYA密码1111将下载的文件解压后放到D盘新建一个GNU_MCU文件夹放置这些文件待用。工具链配置若是在镜像网站下载的IDE这步配置可能会有和流程显示有区别的地方建议从头去官网下载IDE1.打开Eclipse-Windows-Preferences-MCU如上图所示点击 Global Arm Toolchains Paths (我们配置全局工具链)点击右侧Browse... 找到D盘-GNU_MCU-Arm Embedded GCC-bin文件夹路径然后确认如上图bin文件路径已经正常添加进去了。2.接下来配置Global Build Tools Path点击右侧Browse... 找到D盘-GNU_MCU-Build Tools-bin文件夹路径然后确认如上图bin文件路径已经正常添加进去了。3.接下来我们配置Global OpenOCD Path点击右侧Browse... 找到D盘-GNU_MCU-OpenOCD-bin文件夹路径然后确认如上图bin文件路径已经正常添加进去了。4.继续配置Global QEMU Path点击右侧Browse... 找到D盘-GNU_MCU-QEMU-bin文件夹路径然后确认如上图bin文件路径已经正常添加进去了。最后点击Apply and Close关闭页面。基于Arm核的相关工具链的配置到这里就结束了。如上我们已经完成了多有的工具链的配置工作我们进行是全局配置所以当具体新建某个工程的时候会自动引用这个配置当然你可以在具体工程中对其进行更改。截至到这一步我们已经基本上完成了基于arm架构的Eclipse C 语言开发环境搭建工作。四CMSIS Pack 下载与配置由于不同厂商Arm芯片的底层外设以及配置是不一样的为了能在Eclipse 能支持对应芯片的开发我们需要安装我们的目标芯片下载对应的CMSIS Pack。方法一打开Eclipse-点击如下图按钮若是镜像网站下载的IDE的安装包好像找不到CMSIS Packs这个文件点击下图刷新按钮刷新完成,在右侧Devices选择单片机厂商以及系列在右侧选择下载对应的pack.方法一下载pack包速度非常慢我下载的时候好像就是因为网速特别慢直接报错了所以推荐用方法二下载pack包方法二由于网络限制方法一很难完成附上网盘链接链接https://pan.baidu.com/share/init?surlKuijjdaY58QMSoRRbntWdg提取码1111安装好pack文件好记住安装路径然后打开eclipse-Window-Perference-C/C-MCU Packages将package folder中的路径改成你的安装路径。如果用的是ST系列的eclipse新建工程时是有模板的比较方便但是如果用的不是ST系列的芯片就需要创建空的模板自己进行配置接下来会继续讲到。五下载与调试工具配置1初次启动Eclipse时第一步就是创建一个工作空间workspace点击“Launch”后就在F盘根目录下创建了一个名为eclipse-workspace的文件夹该文件夹就是Eclipse的工作空间。至此工作空间创建完成。随之进入如下界面。2新建工程打开Eclipse找到“C/C Project”进行工程创建File → New → C/C Project如下图所示选择classic c project选择完后点next点击NEXT后进入如下界面若用的是ST芯片下面有模板可以直接使用比较方便但是如果不是ST的模板就需要创建空模板project name 给工程起个名字user default location 为使用默认地址取消勾选后可以自己选择工程地址project type 选择empty projecttoolchains选择arm cross gcc。完毕后选择下一步勾选debug和release后选择下一步。根据你的gnu mcu安装在哪选择相应路径的bin文件夹即可完毕后点完成。点“Finish”完成工程的创建该空白工程只有一些工具链的包含信息剩下的还需要自己去完善如下图所示两个重要的文件分别是.S文件启动文件和.ld文件链接脚本文件这两个文件必须是基于Eclipse平台下能够使用的需要根据自己当前使用的芯片去查找若我们使用的华大的芯片可以通过华大提供的SDK开发包中进行查找。3.添加相关文件在工程目录下创建“文件夹”如下图所示文件可以创建多层文件夹是.project下的文件夹与源文件的文件夹没有任何关系创建文件时可以创建“虚拟文件夹”。将源文件导入到相应的文件夹中导入文件时要勾选创建“软链接”而非直接将源文件夹导入到工程中来。创建完文件夹后需要往文件夹导入文件选中刚创建的文件夹右键选择Import...选中file system选项点击下一步。根据自己想导入的文件的位置在from directory中选中路径选择文件导入即可。文件导入完毕后如图4.修改配置信息进入工程属性对话框如下图所示确定内核信息是否匹配如果不匹配根据自己当前情况进行修改如下图所示代码优化等级如下图所示勾选必要的告警信息如下图所示修改调试等级增加与芯片库有关的宏定义如下图所示增加头文件路径这里是相对.project工程文件的相对路径如下图所示添加链接脚本对应ARMCC的分散加载文件xxx.sct如下图所示选中下图的两个选项不然编译的时候会报错exit.c:(.text.exit0x18): undefined reference to _exit打开默认生成bin文件如下图所示选择make工具的来源选择内部make勾选“Create extended listing”这样编译代码的时候自动生成汇编文件如下图所示至此主要的配置工作已经完成此时可以编译工程了。六编译工程编译工程的方式可以有如下几种选中待编译的工程鼠标右键选中“ Build Project”如下图所示选中待编译的工程选择 Project → Build Project即可编译当前工程选择 Project → Build All即可编译当前打开的所有工程调试工程在程序的开发阶段工程调试是必须的。下面就介绍一下通过JLink进行在线调试的的方法。选中待调试的工程选中“绿色调试按钮小虫子形状”按钮选“Debug Configurations…”双击“ GDB SEGGER J-Link Debugging”就可自动出现“ HC32F4A0_LED_Demo Debug” 调试文件如下图所示。工程的名字一般不需要修改如果想修改也可以。这里主要配置” Main“、‘”Debugger“、” Startup“ 这三个界面。Main界面Project自动选中了待调试的工程不需要修改C/C Application待调试的应用程序需为elf文件这个是自动选中的不需要修改只有编译通过才会自动选中Debugger界面Device name选择待调试的芯片型号因为这里是通过JLink调试工程所以这里必须与JLink驱动中的芯片型号名字完全一致才行若对名称是否一致产生怀疑可以去SEGGER官网搜索里面有详细的展示附上链接https://www.segger.com/downloads/supported-devices/有的jlink不支持一些芯片这样的话需要自己去添加芯片具体步骤网上有教程此处不展开说明也有一些芯片需要联系芯片厂商下载补丁比如我目前使用的hc32l021联系了厂商打了补丁之后DEBUG才没有报错。如果实在都不行也可以在这里输入芯片内核架构比如Cortex-M0但是这样填入需要搭配官方提供的flash算法一般是.flm文件来进行烧录程序。Endianness大小端模式选择一般为小端模式Connection连接方式选择通过Jlink调试时选择的时USB连接Interface根据实际情况自行选择Initial speed通信速率这个也根据自身情况选择即可其他参数保持不变即可Startup界面Set breakpoint at调试时断点处这里Debug之后在main入口停住其他参数保持不变即可至此完毕。