跳转至

2.1 STM32开发环境搭建(Keil)

前言

MDK5简介

MDK(Microcontroller Development Kit)是KEIL公司的主打产品,是RealView MDK的简称。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc,Keil公司在2005年被ARM公司收购。MDK在全球被超过10万的嵌入式工程师所使用,目前最新版本是MKD5.25,该版本使用uVision5 IDE作为集成开发环境,由于KEIL和ARM公司之间的紧密合作,使得MDK成为目前针对ARM内核的处理器,尤其是Cortex-M内核的最佳开发工具。

MDK5先后兼容MDK4和MDK3等,MDK5加强了针对Cortex-M系列微控制器的开发支持,并对传统的开发模式和界面进行了升级。MDK5由两部分组成:MDK CoreSoftware Packs。其中 Software Packs 可以独立于工具链进行板级支持包(Board Support Pack, i.e. BSP)和中间库的升级,其整体架构如下图所示:

breeze_embedded_mdk5_architecture

MDK5同以往版本的MDK4和MDK3均不同,以往的MDK把所有的组件都包含到一个安装包中,而MDK5的安装包事实上只是MDK Core的安装包,它并不包含器件支持和设备驱动等外部组件。MDK的安装包可以从KEIL的官网下载(需要先填写一个表格)。

MDK5安装

MDK5的安装比较简单。首先从官网上下载MDK5的安装包,下载前需要先填写相关个人信息:

breeze_embedded_mdk5_install_00

然后双击下载后的安装包,开始安装:

注意

现在MDK的最新版本为 MDK5.25,而目前Breeze Mini的飞控系统是在 MDK5.17 上面开发的,由于两者的安装过程类似,所以这里就以 MDK5.17 的安装为例进行介绍

breeze_embedded_mdk5_install_01

勾选同意选择框,点击下一步:

breeze_embedded_mdk5_install_02

选择安装路径,这包括选择MDK核心组件(Core)的安装路径和外设包(Pack)的安装路径,一般只用选择 Core 的安装路径,Pack 的路径会自动设置为 Core 路径下的ARM/PACK

注意

为了方便管理MDK的外围组件,一般不建议修改Pack的相对路径,使用MDK默认的 "Core安装路径 + ARM/PACK" 即可

breeze_embedded_mdk5_install_03

点击下一步,等待进度条走完即可:

breeze_embedded_mdk5_install_04

安装完成后,会自动弹出 Pack Installer 界面,如果没有的话可以打开安装好的 Keil uVision5 软件,在工具栏上找到 Pack Installer 的图标,然后点击进入:

breeze_embedded_mdk5_pack_installer

打开 Pack Installer 界面后如下图所示:

breeze_embedded_mdk5_install_05

由于我们使用的STM32型号为 STM32F103TBU6,还需要安装开发所需要的器件支持包(Device Family Pack, i.e. DFP),所以展开STM系列产品的菜单栏:

breeze_embedded_mdk5_install_06

点击右边红色圆圈选中的三个组件,Pack Installer 会自动从网上下载最新版本的组件,下载进度在 Pack Installer 底部状态栏显示:

breeze_embedded_mdk5_install_07

注意

Breeze Mini的STM32开发环境所使用的DFP版本为 2.1.0(2016-04-14),而通过 Pack Installer 默认安装的都是最新的版本,目前其版本为 2.2.0(2017-04-21),一般情况下新版本的DFP包都会向下兼容低版本,所以使用最新版本的DFP编译工程一般不会出现问题。当然 Pack Installer 也可以安装低版本的DFP。这是因为Pack Installer具有包管理功能,可以同时安装同一个包的不同版本,而且包不限于DFP包,也包括MDK支持的所有软件包,比如BSP,CMSIS,EXAMPLE等。低版本的包可以从 Pack Installer 对应包展开项的 Previous 列表中找到以前版本的包,然后点击安装即可。如果通过 Pack Installer 安装不成功,这里还有一种手动安装的方法,方法是访问KEIL公司的软件包托管网站,这上面每个厂商的器件和对应包的历史版本都被分门别类地整理好了,可以展开所需器件的菜单栏,然后下载指定历史版本的包。包下载下来后直接双击打开,此时安装包会自动识别到前面介绍的 MDK Pack 的路径,非常方便。此时会发现自动识别出来的安装路径选项是灰色的,没法修改,个人认为 这个也是厂商不希望用户将其安装到其他位置,导致软件包依赖出现问题。这样的话直接点击下一步安装即可。最后点击 Select Software Packs 图标(图标在工具栏 Pack Installer 图标的左边),在打开的窗口上可以选择使用刚下载安装好的包,最后点击完成。至此就可以在编译工程时指定包的版本了。

