原创 介绍如何使用RVMDK——keil

2011-8-4 15:23 6245 9 9 分类: MCU/ 嵌入式

介绍RVMDK

 开发板拿到手之后,不要浪费时间,第一步就要建立一个学习平台。一个好学习平台很重要,在不同程度上提高了我们的学习效率。此外,养成良好的资料整理能力,让工程构造,文档资料清晰明了。

 

编译软件RealView MDK-ARM 4.12,简称MDKKEIL

 相信大多数读者是从51单片机那接着学过来的,对于KEIL C51的熟悉程序就不用说了。刚接触新的事物,找点熟悉的来增强信心很重要。用IAR的人也不少,两者的区别不大。在这里,我们建议你先熟悉使用MDK.

 

调试软件JLINK V8

拥有一个调试软件来学习,效率会快很多。除了让我们更容易地找出代码的错误之处,还能让我们越来越熟悉STM32的内部寄存器。有ST LINK的同学用ST LINK也行。这里我们选择SEGGER公司JLINK,理由很简单:便宜。

 

接着我们用MDK来构建一个工程,貌似一些新手会觉得麻烦。在后面的程序中,我们将一直沿用这种结构的工程,但不必每次都经历繁琐的建立过程。

在你想要的位置建立以下文件夹: 

  Code(文件夹)

   Libraries(文件夹)

           -CMSIS(文件夹)

           -STM32F10x_StdPeriph_Driver(文件夹)

Obj(文件夹)

  Utilities(文件夹)

    -Common

    -STM3Fire_Bull

Code

用来存放主文件等重要文件

Libraries

CMSIS

直接复制V3.4固件库Libraries,无需修改

STM32F10x_StdPeriph_Driver

Obj

这里存放编译器生成的目标文件

Utilities

Common

 

STM3Fire_Bull

存放移植过来的供火牛使用的文件

 

 

打开MDK, New Vision Project, 选择工程模板文件夹中,输入ProjectCPU的选型

STMicroelectronics>STM32F103VC(按实际芯片类型来选,你不是这个就选别的)

接着会弹出如下对话框:

20110603010144001.jpg

 

启动代码一段和硬相关的汇代码.可少的!码具体如工作的,个我们不必太关 心感兴趣的朋友可以去研究下在弹出的选择是否添加启动代码的窗口,我们选,因为我们在后面会选择使用ST官方提供的启动代码。启动代码是根据芯片类型来决定的,工程里包含了两个启动代码的话,编译会出事。接图:

20110603010144002.jpg

这些都是常用的按钮。

20110603010145003.jpg 快捷键F7。编译按钮,程序写好了,或修改过看有没有错误,就按它。可以这样理解,它只编译修改多的部分,这样每次都重新编译,这样耗时间了。

20110603010145004.jpg下载按钮。程序编译没有错误的话,下载到板上看实验是否成功。

20110603010145005.jpg目标选项。这里我们形象地叫它“魔术棒”吧。每次建立工程都必须设置这一项

20110603010145006.jpg文件配置。这里我们叫它“品字键”,形象好记。

 

设置魔术棒

我们按魔术棒,从左到右的顺序进行设置,没有提到的选项随默认设置即可:

Target选项

20110603010148007.jpg

 

在此栏,我们只需要勾选Use MicroLIB. 即传说中的勾选了迷你库。这是是用printf函数的必要选项。此外它还提供了一些可外部使用的函数,在这里不一一细说。

 

 

 

Output选项

20110603010150008.jpg

 

Output选项,选择上图红色框内按钮,在这里是设置存放编译生成的目标文件的路径。我们在实验文件夹建立Obj文件夹,并把该文件夹设置为目标路径。例,**\实验5串口实验\Obj\

Name of Executable 我们输入 Project

 

Listing选项

点击Listing签,设置链接文件的生成路径,及相关参数。参数不用改,我们同样把Lis生成的文件存放路径设置到Obj。如图:

20110603010152009.jpg

 

C/C++选项

接着是C/C++,这一栏比较重要。

首先,在Define 输入: STM32F10X_HD,USE_STDPERIPH_DRIVER,其原因将会固件库的使用说明那里细说。

20110603010156010.jpg

 

Include Paths设置为如图:

20110603010200011.jpg

 

 

最终设置为下图的路径。

20110603010202012.jpg

 

Debug选项

点击Debug标签,选择使用的仿真器,火牛板默认使用JLINK V8进行仿真调试,对应的,在此选

Cortex-M/R J-LINK/J-Trace。随便提一下,右边的Use Simulator是软件仿真,选择此项将无需下载程序,直接软件仿真,在后面的章节会用到软件仿真,到时会说说一些简单的使用方法。

20110603010204013.jpg

 

点击右侧的Setting配置JLINK  下载参数主要是选择目标处理器的系列添加目标芯片对应的烧

写算法。在此步我们先不用进去设置。

 

Utilities选项

点击Utilities,进行公共参数设置。首先选择Cortex-M/R J-LINK/J-Trace。然后按Settings>Add ,根据芯片类型来添加,火牛板上的STM32F103VCT6 Flash 256K, 选中后按Add——>OK——>OK.

