System Workbench for STM32: 一种免费跨平台的Keil替代开发工具

1 开发环境搭建

1.1 System Workbench for STM32简介

System Workbench for STM32(即SW4STM32)是一种基于Eclipse的集成开发环境(IDE,Integrated Development Environment),它由AC6公司开发,STMicroelectronics官方推荐使用。相比传统的Keil和IAR开发工具,System Workbench for STM32最大的优点就是免费且跨平台。它使用GCC编译,GDB调试,支持标准库和HAL库,支持ST-LINK下载。特别是支持Linux平台,对于纠结于操作系统版权,或者想要逃离Windows系统的广大开发者来说,绝对是个福音。

1.2 System Workbench for STM32安装

1.2.1软件下载

1.2.1.1 直接下载链接

Windows平台:http://www.ac6-tools.com/downloads/SW4STM32/install_sw4stm32_win_64bits-latest.exe

Linux平台:http://www.ac6-tools.com/downloads/SW4STM32/install_sw4stm32_linux_64bits-latest.run

1.2.1.2 官方下载链接

如果上述链接失效,请打开官方下载链接:https://www.openstm32.org/Downloading%2Bthe%2BSystem%2BWorkbench%2Bfor%2BSTM32%2Binstaller

下载前要求登录,如果没有账号,请先注册个账号。成功登录后,就能够打开下载页面,如图1和图2所示。

图1 Windows平台下载页面

图2 MAC/Linux平台下载页面

1.2.2 Windows平台安装

打开下载目录,双击install_sw4stm32_win_64bits-latest.exe,打开安装界面。

 

图3 System Workbentch for STM32安装界面

安装过程比较简单,主要包括以下步骤:

  1. 按提示点击Next,接受所有条款,点击Next,重复三次;
  2. 选择安装路径;
  3. 选择安装内容,请选择所有;
  4. 创建快捷方式;
  5. 开始复制文件;
  6. 安装ST-Link驱动,请点击安装;
  7. 安装完成,点击Done退出。

1.2.3 Linux平台安装

Linux平台安装稍有不同,下面以Deepin OS为例。首先进入下载路径,找到安装文件install_sw4stm32_linux_64bits-latest.run,假设该安装文件保存在/home/用户名/Downloads路径下。由于缺少gksudo相关依赖,该安装文件只能以命令行方式安装,下面打开命令终端。在空白处单击右键,选择在终端中打开,进入命令行窗口(或者按Ctrl+Alt+T打开终端,再用cd命令进入)。

(1)输入ls -l install_sw4stm32_linux_64bits-latest.run,查看权限;

图4 查看执行权限

(2)如果没有执行权限(x),请输入如下命令,添加执行权限;
chmod +x install_sw4stm32_linux_64bits-latest.run

(3)输入./install_sw4stm32_linux_64bits-latest.run开始安装,系统询问是否以命令行方式安装,输入y回车;

图5 是否以命令行方式安装

(4)Press 1 to continue, 2 to quit, 3 to redisplay:输入1继续;

(5)Press 1 to continue, 2 to quit, 3 to redisplay:输入1继续;

(6)Press 1 to accept, 2 to reject, 3 to redisplay:输入1接受;

(7)Press 1 to accept, 2 to reject, 3 to redisplay:输入1接受;

(8)Press 1 to accept, 2 to reject, 3 to redisplay:输入1接受;

(9)选择安装路径,默认/home/用户名/Ac6/SystemWorkbench,同意直接回车,也可以直接输入其它路径,这时使用默认;

(10)Press 1 to accept, 2 to reject, 3 to redisplay:输入1接受;

(11)Enter O for OK, C to Cancel:输入O,确认;

(12)Press 1 to continue, 2 to quit, 3 to redisplay:输入1继续;

(13)选择安装包,默认全选,Enter Y for Yes, N for No:直接输入Y;

(14)Press 1 to continue, 2 to quit, 3 to redisplay:输入1继续;

(15)提示输入密码,请输入系统登录密码;

(16)创建自动安装脚本,Enter Y for Yes, N for No:输入Y;

(17)回车,结束安装。

1.3 新建工程

