交叉开发
嵌入式系统开发不同于通用PC系统的开发。通用PC系统拥有强劲的处理器、充裕的内存和硬盘,且有鼠标键盘输入,显示屏查看,是理想的开发载体,因此PC程序也就直接在PC上开发。而嵌入式系统往往资源有限,输入显示也受限,不适合作为开发载体,因此嵌入式程序通常不在嵌入式系统中开发。而是将嵌入式程序放在PC上开发,然后将生成的可执行文件放在嵌入式系统运行,这种方式就叫交叉开发。
交叉开发通常由三部分组成:宿主机(Host)、目标机(Target)、连接宿主机和目标机的工具(调试/仿真/下载器)。宿主机指用于开发程序的平台,这里指PC电脑,借助电脑上的开发软件,实现程序的编写、编译;目标机指程序运行的平台,这里指开发板;连接宿主机和目标机的工具通常有串口、J-Link等。三者示意如图 4.3.1 所示。
嵌入式开发通常分为五个步骤:编辑、编译、汇编、链接、调试和下载。每个环节都需要相应的软件实现,如果将这些软件集成在一起,就叫集成开发环境(Integrated Development Environment,IDE),如图 4.3.2所示。
实际开发中,除了使用调试/下载器进行调试,还会用到串口打印显示信息。对于STM32开发,所需的开发工具如表 4.3.1 所示。因此我们需要安装两个软件(IDE和串口工具软件),准备一个调试/烧写工具。
综合实际开发情况和软件收费限制。对于集成开发环境IDE,本手册选择Keil,使用最广,读者熟悉之后也能过渡到其它IDE;对于调试/烧写工具,本手册选择ST-Link示例,功能够用价格便宜;对于串口工具,选择MobaXterm,免费够用。
下载、安装 Keil
Keil-MDK(Keil ARM Microcontroller Development Kit)前生是德国Keil公司,后被ARM收购,可以看作是ARM官方的集成开发环境。前面图 4.2.4 STM32F103ZE系列官方工具软件(部分截图)所示的网页页面,里面有Keil的下载链接,或者开发板配套资料的“3_开发软件”文件夹提供所有需要的软件,读者也可直接去Keil官网(https://www.keil.com/download/product/)直接下载,当前最新版本为5.32,如图 4.3.3 所示。
随后进入个人信息完善页面,按提示填写所有的信息,如图 4.3.4 所示,填写完后,点击“Submit”提 交。
随后进入下载页面,点击“MDK532.EXE”即可下载,如图 4.3.5 所示。
下载完后,点击运行该文件,进入安装界面,选择“Next >>”,如图 4.3.6 所示。
接着进入用户协议界面,勾选同意协议,点击“Next >>”,如图 4.3.7 所示。
然后设置安装路径,第一个“Core”是软件的安装路径,第二个“Pack”是芯片的硬件支持包的安装路径,读者保持默认路径或者设置为如图 4.3.8 所示一样的即可,如果是自定义设置,建议为全英文路径,不建议为包含有中文的路径。选择好之后点击“Next >>”后:
随后需要设置个人信息,随便填写即可,如图 4.3.9 所示。
之后便进入安装进度界面,如图 4.3.10 所示,等待安装完成。
安装过程中,回弹出驱动安装界面,勾选“始终信任来自‘ARM Ltd’的软件”,然后点击“安装”, 如图 4.3.11 所示。
如图 4.3.12 所示即安装完成,“Show Release Notes”为查看当前版版本说明,可以不勾选,最后点击“Filash”。
之后会自动进入“Pack Installer”界面,这里会检查安装的编译器、CMSIS等是否是最新的,由于我们安装的是官网提供的最新的MDK,所以这里一般情况下都是不需要更新的。
至此Keil就安装完成了,但这不是Keil开发环境的全部。一个Keil的开发环境,除了Keil软件,还需要安装对应的Pack,比如这里目标机的MCU是STM32F103ZET6,就需要下载该系列的的Pack,如果是STM32F4系列,就需要下其它系列Pack。
使用“Pack Installer”可以方便的对Pack安装和管理。在左上角搜索框输入“STM32F103”,展开搜索结果,可以看到STM32F103ZE,点击右边的简介链接即可跳转到Pack下载页面,如图 4.3.13 所示。如果跳转网页无法打开,可直接打开Pack下载总入口(www.keil.com/dd2/Pack/)。进入Pack下载总入口后,找到“STMicroelectronics STM32F1 Series Device Support, Drivers and”,点击右边的下载图标即可,如图 4.3.14所示(实测部分网络环境打开该链接无Pack列表,请尝试换个网络环境测试,仍旧不行则使用配套资料Pack)。
下载之前会弹出Pack用户协议,点击“Accept”即可,如图 4.3.15 所示。
下载完成得到“Keil.STM32F1xx_DFP.2.3.0.pack”,直接双击该文件,随后弹出如图 4.3.16 所示界面, 点击“Next”进行安装。
本开发板使用ST-Link进行下载调试程序,还需要安装ST-Link驱动。首先从ST官网下载该驱动(https://www.st.com/en/development-tools/stsw-link009.html),或者直接使用配套资料里的ST-Link驱动,路径为“3_开发软件2_ST-LinkV2仿真器驱动en.stsw-link009.zip”。
解压“en.stsw-link009.zip”,双击运行“dpinst_amd64.exe”(如果电脑为32位系统,运行“dpinst_x86.exe”),出现如图 4.3.17 所示安装界面,点击“下一步”。
在安装过程中,出现如图 4.3.18 所示的Windows安全警告,选择“安装”。
最后安装完成提示如图 4.3.19 所示,点击“完成”退出安装程序。
至此,针对本开发板(STM32F103系列)的Keil开发环境,配置完成。
下载、安装 MobaXterm
实际开发中,常常使用串口的输出信息来协助调试。通常的串口连接如图 4.3.17 所示。开发板的串口(TTL电平)引出,通过USB-TTL串口模块,转成USB信号给电脑,在电脑上还需要配套软件才能显示信息,也就是这里要安装的MobaXterm。本开发板的USB-TTL串口模块集成在了开发板上,在前面图 3.3.1 的编号37处,因此本开发板只需要使用Micro USB线将电脑和开发板编号37处连接即可。
目前还用不上串口,因此不需要接线,只需要将串口工具MobaXterm先下载、安装即可。打开MobaXtrem官网(https://mobaxterm.mobatek.net/download.html),如图 4.3.18 所示。Moxtrem有两个版本,“Home Edition” (家庭版)有功能限制但免费,“Professional Edition(专业版)无功能限制但收费,这里选择功能够用的家庭版下载即可。
接着跳到家庭版下载页面,又分两个版本可选,“Protable edition”(便携版)无需安装,点击即用,“Installer edition”(安装版)需要安装才能使用,这里选择便携版即可,如图 4.3.19 所示。
下载得到“MobaXterm_Portable_v20.4.zip”,需要读者解压到任一目录,解压后如图 4.3.20 所示,以后点击“MobaXterm_Portable_v20.4.exe”即可运行MobaXtrem。