Windows下STM32单片机的eclipse编译环境搭建

时间:2024-03-21 13:21:28

英创公司开发的ETA321单片机模块,是基于STM32F103RC单片机设计的实时任务处理单元模块。

ETA321模块作为客户端,使用USB与英创公司的ARM工控主板进行数据传输、通讯,根据工控主板应用程序发出来的指令,执行相应的实时任务处理,如实现:电机控制、数据采集、高速D/A输出、状态采集保护等。另外,用户可以基于英创公司构建好的USB通讯结构,利用KEIL、IAR、eclipse等集成编译环境,在ETA321模块上编写自己特殊的应用程序。英创公司推荐使用eclipse编译环境。

由于eclipse软件编译工具是开源、免费的工具,在windows环境下编译linux应用软件的用户也比较多,因此在windows环境中,搭建eclipse的STM32编译环境,就变得非常有意义:可以很好地与linux编译环境进行整合;不用担心开发软件的版权问题;eclipse编译环境也能支持各种调试工具。

因此,使用eclipse编译环境完全替换KEIL、IAR等需要授权才能使用工具,是非常好的选择。但是榙建基于eclipse的STM32的开发环境,需要好几个软件与插件,且相应的版本需要能兼容,才能正确搭建好开发环境。

为了协助客户快速搭建eclipse编译环境,英创公司编写了这篇文章,详细说明了整个eclipse环境搭建、工程建立、目标代码烧写、以及使用JLink进行软件调试的方法。

所需要的软件或插件如下:
  JAVA
  eclipse C/C++
  gcc-arm-none-eabi,交叉编译工具链
  CDT,对cortex-M的支持的编译工具以及对J-Link调试工具的支持
  J-LINK驱动

开发/烧写STM32所需要的软件/工具:
  STM32 Flashloader串口烧写工具

为了方便客户更加简单、方便地搭建ETA321的开发环境,英创公司下载了所需的工具软件:JAVA、eclipse C/C++、gcc-arm-none-eabi、STM32-Flashloader等,可以直接利用。
Windows下STM32单片机的eclipse编译环境搭建
图1、eclipse编译环境软件工具包

下面则详细地描述eclipse编译环境塔建方法。

一、安装eclipse编译环境

1、安装JAVA

打开工具包中的(JAVA)jdk-8u144-windows-i586.exe进行默认安装即可。
Windows下STM32单片机的eclipse编译环境搭建
图2、启动并安装JAVA

Windows下STM32单片机的eclipse编译环境搭建
图3、JAVA安装中…

Windows下STM32单片机的eclipse编译环境搭建
图4、JAVA安装完成

现阶段,不建议安装JAVA 9.0版本。因为要实现JAVA 9.0 对eclipse的支持,需要额外的补丁包,所以相对麻烦一些。

2、安装eclipse

复制eclipse文件夹到开发用的计算机中(任意位置均可),如:C:\program file(x86)目录( 如果系统是32 bit,则C:\program file )。
Windows下STM32单片机的eclipse编译环境搭建
图5、将eclipse复制到Program Files(x86)目录下

3、设置交叉编译工具链的环境变量

从eclipse目录下,找到交叉编译工具链gcc-arm-none-eabi的路径,并复制下来。
Windows下STM32单片机的eclipse编译环境搭建
图6、gcc-arm-none-eabi工具链目录路径

打开“系统属性”->“高级”配置页面,再点击“环境变量”,进入环境变量设置页面。
Windows下STM32单片机的eclipse编译环境搭建
图7、环境变量设置页面

在用户环境变量中找到PATH项,点击编辑,将工具链的路径添加到PATH参数中,点击确认退出。
Windows下STM32单片机的eclipse编译环境搭建
图8、在用户环境变量的PATH变量名中,添加工具链的路径

环境变量添加完成后,可以从系统的CMD命令提示符窗口中,输入path指令,检查环境变量是否添加成功。
Windows下STM32单片机的eclipse编译环境搭建
图9、检查工具连的环境变量

