![21天学通Linux嵌入式开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/594/680594/b_680594.jpg)
第4章 搭建嵌入式开发平台
学习嵌入式开发的首要步骤,便是搭建一个嵌入式开发平台。这个平台包括软件开发平台和硬件平台,其中软件平台用于开发程序,而硬件平台用来运行并验证设计。本章将带领读者从头搭建一个完整的基于ARM Cortex-M3的嵌入式开发平台。通过本章的学习,读者应该实现如下几个目标。
· 了解和掌握基于ARM的RealView MDK开发环境。
· 了解基于ARM Cortex-M3的STM32芯片系列。
· 掌握基于ARM Cortex-M3的STM32最小开发系统。
· 掌握STM32的程序下载方式。
4.1 基于ARM的RealView MDK开发环境
ARM公司提供了全新的ARM开发平台——RealView系列,不仅可以用于ARM7、ARM9等的开发,还支持最新的ARM Cortex-M3的开发。而在中国,ARM公司和深圳英倍特公司合作开了本土化的ARM RealView MDK开发平台。ARM RealView MDK为中国的ARM设计者提供了简单友好的使用环境和极高的性价比,得到了广泛的应用。
4.1.1 RealView MDK简介
在中国的单片机开发者中,Keil Software公司推出的Keil μVision系列软件是最为经典的单片机软件集成开发环境。ARM公司收购了Keil公司后,在最大程度保持μVision软件的风格基础上推出了ARM RealView MDK平台。ARM RealView MDK开发平台具有如下主要特点:
· 采用Keil μVision3的开发环境和界面,给单片机用户的升级带来极大的方便。
· 具有Windows风格的可视化操作界面,界面友好,使用极为方便。
· 支持汇编语言、C51语言及混合编程等多种方式的单片机设计。
· 集成了非常全面的ARM处理器支持,能够完成ARM7、ARM9及ARM Cortex-M3等处理器的程序设计和仿真。
· 集成了丰富的库函数,以及完善的编译连接工具。
· 提供了并口、串口、A/D、D/A、定时器/计数器及中断等资源的硬件仿真能力,能够帮助用户模拟实际硬件的执行效果。
· 可以与多款外部仿真器联合使用,提供了强大的在线仿真调试能力。
· 内嵌RTX-51 Tiny和RTX-51 FULL内核,提供了简单而强大的实时多任务操作系统支持。
· 在一个开发界面中支持多个项目的程序设计。
· 支持多级代码优化,最大限度地帮助用户精简代码体积。
· 由于Keil μVision具有最为广泛的用户群,因此相应的代码资源非常丰富,读者可以轻松地找到各类编程资源以加速学习和开发过程。
4.1.2 RealView MDK系统安装需求
一般来说,程序员进行软件开发对计算机系统的配置要求比较高。但是,RealView MDK集成开发环境的另一个最大特色,便是对计算机的硬件和软件配置的要求很低。其主要要求如下:
· 最小内存128MB。
· 硬盘空间剩余至少50MB。
· Windows98或者后续的操作系统。
一般来说,现在计算机的系统配置都远远超过这个基本要求,因此都完全可以胜任。我们可以不用考虑计算机硬件配置问题,在任意计算机上直接进行安装即可。
4.1.3 RealView MDK的安装
了解了RealView MDK的一些基本概况后,下面便开始在计算机上搭建单片机的集成开发环境。操作步骤如下:
① 首先准备RealView MDK安装源文件,双击Setup安装文件,弹出Keil μVision3安装的欢迎界面,如图4-1所示。从该界面,可以看到RealView MDK依然采用了Keil μVision3的开发环境,只不过提供了完善的ARM支持。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0054_0003.jpg?sign=1739289538-UXwhmPq42ocnCsmvMFS0IeuZ1EizUfwl-0-fe8fad34736debe502c3c98197971655)
图4-1 Keil μVision3欢迎界面
② 单击“Next”按钮,弹出“License Agreement”对话框,如图4-2所示。这里显示了一些用户安装的协议和许可的要求,选择“I agree to all the terms of the preceding License Agreement”即可,否则无法进入下一步。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0054_0004.jpg?sign=1739289538-wdMhKWEliZI9gAcpHuu8EtKGq3MwbYqZ-0-e4d159c768771c0ed51deed793f64bec)
图4-2 “License Agreement”对话框
③ 单击“Next”按钮,弹出“Folder Selection”对话框,如图4-3所示。系统默认安装在“C:\Keil”文件夹下。在这里,单击“Browse”按钮,可以选择安装的目录。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0055_0001.jpg?sign=1739289538-Km8BlhRcLo6UYzW1xEBQwi2hTAM2haz5-0-b43aa76384e42316c7e370fb161ed092)
图4-3 “Folder Selection”对话框
④ 单击“Next”按钮,弹出“Customer Information”对话框,如图4-4所示。此时,用户需要输入用户名、公司名称和E-mail,缺一不可。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0055_0002.jpg?sign=1739289538-yE8XUOUrxxnoDg9XXiV1mrWUCP7Kr7wh-0-b4f0a4907a2ef835585018394be04d14)
图4-4 用户信息输入
⑤ 单击“Next”按钮,下面便开始自动安装,如图4-5所示。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0055_0004.jpg?sign=1739289538-0IFXA8B3k44ZVoyftDLq9xBAaKf6aDy2-0-ffc02b095bcf66413b2e54139056f500)
图4-5 开始安装
⑥ 安装完成后,弹出安装完成对话框,如图4-6所示。这里的几个选项的含义如下。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0055_0005.jpg?sign=1739289538-pTocHgJlvThmHO7SqTJQ7eX6HfWeAF4f-0-c96722a8d4b90b0bad296d616564eede)
图4-6 完成安装
· Show Release Notes:显示安装的版本注释信息。
· Add Example projects to the recently used project list:添加一个示例程序到当前项目列表中。
· Retain currentμVision configuration:保持当前的设置。
· Preselect Example Projects for:选择示例程序的类型。
⑦ 最后,单击“Finish”按钮,便可以结束RealView MDK集成开发环境的安装。
4.1.4 RealView MDK集成开发环境总览
对于读者来说,后面的学习和设计都需要和RealView MDK集成开发环境打交道。因此,下面将带领读者熟悉一下RealView MDK集成开发环境,帮助读者快速入门。当打开一个工程项目时,首先显示了软件的欢迎界面,如图4-7所示。当进入开发环境后,RealView MDK的界面环境如图4-8所示。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0055_0006.jpg?sign=1739289538-UclTe88Oxiy78JwEU9oL2AAAzllLcsSZ-0-bba9004a5521816a1d10d16b88453d80)
图4-7 欢迎界面
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0056_0001.jpg?sign=1739289538-bIrsC21D8bb0jnIHkrh5ljHxmAqyKiOs-0-4a9336a9cea2aeacc95ef1031dc07bbf)
图4-8 RealView MDK集成开发环境界面总揽
这里我们看到,RealView MDK集成开发环境与Keil μVision3集成开发环境基本类似。RealView MDK具有典型的Windows界面风格,整个编程界面主要包括菜单栏、工具栏、项目管理区、源代码工作区和输出信息窗口。另外,还有一些功能窗口将在后面逐步介绍。下面我们将带领读者逐一认识一下RealView MDK集成开发环境的主要组成部分。
4.1.5 RealView MDK的菜单栏
RealView MDK的菜单栏提供了项目操作、编辑操作、编译调试及帮助等各种常用操作。所有的操作基本上都可以通过菜单命令来实现。下面分别进行介绍。
1.“File”菜单
“File”菜单和标准的Windows软件的“File”菜单类似,提供了项目和文件的操作功能。“File”菜单各个命令的功能如表4-1所示。
表4-1 “File”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0056_0002.jpg?sign=1739289538-n1PtDrtyp6rN3yB93zgix6iVQ72QLuEE-0-28ecaa6701540dcff4360c6d3b270f03)
2.“Edit”菜单
“Edit”菜单提供了常用的代码编辑操作命令。“Edit”菜单各个命令的功能如表4-2所示。
表4-2 “Edit”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0056_0003.jpg?sign=1739289538-2F1nveXoEKHcunbxE9lRiJ2fnMIxRrVl-0-16c81120e6384d884d385c3c17cccf97)
3.“View”菜单
“View”菜单提供了在源代码编辑和仿真调试过程中,各个窗口和工具栏的显示和隐藏命令。“View”菜单各个命令的功能如表4-3所示。
表4-3 “View”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0057_0002.jpg?sign=1739289538-kV6WoNlm1cT5LcZ8BPEMqQbMd4EHmtXo-0-1917bc580731ef9b24ff12ccac1bcccf)
4.“Project”菜单
“Project”菜单提供了ARM项目的创建、设置和编译等命令。“Project”菜单各个命令的功能,如表4-4所示。
表4-4 “Project”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0057_0003.jpg?sign=1739289538-TJKCGGEeqjKyfYT4DksoTRYVWwIO0BLy-0-0cf7b0d29f59880f2dc124862890504c)
5.“Debug”菜单
“Debug”菜单中的命令大多用于仿真调试过程中,提供了断点、调试方式及逻辑分析等功能。“Debug”菜单各个命令的功能,如表4-5所示。
表4-5 “Debug”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0058_0002.jpg?sign=1739289538-6dwUL6tGFmhOormUtZgbiY5bEvfvQKuY-0-cfd63d2d110c4713435f7fdd7bfa355e)
6.“Flash”菜单
“Flash”菜单提供了下载程序、擦除ARM处理器程序存储器等操作。这里的命令需要外部的编程器支持才可以使用。“Flash”菜单各个命令的功能,如表4-6所示。
表4-6 “Flash”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0059_0001.jpg?sign=1739289538-vT1RoaduPzPBG7Q2oxLr8tjVAh66oPmS-0-535c735230026c98626c9b57e8bad890)
7.“Peripherals”菜单
“Peripherals”菜单提供了ARM处理器各种硬件资源的仿真对话框。这里的所有命令都只在仿真调试环境下才显示并可以使用,且显示的资源内容随用户选择的ARM处理器型号的不同而不同。这里列出一些常用到的“Peripherals”菜单命令的功能,如表4-7所示。
表4-7 “Peripherals”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0059_0002.jpg?sign=1739289538-vp5IIJxVq0e1aRnLWImneU29OtCJ03wB-0-62baf84985c8076eb1efb78af3920535)
8.“Tools”菜单
“Tools”菜单提供了一些第三方软件的支持,例如PC-Lint。用户需要额外安装相应的软件才可以使用。“Tools”菜单一般使用得比较少,这里仅列出各个命令的功能,如表4-8所示。
表4-8 “Tool”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0059_0003.jpg?sign=1739289538-jYJTwgRG6MC0RnXdkQKvEx584PTFPG8Q-0-98b123bfda86f847b56c3b1c73079c1e)
9.“SVSC”菜单
“SVSC”菜单提供了程序的版本控制,该菜单下仅包括“Configure Version Control”一个命令,用于配置软件版本。
另外,“Windows”菜单下提供了对工作区窗口布局的管理,“Help”菜单提供了一些帮助信息,这里不再具体介绍。
4.1.6 RealView MDK的工具栏
RealView MDK的菜单栏虽然提供了丰富全面的操作命令,但是操作比较麻烦。因此,RealView MDK在不同的环境下提供了对应的快捷操作工具栏,供用户实现简便的操作。RealView MDK的工具栏包括一些通用功能的工具栏、用于编译的工具栏、用于仿真调试的工具栏和一些硬件资源仿真工具栏。其中,硬件资源仿真工具栏将在以后的章节中用到的时候进行介绍。下面介绍一些最基本的工具栏。
1.通用功能工具栏
通用功能工具栏提供了一些标准的Windows文件操作,例如打开、保存和新建等。此外,还包括各种源代码文件的操作,例如复制、粘贴、标签操作和断点管理等。RealView MDK的通用功能工具栏如图4-9所示。RealView MDK通用功能工具栏各个工具按钮所对应的功能如表4-9所示。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0060_0001.jpg?sign=1739289538-T9D39sjEWnKnuluidsxysgXZabjJ2W2h-0-ce8333352eff5b5c77caba1504917eca)
图4-9 通用功能工具栏
表4-9 通用工具栏按钮及功能
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0060_0002.jpg?sign=1739289538-n7UDlbFYOxClzcEXeGQR0MnFtjSpZtbq-0-4941298f676a7d0c9d6ed186d08b412e)
2.编译工具栏
编译工具栏用于实现一些项目编译和程序下载的操作。编译工具栏,如图4-10 所示。编译工具栏按钮所对应的功能,如表4-10所示。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0061_0001.jpg?sign=1739289538-ldNamtXrabnTd9tPSIEWBo1FerOTOOSD-0-b0b724651f2638138e2b2d92c3078455)
图4-10 编译工具栏
表4-10 编译工具栏按钮及功能
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0061_0002.jpg?sign=1739289538-3Ig5cuw1f7diV7p9gn0g1v5hzDDdhQdJ-0-b1cecbee51545981d9d6e10586ea5427)
3.仿真调试工具栏
仿真调试工具栏在仿真调试环境下使用,提供了仿真和调试过程中经常使用的命令。仿真调试工具栏如图4-11所示。仿真调试工具栏按钮所对应的功能,如表4-11所示。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0061_0003.jpg?sign=1739289538-EFuDFiFqnGI2RYN3CnN4hFZSqDEsYBkJ-0-c628c483562169d2ec3501078cd6ba06)
图4-11 仿真调试工具栏
表4-11 仿真调试工具栏按钮及功能
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0061_0004.jpg?sign=1739289538-KR2YeW1VNUr8TL1t5UAHRjqilxlpjKxR-0-976c8bd530e00f8855335f41ff18a765)
在这里提到很多个仿真调试环境下的分析窗口,我们将在后面章节中用到的情况下,结合实例进行介绍。
4.1.7 RealView MDK的快捷键
快捷键提供了比工具栏按钮更为快捷的操作,在RealView MDK集成开发环境中不仅提供了常用功能的默认快捷键,同时用户也可以根据自己的需要来自定义快捷键。RealView MDK系统默认的快捷键,如表4-12所示。
表4-12 Keil μVision3系统默认的快捷键
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0062_0002.jpg?sign=1739289538-IHvuKf1ngFSToDROW6D520bhl9luZi2s-0-c7c27ae48c9f9a3034aecbfb435afa42)