到这里,魔术棒 的设置已经基本完成。

20110603010206014.jpg

 

 

 

设置文件配置

我们在设计软件时,随着功能越来越复杂,工程内的文件也会越来越多,尤其是当我们使用标准的 STM32F10x_StdPeriph_Lib_V3.3.0库进行代码设计时,一个工程内就会包含很多的库文件,各种外 设和资源接口的文件,初始化代码,以及具体的应用程序。为了方便我们阅读和查找文件,对文件进行管理就非常的必要。下面我们就简单介绍一下MDK软件文件管理方面的功能。

在文件栏右侧,右键点击Target 1,选择Manage Components,进入分类文件管理设置。也可以按“品字件”进入设置。

20110603010209015.jpg

在中间组添加文件目录,在右侧添加具体文件。

按上图建立目录,按下图列表添加文件。

在完成以上操作以后,一个MDK工程就设置完成了,只需要依据实际应用要求编写相关的代码即可。

下面是火牛板提供的实验例程的文件分类管理后的效果图。大家可以参考实验例程进行文件分类管理。

20110603010209016.jpg

到目前为止,我们就完成了一个实验工程模板的建立,建立一个工程繁琐而且费时间,有了一个模板,在后面做实验的时候不必每次都重复建工程的步骤,以我们的模板为例,我们只需要把Code里面的文件换成我们需要的代码即可。

 

2.3.   代码的编译

前面,我们介绍了MDK工程的建立,以及如何在MDK中进行文件管理,接下来,我们介绍在MDK 中如何对代码进行编译和调试。我们以火牛板的入门第一个例子——流水灯实验为例,说明具体 的代码编译和调试操作。 首先打开神舟III号光盘\源码\STM32F10x_StdPeriph_Lib_V3.3.0\STM32F10x_StdPeriph_Lib_V3.3.0\ Project\01.LED流水灯(神舟III号)\MDK-ARM目录下的工程文件Project.uvproj,如下图所示。

 

依据实际需求,选择点击下图中的三个按键,编译链接程序。

如果只是确认当前文件是否存在问题,可以选择 Compile 按键,只编译当前文件

如果只是确认最近的修改是否存在问题,可以选择 Build 按键,只编译修改过的文件并链接。这个很常用。

如果需要编译整个工程文件,请选择 Build All 按键,将重新编译链接整个工程文件。一般少用。

 

随着工程的越来越复杂,编译整个工程文件需要耗费较长时间,在开发调试过程中,我们可以

Compile    Build   按键 节约 调试 我们选 

 

2.6.  RVMDK使用技巧

前面介绍了 RVMDK 的基本使用,接下来简单的介绍一下 RVMDK 的几个使用技巧。

2.3.1.    快速定位函数/变量被定义的地方

你在调试代码或编写代码的时候,一定有想看看某个函数是在那个地方定义的,具体里面的内容是 怎么样的,也可能想看看某个变量或数组是在哪个地方定义的等。尤其在调试代码或者看别人代码的时候,如果编译器没有快速定位的功能的时候,你只能慢慢的自己找,代码量比较少还好,如果 代码量一大,那就郁闷了,有时候要花很久的时间来找这个函数到底在哪里。幸好 MDK 提供了这 样的快速定位的功能。只要你把光标放到这个函数/变量的上面,然后右键,选择Go To Definition of XXX’。 (XXX 是你要定位的函数或变量的名字)。 其对应的快捷键是F12

 

上面是演示的是一个变量的定义的查找,对于函数,我们也可以按这样的操作快速来定位函数被定

义的地方,大大缩短了你查找代码的时间。其快捷键也是F12。快速定位函数/变量,是我们最常用也最必须要用的技巧。

 

2.3.2.  快速注释与快速消注释

接下来,我们介绍一下快速注释与快速消注释的方法。在调试代码的时候,你可能会想注释某一片 的代码,来看看执行的情况,MDK 提供了这样的快速注释/消注释块代码的功能。也是通过右键实 现的。这个操作比较简单,首先选中你要注释的代码区,然后右键,选择 Advanced->Comment Selection 就可以了。

比如我要注释掉下图中所选中区域的代码,如下图所示:

20110603010211017.jpg

我们只要在选中了之后,选择右键,再选择 Advanced->Comment Selection 就可以把这段代码注释掉了。执行这个操作以后的结果如下图所示:

 

20110603010214018.jpg

 

 

这样就快速的注释掉了一片代码,而在某些时候,我们又希望这段注释的代码能快速的取消注释,

MDK  也提供了这个功能。与注释类似,先选中被注释掉的地方,然后通过右键->Advanced,不过 这里选择的是 Uncomment Selection

 

2.3.3.  快速打开头文件

将光标放到要打开的引用头文件上,然后右键选择 Open DocumentXXX,就可以快速打开这个文 件了(XXX 是你要打开的头文件名字)。

关于MDK软件的使用,还有字体大小颜色设置,查找搜索,快速前进与后退等。这些都是简单的使用,可自行摸索。如需更深入和全面的了解请用户查看KEIL软件用户使用手册。


文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /2 下一条