4、安装CDT(C/C++ Development Tooling)

进入eclipse目录,双击eclipse.exe启动eclipse软件,这时设置eclipse的工作区路径,可以系统中的任意路径均可。设置好以后,点击“launch”。
Windows下STM32单片机的eclipse编译环境搭建
图10、设置eclipse工作区

软件启动完成后,在eclipse的“help”菜单中,选择“install New software”
Windows下STM32单片机的eclipse编译环境搭建
图11、选中help->Install New Software

然后在“Work With:”中输入链接“http://gnu-mcu-eclipse.netlify.com/v4-neon-updates”并回车,将会列出该CDT所包含的所有工具列表。在列出来的选项中,全部选择,点击“next”。
Windows下STM32单片机的eclipse编译环境搭建
图12、选中所有列表

最后接受协议,点击“finish”开始安装CDT。
Windows下STM32单片机的eclipse编译环境搭建
图13、接受license后开始安装

在eclipse的右下角可以看到安装进度,双击小的进度条,则可以打开安装信息。在安装过程中,如果有安全警告,点击“Install anyway”继续完成安装。
Windows下STM32单片机的eclipse编译环境搭建
图14、安装过程中的安全警告

当CDT安装完后,会提示软件重启,这时点击“Restart Now”,重新启动eclipse。
Windows下STM32单片机的eclipse编译环境搭建
图15、CDT安装完成,需要重新启动软件

到此,在Windows7系统下,STM32的eclipse编译环境已经搭建完成,接下来就可以建立第一个应用程序工程了。

二、建立eclipse应用工程程序

eclipse编译环境安装完成以后,就可以开始编写应用程序了,我们以ETA321模块上的LED灯D1闪烁为例子,举例说明建立简单的应用工程。

1、启动eclipse,从file->new中选择C/C++ Project。
Windows下STM32单片机的eclipse编译环境搭建
图16、建立工程

2、选择C++ Managed Build,点击“next”。
Windows下STM32单片机的eclipse编译环境搭建
图17、新工程类型选择

3、输入工程名,以及选择Project type为“STM32F10x C/C++ project”,右侧Toolchains选择为“ARM Cross GCC”,点击“next”。
Windows下STM32单片机的eclipse编译环境搭建
图18、工程编译参数选择

4、设置芯片属性,ETA321采用的是高密度器件,Flash大小为256KB,RAM大小为48KB,根据该参数进行设置,点击“next”。
Windows下STM32单片机的eclipse编译环境搭建
图20、配置ETA321芯片参数

5、设置工程所用的文件夹,可以默认即可,点击“next”。
Windows下STM32单片机的eclipse编译环境搭建
图20、配置工程所使用的文件夹

6、选择工程中需要编译的项目,一般情况下,“Debug”与“Release”都会默认选择,点击“next”。
Windows下STM32单片机的eclipse编译环境搭建
图21、编译结果项目选择

7、设置工具链。如果设置了工具链环境变量且系统重启生效,则“Toolchain path”会自动填写完成。如果这里为空,可以点击“Browse”按钮,手动选择工具链的目录即可,即上面所说的工具链路径,最后点击“finish”完成工程建立。
Windows下STM32单片机的eclipse编译环境搭建
图22、配置工具链路径

8、工程建立完成后,需要进行编译工具的配置。我们提供的eclipse工具包,有两个编译工具可以选择:CDT Internal Builder或Gnu Make Builder,使用其中一个即可。配置编译工具的方法如下:

首先,在eclipse环境中,选中所建立的工程,点击菜单中的“project”-> “Properties”,打开配置页面。
Windows下STM32单片机的eclipse编译环境搭建
图23、进入工程属性配置

a)、选择CDT Internal Builder编译工具
在弹出的配置页面中,展开左侧的“C/C++ Build”选项,点击“Tool Chain Editor”,在右边的参数“Current Builder”下拉列表中,选择CDT Internal Builder,然后点击“Apply and Close”完成设置。
Windows下STM32单片机的eclipse编译环境搭建
图24、选择编译工具为“CDT Internal Builder”