由于从官网上下载下的MDK在没有指定许可证的情况下为 Lite/Education版本,有诸多功能上的限制,为了能够开发 Breeze Mini,推荐购买MDK标准版(MDK-PLUS)或者MDK专业版(MDK-Pro)的使用许可,详细情况可以咨询ARM中国产品代理商米尔科技

警告

网络上也存在对MDK进行 免费破解许可注册机软件,可以很简单地获得具有完整功能的MDK,破解教程网上有很多,可以自行参考。但建议仅限个人学习,研究使用,不要将MDK软件进行非法传播或将其用于商业产品开发,即参与经营性的行为或破坏他人的经营性行为。

J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器/编程器,将JLInk按照JTAG或者SWD协议所支持的方式和ARM内核芯片的对应引脚相连,就可以将编写好的程序下载到芯片的FLASH中,同时其与 KEIL uVision5 编译环境无缝连接,可以直接在 uVision5 的IDE中进行在硬件仿真,是学习、开发ARM必不可少的工具。下图即为JLink仿真器:

breeze_embedded_jlink

注意

请尽量使用 正版或者是授权国内代工生产 的JLink仿真器,一些国内山寨的JLink价格虽然非常低,但是从物料到焊接可能都或多或少存在问题,可能会导致在硬件单步调试时出现程序 莫名其妙跑飞 的情况。

要想MDK支持JLink进行程序下载和调试,还需要安装必要的驱动程序。首先访问SEGGER公司的JLink软件下载页面,点击 J-Link Software and Documentation Pack 下的window版本菜单栏展开所有可用的JLink驱动版本,Breeze Mini 在开发时所使用的JLink版本为 V6.12a,可以下载这个版本的JLink驱动:

breeze_embedded_jlink_driver_download

这里以V5.12f版本安装为例,其他版本的类似,首先双击下载得到的安装包,点击下一步:

breeze_embedded_jlink_driver_install_1

点击同意:

breeze_embedded_jlink_driver_install_2

然后在窗口中选择JLink的安装组件(选择下图中红框框选的选项):

breeze_embedded_jlink_driver_install_3

接着设置JLink的安装路径,一般默认即可:

breeze_embedded_jlink_driver_install_4

最后等待完成即可,若电脑上已经安装过其他版本的JLink驱动,会出现下图所示的提示框:

breeze_embedded_jlink_driver_install_5

窗口提示是否要 替换 原先版本的驱动,注意有的时候新版本的JLink驱动可能没法正常工作,目前 Breeze Mini 使用的 V6.12a 版本的JLink经过测试是没有问题的,若安装的是 V6.12a 版本的驱动,则可以直接选择 替换。若安装的是比 V6.12a 版本更高的驱动的话,则可能在替换原先版本后出现JLink仿真器硬件错误等问题,所以这里 建议安装V6.12a版本的驱动

最后点击完成,结束驱动的安装:

breeze_embedded_jlink_driver_install_6

获取飞控系统代码

目前 Breeze Mini 飞控系统代码提供 KEIL MDK 版本和支持开源工具链的 MAKE 版本,但是由于 MAKE 版本的代码还没有测试完,所以目前只支持 KEIL MDK 版本的开发。

首先访问Breeze Mini的飞控代码的Github主页,然后点击绿色按钮 Clone or download 后下载ZIP压缩格式的代码,具体操作如下图所示:

breeze_embedded_github_download_project

如果电脑中安装有 git 工具的话,也可以在命令行中键入以下命令来获得代码:

1
git clone https://github.com/microdynamics-quadcopter/breeze_firmware_none

将代码下载到本地后,直接双击打开 breeze_firmware_demo\keil\Project 路径下的MDK5工程文件 breeze_firmware_none.uvprojx,工程所有的配置都已经

参考