![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=1738872460-Tj1sTsNLYBdEccaGnPwZH0VjcB9Le0Ff-0-59d4712829dbf9aeb0d1b476d576179b)
图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=1738872460-Ilgra5PW2jbBPrnbkWIhXauyI4oUcL6i-0-6a82396de2c2d4db00293d1f37a6dc3e)
图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=1738872460-oOMp40p0Me6MuFStzg11XmGvLr1Vt2bn-0-8aadfe21da090ca1dad1f7855f89d3f2)
图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=1738872460-NZOjrFse9abwT4HJ3kiRGjD5JkHmUZYo-0-28660cad13177db09a31ec76eabf5217)
图4-4 用户信息输入
⑤ 单击“Next”按钮,下面便开始自动安装,如图4-5所示。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0055_0004.jpg?sign=1738872460-wV6NgDq0MAFgPGDoBQMtx3ubwNBsn9Gr-0-702dfdf9acac85f1423a76f94f0ef373)
图4-5 开始安装
⑥ 安装完成后,弹出安装完成对话框,如图4-6所示。这里的几个选项的含义如下。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0055_0005.jpg?sign=1738872460-lugwrqw8pgZsVIAjXcT1zlWuKngQ9zGu-0-30b1800668a90b63f4732f319988e7a7)
图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=1738872460-4WomUyokaUrv7WQemI98RYpUsCN0kAsr-0-3aac893d32bb0c0e2739c67cd278a3b9)
图4-7 欢迎界面
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0056_0001.jpg?sign=1738872460-4F3U82wANHW3ak8fo5QlTLvu9AsHFTvF-0-ac388eac7a9d88012620567159198b18)
图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=1738872460-Zr2u6ay2rFZVOl3rymsiYsN7XHT7Hk8V-0-ba3e35392838b9047b0146e73fbb9724)
2.“Edit”菜单
“Edit”菜单提供了常用的代码编辑操作命令。“Edit”菜单各个命令的功能如表4-2所示。
表4-2 “Edit”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0056_0003.jpg?sign=1738872460-5yFuw9vk0l3qiz6IHNdx96pi3QUqJZmp-0-fb97afa03ffd461a4d837d00db517858)
3.“View”菜单
“View”菜单提供了在源代码编辑和仿真调试过程中,各个窗口和工具栏的显示和隐藏命令。“View”菜单各个命令的功能如表4-3所示。
表4-3 “View”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0057_0002.jpg?sign=1738872460-JVQmjbNZQrqrnPW5WzMbGJKesjIbiAWm-0-64d0bfd7fa77812ed7426432844697bb)
4.“Project”菜单
“Project”菜单提供了ARM项目的创建、设置和编译等命令。“Project”菜单各个命令的功能,如表4-4所示。
表4-4 “Project”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0057_0003.jpg?sign=1738872460-GFVzFGtSBHUaJx4uXobFjAmNgQGXGCnY-0-e5b39d12feba81017047bf811995c1c8)
5.“Debug”菜单
“Debug”菜单中的命令大多用于仿真调试过程中,提供了断点、调试方式及逻辑分析等功能。“Debug”菜单各个命令的功能,如表4-5所示。
表4-5 “Debug”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0058_0002.jpg?sign=1738872460-bMj93Vc4JpI3Z2D8ACJknQzoxiFRnsg1-0-982a5f602c287933e5c450c44a6e5139)
6.“Flash”菜单
“Flash”菜单提供了下载程序、擦除ARM处理器程序存储器等操作。这里的命令需要外部的编程器支持才可以使用。“Flash”菜单各个命令的功能,如表4-6所示。
表4-6 “Flash”菜单
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0059_0001.jpg?sign=1738872460-Az52m5qOUL9IeYVPHS5qFg4WSn4GZlD3-0-3367bb89a84d838914e3020a931abb17)
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=1738872460-8oEYBFTNCBRHfQSLIgk0kWTzJ7OR6NWH-0-1fab286440ab2577c1108f55c470446b)
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=1738872460-X5nhMQF4xuylZ9FTBCopkHjA5sUFNO4r-0-a97da056108110995715a8206906bc60)
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=1738872460-IZkMfdLDJyDDG4iUIeceJt0Q3YzWAstL-0-46ab06e5ae9462734bbf2737afc84901)
图4-9 通用功能工具栏
表4-9 通用工具栏按钮及功能
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0060_0002.jpg?sign=1738872460-ENST7SObhCEkpeWy3dw39SPPUs8xwoqV-0-fe0122f6744e10eaf45145cd6440d1a3)
2.编译工具栏
编译工具栏用于实现一些项目编译和程序下载的操作。编译工具栏,如图4-10 所示。编译工具栏按钮所对应的功能,如表4-10所示。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0061_0001.jpg?sign=1738872460-34tWGkvzyHnBjjbTdQ9E8YW8MsviYYeT-0-460b38411cf598ad2bc5b2f6301b1e95)
图4-10 编译工具栏
表4-10 编译工具栏按钮及功能
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0061_0002.jpg?sign=1738872460-EXxlXs9iLDN7MBPp4Ss14r5gWygI9k5o-0-87008cbcfa1399459c3b5c96ec49c4de)
3.仿真调试工具栏
仿真调试工具栏在仿真调试环境下使用,提供了仿真和调试过程中经常使用的命令。仿真调试工具栏如图4-11所示。仿真调试工具栏按钮所对应的功能,如表4-11所示。
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0061_0003.jpg?sign=1738872460-DTDAqoLQiwHTolvPsrpxOEJrjTlZO2R7-0-0cf0c8418764ce837363dcc4d3c6c75b)
图4-11 仿真调试工具栏
表4-11 仿真调试工具栏按钮及功能
![](https://epubservercos.yuewen.com/7B981F/3590446203795101/epubprivate/OEBPS/Images/figure_0061_0004.jpg?sign=1738872460-PM37yUdLx3rz7bxWN92nODxIaahduytq-0-f3e910fe7f17de033f0e46ac12d3ea4a)
在这里提到很多个仿真调试环境下的分析窗口,我们将在后面章节中用到的情况下,结合实例进行介绍。
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=1738872460-xz2hD4hic2DGAmzrTcM7LEVhSF6bnVaS-0-75945c7393350be2cde8680a47707863)