b)、选择Gnu Make Builder编译工具
从上图中可以看出,eclipse也可以使用Gnu Make Builder编译工具。在我们的eclipse工具包中,已经包含了该编译工具,在eclipse文件夹中的“GNU MCU Eclipse”就是该工具包,因此可以配置使用该编译工具。使用该工具的配置方法如下。

首先确认编译工具的路径并复制下来。
Windows下STM32单片机的eclipse编译环境搭建
图25、GNU Make Builder路径确认

点击菜单中的“project”-> “Properties”,选中左侧的“C/C++ Build”下“Environment”,会在右侧列出相应的环境变量参数。单击选择右侧的“PATH”项,再点击“Edit”按钮,进行参数配置。
Windows下STM32单片机的eclipse编译环境搭建
图26、选择“Environment”配置项

在弹出的“Edit variable”参数修改页面中,添加GNU Make Builder工具的路径到PATH环境变量中。
Windows下STM32单片机的eclipse编译环境搭建
图27、在PATH参数中,添加GNU Make Builder工具路径

最后,在左侧的“C/C++ Build”选项,点击“Tool Chain Editor”,在右边的参数“Current Builder”下拉列表中,选择“Gnu Make Builder”,然后点击“Apply and Close”完成设置。
Windows下STM32单片机的eclipse编译环境搭建
图28、选择编译工具为“Gnu Make Builder”

10、由于ETA321模块上的LED灯使用的是PB2引脚,与建立的工程中默认使用的GPIO不同,所以需要修改代码,与ETA321的GPIO对应。需要修改的定义文件为BlinkLed.h文件,其中的BLINK_JPORT_NUMBER参数更改为1,BLINK_PIN_NUMBER参数更改为2。
Windows下STM32单片机的eclipse编译环境搭建
图29、修改代码中的GPIO引脚定义为PB2

11、接下来,就可以编译工程了。右键单击工程名,在弹出的选项中,点击“Build Project”,开始编译工程。
Windows下STM32单片机的eclipse编译环境搭建
图30、编译工程

编译成功后,将会生成hex文件与elf文件
Windows下STM32单片机的eclipse编译环境搭建
图31、工程编译成功后的信息

三、使用flashloader工具烧写ETA321应用程序

如果安装好了Flashloader工具,这时,可以找到工程目录下编译出来的HEX文件,利用Flashloader工具将其烧写到ETA321中,查看程序运行结果。烧写方法如下:

1、拔动开关到ETA321模块上“3.3V”端,使ETA321处于下载状态,即:ETA321模块上的红色LED灯点亮。用USB线连接ETA321到PC机的USB端口。如果是首次进行连接,需要安装USB驱动,等一点时间,直到驱动自动安装完成。
Windows下STM32单片机的eclipse编译环境搭建
图32、首次安装USB驱动

2、从“设备管理器”中,查看ETA321模块虚拟的串口编号,即USB-SERIAL CH340虚拟串口编号。
Windows下STM32单片机的eclipse编译环境搭建
图33、检查、确认ETA321串口驱动及串口编号

3、启动Flashloader,“Port Name”端口选择CH340对应的串口编号,校验选择“none”。
Windows下STM32单片机的eclipse编译环境搭建
图34、Flashloader通讯参数

如果确认这里的参数都正确,但是又不能连接到芯片,则需要重新检查一下CH340虚拟串口的“端口设置”属性,并将波特率(位/秒)更改到115200即可。
Windows下STM32单片机的eclipse编译环境搭建
图35、ETA321虚拟串口参数属性

4、点击下一步,Flashloader会读取到芯片相关的存贮器信息,再下一步,就可以到烧写界面。
Windows下STM32单片机的eclipse编译环境搭建
图36、Flashloader工具读取到的芯片参数

5、选中“Download to device”单选按钮,并将“Verify after download”选择上,即下载完以后进行校验。
Windows下STM32单片机的eclipse编译环境搭建
图37、烧写界面