双击桌面上的System Workbentch for STM32快捷方式,打开软件。首次打开该软件时,系统会要求设定工作区路径,Windows平台默认保存在C:\Users\用户名\workspace,Linux平台默认是/home/用户名/workspace,建议在某个安全位置创建SW_Projects/workspace路径,以防操作系统损坏造成数据丢失。这里以Deepin OS Linux平台为例,假设在某个路径下,事先创建了SW_Projects/workspace路径。具体保存在哪个路径下,请读者按照计算机磁盘分区的实际情况决定。勾选Use this as the default and do not ask again,以后打开软件时,不再提示。

图6 设置默认工作区路径

点击OK后,打开主界面。如图7所示。

图7 System Workbentch for STM32主界面

现在开始新建工程,在顶部菜单栏中,点击File->New->C Project,在弹出对话框中,在工程名称(Project name)中填入新创建的工程,工程类型(Project type)中,选择Ac6 STM32 MCU Project,如图8所示。

图8 新建工程

点击Next继续。

图9 发布平台

 

打开发布平台选择,这里如果勾选Debug可以在后期进行调试。点击Next继续。

图10 选择硬件平台

     下面以STM32F103C8T6单片机为例,创建一个新工程。在目标平台配置窗口中,选择Mcu一页,在Series下拉框中选择STM32F1,在Mcu下拉框中选择STM32F103C8Tx,点击Next继续。

图11 固件库选择

System Worbench for STM32同时支持寄存器、标准库、HAL。在固件库选择窗口中:

(1)如果使用寄存器编程,选择No firmware;

(2)使用标准库编程,选择StdPeriph;

(3)使用HAL编程,选择Cube HAL。

由于HAL存在一些BUG暂时没有解决,而且CubeMX生成的代码耦合度太高,所以在后面章节中,将使用标准库来进行演示。如果库没有安装,请点击Download target firmware进行下载。习惯使用寄存器或HAL的读者也不要担心,后面的TMF框架是独立于所有硬件平台和开发库的,稍作改动就能把代码移植过去。

标准库下载完后,点击Finish结束。结果如图12所示。

图12 工程创建结束

1.4 工程目录结构

图13 工程目录结构

目标工程目录结构如图13所示,虚线中的文件夹是要自己创建的。文件夹说明如下:

(1)Startup:存放的是启动文件;

(2)CMSIS:存放ARM Cortex™微控制器软件接口标准文件;

(3)StdPeriph_Driver:存放标准库驱动;

(4)TMF:存放任务管理框架相关文件;

(5)Hardware:存放硬件模块驱动相关文件;

6)System存放公共文件;

(7)Main存放main函数和系统文件。

打开SW_Projects/workspace/LEDCtrl文件夹,目录结构如图14所示。

图14 LEDCtrl工程目录结构

做如下操作:

(1)新建Main文件夹,把inc和src两个文件夹拖入其中;

(2)新建TMF文件夹,在里面分别创建inc和src两个文件夹;

(3)新建Hardware文件夹,在里面分别创建inc和src两个文件夹;

(4)新建System文件夹,在里面分别创建inc和src两个文件夹,最终结果如图15所示。

图15 LEDCtrl最终工程目录结构

回到System Workbentch for STM32开发环境,进入工程浏览器(Project Explore),在LEDCtrl上单击右键,在弹出的菜单中选择Refresh刷新工程目录(或者直接按F5),结果如图16所示。

图16 刷新后的工程结构

1.5 设置工程工作路径 

在点击LEDCtrl,在菜单中点击Project->Properties,打开属性窗口(快捷键Alt+Enter),如图17所示。

图17 工程属性窗口

    在左侧面板中,点击C/C++ General前的“+”号,打开下级面板,点击Paths and Symbols,打开工作路径设置窗口,如图18所示。

图18 包含路径设置窗口

1.5.1 头文件工作路径

下面先添加头文件工作路径。选中Includes页面,在语言Languages中,分别选择Assembly和GNU C,在右边包含路径Include directories中选中${ProjDirPath}/Inc,点击Delete删除,如图19所示。

图19 删除inc包含路径

点击Add按钮,弹出添加包含路径窗口,如图20所示。

图20 添加包含路径窗口

勾选窗口左边所有复选框,点击Workspace按钮,选择Hardware/inc,如图21所示。

图21 添加Hardware/inc目录

点击OK按钮完成选择,如图22所示。

图22 选择Hardware/inc

点击OK按钮,结果如图23所示。

图23 添加包含路径结果

重复刚才过程,分别添加Hardware/inc、System/inc、Main/inc、TMF/inc路径,结果如图24所示。

图24 添加包含路径结果

1.5.2 源文件工作路径

