第四章--MDK-ARM软件入门-《基于ARM的单片机应用及实践--STM32案例式教学》课件.ppt
-
资源ID:91532295
资源大小:2.85MB
全文页数:52页
- 资源格式: PPT
下载积分:12金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
第四章--MDK-ARM软件入门-《基于ARM的单片机应用及实践--STM32案例式教学》课件.ppt
第四章第四章 MDK-ARM软件入门软件入门4.1MDK-ARM 4.70简介简介Keil公司开发的ARM开发工具MDK,是用来开发基于Cotex-MA、Cotex-R4、ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的Keil C编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,易于学习和使用,同时具有强大的功能,适用于多数要求严苛的嵌入式应用程序开发。图1 MDK开发工具的组件4.1MDK-ARM 4.70简介简介MDKMDK的特点的特点 MDK-ARM软件主要特点如下:完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。ULINKpro可实时分析运行中的应用程序,且能记录Cortex-M指令的每一次执行。为带图形用户接口的嵌入式系统提供了完善的GUI库支持。行业领先的ARM C/C+编译工具链。确定的Keil RTX,小封装实时操作系统(带源码)。TCP/IP网络套件提供多种的协议和各种应用。4.2新建新建MDK工程工程如何新建MDK工程?安装开发环境和调试驱动程序创建一个工程并配置工程编写程序、下载、调试 选择工具栏Project-New Vision Project新建我们的工程文件,我们将新建的工程文件保存在桌面的STM32-TemplateUSER文件夹下(先在电脑桌面上新建一STM32-Template文件夹,在STM32-Template里面新建一个USER文件夹),文件名取为STM32-DEMO,名字可以随便取,点击保存。最终效果如下图所示。创建一个工程并配置工程创建一个工程并配置工程4.2新建新建MDK工程工程4.2新建新建MDK工程工程此时工程新建成功,接下来需要添加文件,具体操作如下所述:在STM32-Template文件夹下,新建四个文件夹,分别为FWlib、CMSIS、Uotput、Listing。原先新建的USER用来存放工程文件和用户代码,包括主函数main.c。FWlib用来存放STM32库里面的inc和src这两个文件,这两个文件包含了芯片上的所有驱动。CMSIS用来存放库为我们自带的启动文件和一些M3系列通用的文件。CMSIS里面存放的文件适合任何M3内核的单片机。Output用来保存软件编译后输出的文件,Listing用来存放一些编译过程中产生的文件。最终效果如下图所示。4.2新建新建MDK工程工程选择芯片型号,我们使用ST公司的STM32F103VET6,则选择对应型号,单击“ok”键。弹出窗口问我们是否需要拷贝STM32的启动代码到工程文件中,这份启动代码在M3系列中都是适用的,一般情况下我们都点击是,但我们这里用的是ST的库,库文件里面也自带了这一份启动代码,所以为了保持库的完整性,我们就不需要开发环境为我们自带的启动代码了,稍后我们自己手动添加,这里我们点击“否”。最终效果如下图所示。4.2新建新建MDK工程工程4.2新建新建MDK工程工程3.5.03.5.0STM32F10 x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10 xstartuparm的全部文件拷贝到STM32-TemplateCMSISstartup(需先在CMSIS新建好startup文件夹)文件夹下。我们把startup_stm32f10 x_hd.s添加到我们的工程中。3.5.03.5.0STM32F10 x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport文件目录中的core_cm3.c和core_cm3.h也拷贝到STM32-TemplateCMSIS文件夹下。3.5.03.5.0STM32F10 x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10 x文件目录中的stm32f10 x.h、system_stm32f10 x.c、system_stm32f10 x.h拷贝到STM32-TemplateCMSIS文件夹下。最终效果如下图所示。4.2新建新建MDK工程工程3.5.03.5.0STM32F10 x_StdPeriph_Lib_V3.5.0ProjectSTM32F10 x_StdPeriph_Template下的 main.c、stm32f10 x_conf.h、stm32f10 x_it.h、stm32f10 x_it.c、system_stm32f10 x.c 拷贝到STM32-TemplateUSER目录下。最终效果如下图所示。4.2新建新建MDK工程工程4.2新建新建MDK工程工程到我们刚刚新建的MDK工程中,将Target改为STM32-DEMO(不改也行)。最终效果如下图所示。4.2新建新建MDK工程工程在STM32-DEMO上右键选中Add Group选项,新建四个组,分别命名为STARTCODE、USER、FWlib、CMSIS。STARTCODE用它来放我们的启动代码的,最终效果如下图。4.2新建新建MDK工程工程4.24.2新建新建MDKMDK工程工程至于有些文件有个锁的图标,是因为这些都是库文件,不需要我们修改,属性为只读。至此,工程基本建好。接下来配置一下MDK的配置选项,单击 按钮,在弹出来的窗口中选中“Output”选项。点击Select Folder for Objects.设置编译,输出文件保存的位置。同时选上 Create HEX File 和 Browse information这两个选项框。最终效果如下图所示。4.2新建新建MDK工程工程同样在Listing这个选项卡中,我们也点击 Select Folder listings定位到模板中的Listing文件夹。选中C/C+选项卡,在Define 里面输入添加USE_STDPERIPH_DRIVER,STM32F10X_HD。最终效果如下图所示。4.2新建新建MDK工程工程但当编译器在我们指定的路径下 搜索不到的话还是会回到标准目录去搜索,就像有些ANSIC C 的库文件,如 stdin.h、stdio.h。库文件路径修改成功之后如下所示:4.2新建新建MDK工程工程4.3RVMDKS使用技巧使用技巧文本美化文本美化文本美化,主要是设置一些关键字、注释、数字等的颜色和字体。前面我们在介绍 RVMDK新建工程的时候看到界面如下图所示。4.3RVMDKS使用技巧使用技巧4.3RVMDKS使用技巧使用技巧在该对话框中我们选择 Colors&Fonts选项卡,在该选项卡内,我们就可以设置自己的代码的子体和颜色了。由于我们使用的是 C语言,故在 Text 下面选择 ARM:Editor C Files在右边就可以看到相应的元素了。最终效果如下图所示。4.3RVMDKS使用技巧使用技巧然后点击各个元素修改为你喜欢的颜色,当然也可以在 Font栏设置你字体的类型,以及字体的大小等。设置成之后,点击 OK,就可以在主界面看到你所修改后的结果,例如我修改后的代码显示效果如下图所示:4.3RVMDKS使用技巧使用技巧TAB键的妙用键的妙用MDK的 TAB键和一般编译器的 TAB键有不同的地方,和 C+的 TAB键差不多。MDK的 TAB键支持块操作。也就是可以让一片代码整体右移固定的几个位,也可以SHIFT+TAB键整体左移固定的几个位。假设我们前面的串口 1中断响应函数如下图所示。4.3RVMDKS使用技巧使用技巧4.3RVMDKS使用技巧使用技巧上图中这样的代码大家肯定不会喜欢,这还只是短短的 30来行代码,如果你的代码有几千行,全部是这个样子,不头大才怪。看到这样的代码我们就可以通过 TAB键的妙用来快速修改为比较规范的代码格式。选中一块然后按 TAB键,你可以看到整块代码都跟着右移了一定距离,如下图示。4.3RVMDKS使用技巧使用技巧4.3RVMDKS使用技巧使用技巧接下来我们就是要多选几次,然后多按几次 TAB键就可以达到迅速使代码规范化的目的,最终效果如下图所示。4.3RVMDKS使用技巧使用技巧快速定位函数快速定位函数/变量被定义的地方变量被定义的地方大家在调试代码或编写代码的时候,一定有想看看某个函数是在那个地方定义的,具体里面的内容是怎么样的,也可能想看看某个变量或数组是在哪个地方定义的等。只要你把光标放到这个函数/变量(xxx)的上面(xxx为你想要查看的函数或变量的名字),然后右键,弹出如下图所示的菜单栏。4.3RVMDKS使用技巧使用技巧4.3RVMDKS使用技巧使用技巧在上图中,我们找到 Go to Definition Of STM32_Clock_Init 这个地方,然后单击左键就可以快速跳到 STM32_Clock_Init函数的定义处(注意要先在 Options for Target的 Output选项卡里面勾选 Browse Information选项,再编译,再定位,否则无法定位!)。如下图所示。4.3RVMDKS使用技巧使用技巧4.3RVMDKS使用技巧使用技巧快速注释与快速消注释快速注释与快速消注释在调试代码的时候,你可能会想注释某一片的代码,来看看执行的情况,MDK提供了这样的快速注释/消注释块代码的功能。也是通过右键实现的。这个操作比较简单,就是先选中你要注释的代码区,然后右键,选择Advanced-Comment Selection就可以了。以 Stm32_Clock_Init函数为例,比如我要注释掉下图中所选中区域的代码,如下图所示。4.3RVMDKS使用技巧使用技巧4.3RVMDKS使用技巧使用技巧我们只要在选中了之后,选择右键,再选择 Advanced-Comment Selection就可以把这段代码注释掉了。执行这个操作以后的结果如下图所示:4.3RVMDKS使用技巧使用技巧4.4RVMDKS调试技巧调试技巧接下来我们用一个实例,来说明如何参考 MDK的例子为自己所用。这里以一个 IO口翻转为例,其实就是 LED的闪烁,看看如何借用 MDK的代码。首先打开 DKEIL3.80AARMExamplesSTSTM32F10 xFWLibExamples目录,可以看到很多例子,如下图所示。4.4RVMDKS调试技巧调试技巧上图中提供的例程IO口翻转的例子在 GPIO目录下的 IOToggle下,我们将这个目录下面的所有文件拷贝到 D:KEIL3.80AARMExamplesSTSTM32F10 xFWLibProject里面,这里会提示下图所示的信息:4.4RVMDKS调试技巧调试技巧我们选择全部就可以了。然后单击 Project.Uv2,打开工程,如下图所示:4.4RVMDKS调试技巧调试技巧然后点击 ,编译一遍。可以看到如下图所示的编译结果:4.4RVMDKS调试技巧调试技巧提示没有错误,没有警告。说明这个工程是可以用的。关于这个工程是如何使用的,在readme.txt里面是有详细说明的,在使用之前最好先看看这个说明。重点看看硬件环境的说明,如下所示:4.4RVMDKS调试技巧调试技巧接下来我们要做的就是一步步跟踪代码,然后针对你的疑问点,打开 Peripherals里面的相关外设,查看寄存器,看看 MDK的示例代码是如何一步步修改里面的寄存器来实现的。对与外设的配置,MDK一般都是调用库函数实现的,无法直接查看,这就需要你对照手册,慢慢摸索了,根据从寄存器看到的结果,大概也就能推出 MDK是如何实现这样的操作了。4.4RVMDKS调试技巧调试技巧小结小结本章详细介绍了STM32最常用的编程软件MDK-ARM的使用过程。通过本章的学习应能独立完成工程的建立、编译、软件仿真和下载。另外,应掌握本章所提及的程序命名规则及编程技巧,使编制的程序更加规范及美观。Thanks!