点击“Download from file”右侧的按钮,在弹出的页面中,选择需要烧写的hex文件。需要注意,这里要指定文件类型,Flashloader软件默认是.s19,要改为.hex,否则在文件夹中看不到相应的hex文件。
Windows下STM32单片机的eclipse编译环境搭建
图38、选择烧写文件

选择好文件后,点击“打开”按钮,返回烧写页面,再点击“NEXT”便开始烧写。进度条显示绿色,即烧写成功。
Windows下STM32单片机的eclipse编译环境搭建
图39、文件烧写成功

四、利用J-Link调试程序代码

首先安装J-Link的驱动,在我们提供的软件工具包中也有:JLink_Windows_V620c.exe。安装完成后,就可以使用Jlink进行软件调试了。在调试的时候,ETA321要处于运行状态,即:拔动ETA321模块上的开关到S2端,红色LED不亮。

使用JLink进行调试之前,先用JLink GDB Server工具进行芯片连测试,以确认Jlink在正常工作。连接测试流程如下:

1、使用JLink的SWD信号接口,连接到ETA321的CN3插针上,并给ETA321上电,且ETA321处于运行状态。

2、启动GDB Server工具
Windows下STM32单片机的eclipse编译环境搭建
图40、启动J-Link GDB Server

3、首先选择器件,GDB启动起来后,点击“Target Device”右侧的按钮,弹出“Target device settings”页面。在“Manufacturer”中选择“ST”,在“Core”中选择“Cortex-M3”,然后在下面的列表中,选中“STM32F103RC”,最后点击“OK”。
Windows下STM32单片机的eclipse编译环境搭建
图41、选择目标器件

4、器件选择完以后,还需要配置GDB Server连接参数:使用USB连接J-Link,SWD接口连接目标芯片,1000Khz速率,最后点击“OK”进行芯片连接。
Windows下STM32单片机的eclipse编译环境搭建
图42、配置GDB参数

5、连接成功以后,J-Link项与CPU项显示绿色状态,并能读出CPU的工作电压。
Windows下STM32单片机的eclipse编译环境搭建
图43、连接成功

到这时,说明JLINK的驱动以及硬件连接环境均正是正常,就可以在eclipse环境中,利用Jlink进行程序调试了。调试方法如下:

1、启动eclipse,打开之前已经编译通过的工程文件ETA321_LED。

2、从菜单栏上选择“RUN”下面的“Debug Configurations”。
Windows下STM32单片机的eclipse编译环境搭建
图44、选择Debug Configurations

3、在左边列表中,选中“GDB SEGGER J-Link Debugging”,再点鼠标右键,在弹出的菜单上,点击“New”,在该项目下建立一个新的调试项目。
Windows下STM32单片机的eclipse编译环境搭建
图45、新建调试项目

4、点击新建立的调试项目,展示出右侧的配置页面,这里主要需要配置/检查“Debugger”与“Startup”这两个配置页面。
在“Startup”配置页面中,去掉如下图中红圈中的两项,并点击“Apply”,以确认应用。
Windows下STM32单片机的eclipse编译环境搭建
图46、配置Startup

在“Debugger”配置页面中,需要检查多项参数:
1、检查“Actual executable”参数指向JLinkGDBServerCL.exe;
2、并输入“Device name”为“STM32F103RC”;
3、 “Endianness” 选择为“Little”;
4、“Connection”选择为“USB”;
5、“Interface”选择为“SWD”;
6、“Initial speed”配置为1000KHz。
确认参数正确以后,点击“Apply”应用配置参数。最后点击“Debug”进入调试。
Windows下STM32单片机的eclipse编译环境搭建
图47、配置Debugger

7、启动调试以后,程序入口停止在main()函数,这时可以按F6进行单步运行、F5可以进入函数内部跟踪运行。

http://www.emtronix.com
原文地址:http://www.emtronix.com/article/article20171085.html
原文下载链接:http://www.emtronix.com/download/stm32_eclipse.pdf