现在添加源文件工作路径。切换到Source Location页面,如图25所示。

图25 Source Location页面

点击Add Folder按钮,弹出窗口如图26所示。

图26 选择源文件路径

    先选择Hardware/src,点击OK完成添加,重复这个过程,添加System/src、Main/src、TMF/src,结果如图27所示。

图27 源文件包含路径

      添加完毕后,先点击Apply按钮,使设置生效;再点击右下角的OK按钮,在弹出对话框,点击Yes按钮开始重新构建。

1.6 打开工程

对于上次打开的工程,会自动保留在Project Explorer列表中,只要双击工程名,就可以打开该工程。对于之前没有打开过的工程,打开菜单File->Open Projects from File System,弹出浏览对话框,如图28所示。

图29 导入的工程

点击Finish按钮,在工程浏览器Project Explorer中双击工程名称,就能打开工程了。

1.7 关闭工程

在Project Explorer中选中要关闭的工程,单击右键,选择Close Project即可。

1.8 删除工程

如果要删除工程,在Project Explorer中选中要删除的工程,按Delete键或在右键菜单中选择Delete,将弹出删除工程对话框,如图30所示。

图30 删除工程对话框

    如果勾选Delete project contents on disk选项,点击OK按钮,将物理删除工程所有文件,且不能取消。否则,只是从Project Explorer列表中删除工程,并不会删除物理文件。

1.9代码编译与烧写

1.9.1 构建配置

图31 更改代码构建配置

    打开工程属性窗口,在左边面板中点击C/C++ Build,打开构建页面,如图31所示。点击右侧Manage Configurations按钮,弹出配置窗口,如图32所示。

图32 构建配置窗口

在表格中选择Debug或Release,然后点击Set Active按钮,就能进行Debug和Release切换。

1.9.2 代码编译

点击快捷键Ctrl+B,或者单击菜单Project->Build All,代码开始编译,在下边Console窗口中,输出编译信息,如图33所示。

图33 编译输出信息

    如果代码编译错误,在Problems窗口中将会输出错误信息。

1.9.3 代码烧写

    如果代码编译成功,就可以进行烧写了。把ST-Link连接到板子上(使用SW方式下载),在工程名称上单击右键,选择Target->Program,打开烧写窗口,如图34所示。

图34 代码下载窗口

    勾选Reset after program选项,点击OK按钮,就可以开始烧写进程了,同时在Console窗口中输出明细信息。

1.10 其它

1.10.1 代码格式化

打开工程属性窗口,在左上角文本框中输入format,点击左边面板中的Formatter,在窗口右边打开了格式化设置窗口,如图35所示。

图35 格式化设置窗口

图36 使用模板风格

    勾选Enable project specific settings选项,在下拉框中选择合适的内置模板,点击Apply按钮使设置生效,点击OK按钮退出,如图36所示。

    如果对内置模板不满意,可以使用自定义模板,点击模板列表下方的New按钮,弹出自定义格式化模板窗口,如图37所示。

图37 自定义格式化模板窗口

    在Profile name中输入模板名称,选择用来初始化设置的内置模板,点击OK按钮打开编辑窗口,如图38所示。

图38 模板编辑窗口

    在编辑后,点击Apply按钮使之生效,点击OK按钮关闭编辑窗口,回到模板选择窗口,此时模板列表中就会出现刚才自定义的模板了,如图39所示。

图39 选择自定义模板

    点击Apply使设置生效,点击OK按钮退出设置窗口。

1.10.2 设置代码文本编码

打开工程属性窗口,点击左侧面板中的Resource,进入文本编码设置窗口,如图40所示。

图40 文本编码设置窗口

    系统默认使用UTF-8编码,如果要更改成其它编码,请点击Other前面的单选框,在编码列表中选择合适的编码。如果编码列表中没有想要的编码,可以直接输入,如GB2312。点击Apply按钮使设置生效,点击OK按钮退出。

1.10.3 常用快捷键

(1)Ctrl+/:代码注释切换,操作前先选中要操作的代码;

(2)Ctrl+i:代码自动缩进,操作前先选中要操作的代码;

(3)Ctrl+Shift+F:代码自动格式化,在Linux中可能和输入法冲突,可以先关闭输入法(Ctrl+Space);

(4)Ctrl+B:代码编译;

(5)Alt+Enter:打开工程属性窗口;

(6)Ctrl+S:保存当前文件;

(7)Ctrl+Shift+S:保存所有文件。

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值