TM4C123-EVM开发板用户手册V1.0(MDK5部分)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TM4C123−EVM开发板用户手册
V1.0
兰博嵌入式电子科技
2015年5月28日
修订说明
版本日期说明V1.0 2015.05.28 初稿
3MDK5快速入门
本章主要介绍四个部分内容,分别为MDK5集成开发环境简介、Stellaris ICDI驱动的安装、外设驱动库(TivaWare)的安装、创建工程项目与程序调试。
并以TM4C123-EVM开发板为例,介绍该集成开发环境下创建工程及调试工程的一些基本操作,使用户可以快速使用其开发项目。
MDK5简介
MDK5是KEIL公司的新一代ARM集成开发环境,与上一代产品MDK4、MDK3相比,其结构有重大变化,且有许多新的特性。
目前,MDK5的最新版本为MDK5.14,该版本使用Keil μVision5集成开发环境,是目前针对ARM处理器,尤其是Cortex M内核的MCU的最佳开发工具。
MDK5由两部分组成,分别是MDK Core和Software Packs。
其中,MDK Core由四个部分组成,如图 3-1所示,它们分别是μVision® IDE with Editor(编辑器)、ARM C/C++ Compiler (编译器)、Pack Installer(包安装器)与μVision® Debugger with Trace(调试跟踪器)。
μVision IDE从MDK4.7版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往的IDE改进了许多。
图3-1 MDK Core组成
Software Packs(包安装器)包含三个部分,如图 3-2所示,它们分别是Device(芯片支持)、CMSIS(ARM Cortex Microcontroller Software Interface Standard,ARM Cortex TM微控制器软件接口标准)和MDK Professional Middleware(MDK专业中间件)。
通过包安装器,我们可以安装最新的组件,从而支持新的器件、提供新的设备驱动库与最新的例程等,加速产品开发进度。
其中,CMSIS是ARM公司为了让各家芯片公司生产的Cortex-M4芯片能够在软件上基本兼容,与芯片生产商共同提出的一套软件接口标准。
图3-2 Software Packs组成
同以往的MDK版本不同,以往的MDK把所有的组件都包含在一个安装包里面,显得十分“笨重”,MDK5则不一样,MDK Core是一个独立的安装包,它并不包含期间支持、设备驱动、CMSIS等组件,大小才300MB左右,相对于500多MB的MDK4.70A,瘦身很明显。
而器件支持、设备驱动与CMSIS组件则可根据需要点击MDK5软件界面上“Pack Installer”进行安装。
为了兼容MDK3、MDK4等低版本的工程文件,MDK5提供了“MDKCM514.exe”或更新版本的安装包,用户可基本不加修改的使用低版本的工程文件,这大大方便了用户项目开发和维护。
有关MDK5的详细说明,请参看MDK5的“μVision Help”文件。
MDK5.14可从光盘或Keil网站获取,其安装方法请参考“MDK5.14安装指南”。
3.2 安装Stellaris ICDI驱动
MDK5已集成了 Stellaris ICDI的驱动,当您将ICDI与电脑相连时,系统会自动识别该硬件。
如果系统无法完成自动识别,您可以参考下面安装过程进行手动安装即可。
首先,我们将驱动文件“Stellaris_FTDI-2_06_00.zip”解压到“D:\ Stellaris_FTDI-2_06_00”目录下(如有新的驱动文件,请作相应修改即可)。
然后,将Stellaris ICDI的USB连接线插入电脑,这时电脑找到新的硬件,如图 3-3所示。
这里我们选择从指定的位置安装驱动。
图 3-3 硬件向导
单击“下一步”按钮,找到Stellaris ICDI的驱动文件目录,如图 3-4所示。
图 3-4 驱动程序文件夹
点击“确定”按钮,然后出现图 3-5,系统已找到新硬件“Stellaris ICDI Board A”,并完成驱动安装。
图 3-5 找到Stellaris ICDI Board A
单击“完成”按钮后,系统在指定的目录下自动安装“Stellaris ICDI Board B”的硬件驱动,出现图 3-6所示界面。
图 3-6 找到USB Serial Port
同样,我们选择从指定位置安装驱,路经同上。
单击确定按钮后,出现图 3-7。
这样,我们就完成了Stellaris ICDI的驱动安装。
图 3-7 找到Stellaris ICDI COM Port
3.3外设驱动库(TivaWare)
Texas Instruments® TivaWare™是针对TivaC系列微处理器的一套软件开发包。
该软件实质上是一个程序库,可以将微处理器所执行的常用基础操作指令模块化、函数化,免去了开发过程中可能出现的冗长代码和繁琐的工作,减少出错的几率,从而加快开发进程。
针对TM4C123x与TM4C129x两大系列Cortex M4 MCU,所提供的外设驱动库软件分别是TivaWare_C_Series-1.0版(针对TM4C123x系列MCU)和TivaWare_C_Series-2.0.1.11577版(针对TM4C129x系列MCU)。
这两个驱动库没有本质区别,只是外设资源多少不同。
建议用户在开发TM4C123x系列MCU时采用TivaWare_C_Series-1.0版或更新版本,而在开发M4C129x系列MCU时采用TivaWare_C_Series-2.0.1.11577版或更新版本。
目前,TivaWare的最新版本分别为TivaWare_C_Series-1.0版(针对TM4C123x系列MCU)与TivaWare_C_Series-2.0.1.11577版(针对TM4C129x系列MCU),它们的安装源文件分别为“SW-EK-TM4C123GXL-1.0.exe”和“SW-DK-TM4C129X-2.0.1.11577.exe”。
双击该安装文件,出现相关界面,我们修改安装路径将其安装在“D:\”盘根目录下即可。
安装过程比较简单,这里不再详述。
3.4创建工程项目与程序调试
完成了前三节的软件安装之后,我们就可以进行创建工程项目与程序调试了。
首先,我们来看一看如何创建一个工程。
3.4.1创建一个工程
双击桌面的Keil uVision5快捷方式,打开Keil MDK5的开发环境,如图 3-8所示。
这里默认已安装好必要的Software Packs(软件开发包)。
图3-8 Keil MDK5初始界面
单击菜单“Project”,从中的选择“New μVision Project…”命令,弹出图3-15“Create New Project”界面。
这时要设定该工程的路径和名称,习惯上,我们将存储工程的文件夹名称与工程项目的名称设为同一名字,这里设为“blinky”。
该工程采用设置寄存器的MCU常用编程方式来完成LED灯闪烁任务,该方法的特点是每个外设都是通过寄存器进行直接设置,代码效率高,但程序可读性不高,开发效率较低。
针对Cortex-M4,TI提供了专门外设驱动库TivaWare,用户利用该驱动库会很方便进行工程设计,加速项目开发。
下一章,我们会专门介绍TivaWare 的使用方法。
另外,在“Project”菜单下,还有一个“New Multi-Project Workspace…”命令,该命令是用来创建一个新的多工程的工作空间。
当一个项目中有多个工程文件时,这种方法利于管理。
图 3-9 创建新工程项目的命令
单击“保存(S)”按钮,出现选择该工程所用器件的界面,如图 3-11所示。
图 3-11 选择该工程所用的器件
我们用的处理器是TI公司的TM4C123BHPM,在左侧选择栏中找到TI公司下的Tiva C Series中TM4C123BHPM,然后单击“OK”按钮,这时出现询问是否需要进行运行环境管理的界面,如图 3-12所示。
我们不做任何改变,直接点击“OK”按钮即可。
这时出现创建好的空工程文件,如图 3-13所示。
图 3-12 运行环境管理
图 3-13 新建工程界面
在上图中,习惯上我们将左侧“Project”中的“Target 1”重新命名为“blinky”与工程同名。
为了便于文件管理和增强工程的可读性,我们对“blinky”下的文件组别进行重新分类。
用鼠标右键单击“blinky”,如图 3-14所示。
图 3-14 工程文件组别管理命令
这里有两种文件组别管理方式,分别是“Add Group…”和“Manage Project Items…”。
这里我们以第二种方式为例进行说明。
单击“Manage Project Items…”命令,弹出如图 3-15所示的交互界面。
首先,将“Source Group 1”重命名为“Source”,该组用于存放工程源文件,包括C语言程序(*.c/*.cpp)、汇编语言程序(*.asm)与工程配置文件(*.s)等。
然后,单击图中圆圈处的插入新组的命令,然后将其命令为“Documentation”,该组用于存放工程说明文件。
修改之后如图 3-16所示。
图 3-15 工程文件组别管理界面
图 3-16 工程文件管理——增加组别
在图 3-17图 3-16中,单击“Add Files…”命令按钮,给“Source”组添加“blinky.c”和“startup_rvmdk.S”文件,为“Documentation”组添加“readme.txt”文件。
添加之后,如图 3-17所示。
图 3-17工程文件管理——添加文件
在编辑好工程项目所需的文件之后,需要对工程进行编译、链接生成目标代码,然后进行硬件调试或模拟仿真。
在此之前,还需要对工程进行配置。
单击菜单栏中“Project”,从中选择“Options for Target ‘blinky’…”命令或单击快捷命令按钮,这时弹出如图 3-18所示。
一般情况下,只需要对其中的“Output”、“User”、“C/C++”、“Debug”与“Utilities”选项卡
进行相关设置,其余保留默认设置即可。
下面分别进行介绍。
图 3-18 工程编译、链接参数设置
单击“Output”选项,出现图 3-19设置界面。
这是用来设置输出文件的格式,一般情况我们只需按默认设置即可。
根据需要,我们也可以选择“Create Libray”选项让工程项目生成库文件。
图 3-19 输出格式设置
单击“User”选项,出现图 3-20用户命令设置界面。
在脱离集成开发环境进行程序下载时,一般需要二进制格式的文件。
这时,我们可以利用“fromelf”命令将链接之后生成的“*.axf”文件转换成二进制格式文件(*.bin),具体的命令为
“fromelf --bin --output .\rvmdk\blinky.bin .\rvmdk\blinky.axf”,如下图所示。
有关fromelf 命令的具体参数和使用方法,大家可以在命令行状态下输入“fromelf –help”来获得详细帮助信息,这里不再赘述。
图 3-20 用户命令设置
单击“C/C++”选项,出现C/C++编译、链接环境设置,如图 3-21所示。
这里需要指明所用的处理器型号和相关搜索路径等。
有的时候,我们还需要勾选“C99”模式,和设置优化等级等。
图 3-21 C/C++编译、链接环境设置
在图 3-22所示的“Debug”选项卡中,需要设定所用的仿真器,我们这里用的是 Stellaris ICDI。
然后,单击“Settings”按钮,弹出图 3-23设置对话框。
为了使程序下载稳定可靠,这里将时钟频率设置为500kHz,其它为默认配置即可。
图 3-22 Debug参数设置
图 3-23 仿真器参数配置
对“Utilities”选项卡,我们做相仿的设置即可。
在完成上述这些设置之后,单击“Project”菜单,选择其中的“Build Target”命令进行编译、链接。
修改出现的错误,直至链接成功。
图 3-24 工程编译、链接
需要补充说明的是,我们这里选用的器件头文件是“tm4c123gh6pm.h”,而不是开发板所用的芯片型号对应的“tm4c123bh6pm.h”,这是没有关系的,因为这两款芯片除了前者带有USB功能模块外,其它功能模块都是一样的,芯片引脚和寄存器设置均是兼容的。
3.4.2程序调试
在编译、链接成功之后,可以将目标文件下载到处理器片内Flash里,进入程序调试。
在程序下载之前,我们需要将Stellaris ICDI仿真器连接到TM4C123-EVM开发板,并且给开发板加电。
注意:Stellaris ICDI的JTAG接口不支持热插拔,所以必须在断电状态下将仿真器连接开发板。
单击菜单栏中的“Flash”,从中选择“Download”命令,或点击快捷命令“”,即可将链接好的目标代码下载到芯片,程序下载成功后,在“Build Output”窗口中输出结果如图3-29所示。
图 3‐25 下载成功后的输出信息
单击菜单栏中的“Debug”,从中选择“Start/Stop Debug Session”命令,或单击快捷命令
菜单中的“”命令,这时出现如图 3-26所示的程序调试界面。
在程序窗口,我们发现该程序的风格和已往MCU的编程风格是一样的,均是基于底层寄存器操作的。
由于代码比较简单,这里就不作解释。
图 3-26 程序调试
将光标移动到程序的第73行,单击菜单中的“Debug”,从中选择“Insert/Remove Breakpoint”命令或单击程序所在行号在左侧灰色框处,即可在此设置断点。
同样的方法,我们在程序的第78、85、90行均设置断点。
单击菜单中的“Debug”,从中选择“Run”命令,或单击快捷命令菜单中“”,这时程序运行并停在第73行。
再次点击“Run”命令,我们发现用户指示灯“D4、D5”已点亮,程序停在第78行。
采用同样的方法,我们可以查看程序的运行过程中的其它结果。
断点调试窗口如图 3-27所示。
如果要退出调试窗口,只需在此单击菜单中的“Debug”,从中选择“Start/Stop Debug Session”命令即可或快捷命令菜单中的“”。
关于调试中的单步执行、单步跳过、查看寄存器、变量与存储器的值等命令及其使用方
法,读者可可参考Keil MDK的帮助文件或相关参考书籍,这里不再赘述。
TM4C123−EVM 开发板用户手册V1.0
55
图 3-27 程序断点调试
通过底层寄存器操作进行程序设计,这种方法可实现对MCU 各种功能的完全控制,但需要熟记各个寄存器的含义以及各位的功能,这是非常困难的事;而且这种方法设计的程序也不便程序升级、修改。
为了免去了寄存器程序开发过程中可能出现的冗长代码和繁琐的工作,减少出错的几率,加快开发进程,Texas Instruments ® 公司针对TivaC 系列微处理器开发了一套软件开发包TivaWare ,可以将微处理器所执行的常用基础操作指令模块化、函数化。
下一章我们简要介绍TivaWare ,并给出如何采用TivaWare 进行程序设计。