KEIL工程建立步骤点击Next,勾选安装协议:下一步,选择安装路径(笔者因硬盘空间不足安装在E盘,但若读者硬盘资源充裕,则建议安装在C盘,跑起来快些):下一步,填写用户信息,个人用户随意填入即可:点击Next 就进入实质的安装过程啦,Wait for a Whle……很快安装完毕,看到2 个可选项:1、保持当前uVision 的设置。
2、载入以下选择的工程实例,默认即可。
点击Next,来到最后一个安装界面:1.是否安装ULINK Pro Driver V1.0驱动?2.是否显示软件发布说明?读者可以按照自己的需求勾选。
点击Finish,KEIL MDK就完成安装了,可以发现桌面上生成了名为“Keil uVision4”的可执行文件快捷方式。
双击“Keil uVision4”图标打开Keil uVision4开发环境,此时Keil uVision4会自动载入一个工程项目(依安装的倒数第二步勾选而定),我们就此可以简单地看看KEIL MDK 的用户界面。
如图所示,KEIL MDK的基本用户界面也是很简洁的,也是由一些菜单栏,工具栏,状态栏等区域构成。
当然KEIL MDK的软件界面远远不止这么简单,读者可以在日后漫长的工程师生涯逐一熟悉。
至此,KEIL MDK的安装工作已经完毕了。
接下来我们要开始建立我们的第一个工程。
在开始之前,请读者先从网上获取ST公司提供的STM32固件库“stm32f10x_fw_archive v2.0 (May 2009)”,然后将其解压。
首先请读者在任意一个地方建立一个空文件夹,并将其命名为“STM32_FW”。
然后在STM32_FW 里新建6个文件夹,分别命名为“boot”、“library”、“src”、“obj”、“list”、“library”。
如下图所示:接下来请执行如下操作:1、在刚才解压“stm32f10x_fw_archive v2.0(May2009)”得到的文件夹里按照路径\stm32f10x_fw_archive v2.0 (May 2009)\Archive,找到um0427.rar并将其解压。
2、在第1步解压到的um0427文件夹里按路径“\um0427\FWLib\project\RVMDK”找到文件:“cortexm3_macro.s”和“stm32f10x_vector.s”,并将其复制到前面所新建的“STM32_FW\boot”文件夹中。
此二者为STM32 在MDK 环境下的启动文件,是每一个STM32 工程所必需的。
3、在“\um0427\FWLib\project”中找到文件:“stm32f10x_it”和“stm32f10x_it”,并将其复制到“STM32_FW\interrupt”中。
此二者包含了STM32 在MDK 下的中断服务入口函数。
4、将“\um0427\FWLib\library”中的“inc”文件夹和“src”文件夹复制到“STM32_FW\library”中。
此二文件夹为STM32 的固件函数库文件,一般情况下这两个文件夹里的文件都不推荐改动,可以设置只读属性。
5、最后请新建一个名字为“main.c”文件,放入“STM32_FW\src”中。
执行完以上操作后,应该得到如下结构:STM32_FW\boot:“cortexm3_macro.s”和“stm32f10x_vector.s”文件;STM32_FW\interrupt:“stm32f10x_it”和“stm32f10x_it”文件;STM32_FW\src:“main.c”文件;STM32_FW\library:“inc”文件夹和“src”文件夹;建立“STM32_FW”文件夹的用意在于,它可以作为我们以后进行STM32程序开发时候的一个目录结构。
以后我们新建任何一个工程时,只要直接复制这个文件夹里面的四个文件夹就可以完成一个工程最基本的文件结构的建立了。
这样可以提高我们的开发效率。
下一步,我们来真正着手建立第一个工程。
首先新建一个文件夹,笔者将其命名为“MyFirstJob”。
并将“STM32_FW”中的“boot”、“library”、“src”、“obj”、“list”、“library”文件夹复制到“MyFirstJob”中。
如下图所示:然后执行如下操作:1、打开Keil uVision4,依次点击Project-New uVision Project(如果当前有工程正在打开,请先执行Project-Close Project将其关闭),弹出窗口,填写工程名和保存路径(保存在我们刚才新建的“MyFirstJob”下,命名为MyFirstJob),然后点击保存。
如下图:2、接着第1 步的保存之后,弹出窗口,选择CPU 类型。
此处根据实际情况选取,作者使用的是STMicroelectronics的STM32F103RB 系列。
如图所示,我们可以看到右侧显示了该型号STM32 器件的一些特性,比如72MHz,128K Flash,20K SRAM……资源都是非常丰富的。
如图所示:3、选择好CPU 型号之后点选确定,弹出如下图对话框:此处是询问需不需要给工程添加STM32 的启动代码(Startup Code),记得此处点选No。
4、至此STM32 的工程已经新建完毕,可以看到如下界面:5、接下来是将一系列必要的工程文件添加到当前工程中,执行如下操作:(1)将“Target”重命名为“MyFirstJob”,并删除Source Group1。
在“MyFirstJob”上点击右键,在弹出的菜单中选择Add Group...,依次添加四个Group,分别命名为“boot”、“library”、“src”、“interrupt”。
完成后如下图所示:(2)在boot 上点击右键,在弹出的菜单中选择“Add File to Group ‘boot’... ”,将“MyFirstJob\boot”文件夹中的“cortexm3_macro.s”和“stm32f10x_vector.s”添加进来;(3)依照(2)的方法,给library添加“MyFirstJob\library\src”路径下的“stm32f10x_flash.c”、“stm32f10x_gpio.c”、“stm32f10x_lib.c”、“stm32f10x_rcc.c”四个文件;(4)给src 添加“main.c”;(5)给interrupt 添加“stm32f10x_it.c”;(6)以上操作完毕之后,应该得到如下界面(请在main.c 文件键入一个空main 函数,如图所示):6、右键点击Project 区的“MyFirstJob”,在弹出的菜单中选择“Option forTarget‘MyFirstJob’…”,弹出选项配置界面,如下所示:做如下操作:1)点击Output——Select Folder for Objects...,在弹出的窗口中选择“MyFirstJob\obj”;2)点Listing——Select Folder for Lisitings...,在弹出的窗口中选择“MyFirstJob\list”;3)点击OK退出“Option for Target ’MyFirstJob’”界面。
7、按下F7(“Build”的快捷键),进行编译。
应该看到如下界面:最下面的Build Output 区是编译信息框,可以从中获取编译信息,如代码量,错误和警告信息等,我们可以发现此次编译结果为“0 Error(s),1 Warning(s)”,即“0个错误,1个警告”,而我们可以看到这个警告的解释为:“src\main.c(6): warning: #1-D: last line of file ends without a newline”,这是gcc编译器一个很常见的警告,意思是当前文件(src\main.c)并不是以一个空行结尾,读者只要在“main.c”的最后加上一个空行在编译就可以去掉这个警告了。
8、一个完整的STM32 工程至此就完成建立了。
可以发现“MyFirstJob”文件夹多了几个文件。
可以看到KEIL MDK的工程目录是很简洁的,此处也得益于我们的obj 文件夹和list文件夹存放了编译所生成的大部分文件。
但是此工程仍未可以用于进行STM32 的开发,原因是我们还未对STM32的调试开发工具进行设置,在下一节里将会有具体说使用Keil进行stm32的程序开发本章的上一节向读者介绍了Keil MDK的安装流程与在Keil MDK的μVision4集成开发环境下进行stm32工程的建立方法。
本节我们就来看看如何使用Keil MDK开发工具进行stm32应用程序的开发。
在此之前有必要向大家介绍几个名词,Keil、MDK、μVision4、RealView、RVCT、JLINK还有RVDS,这些名词分别表示什么,有什么从属关系呢?相信很多读者并没有明确的概念,现在简单的说明一下:Keil:这个大家应该最为熟悉,Keil其实是一家公司的名字,而这家Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software组成。
大家很熟悉的keil C51就是从Keil Software手中诞生的。
但是在2005年,Keil公司被ARM 公司收购。
值得一提的是,Keil公司只有区区20多名员工,却仍然做出了伟大的作品。
MDK:MDK全称Microcontroller Develop Kit,意为微控制器开发套件。
ARM收购Keil公司的意图在于进军微控制器(也就是我们常说的单片机)领域,MDK就是这种意图下的产物。
但我们一般仍称之为Keil MDK而不是ARM MDK,Keil MDK作为一个套件,包含了一系列软件模块。
包括Keil公司的IDE 环境”μVision”,ARM公司的编译器RVCT,Flash烧写软件模块等。
μVision4:μVision4是Keil公司的IDE环境”μVision”的第四个版本,从根本上来说μVision4是一个开发环境,并不必须包含编译器、仿真、烧写等模块。
比如AVR单片机的一个开发环境WinAVR(又称GCCAVR)就不包含仿真调试器,也不包含烧写模块。
值得一提的是,家喻户晓的Keil C51正是基于μVision2开发环境,所以μVision4的界面和μVision2非常的相似,很有利于广大习惯于μVision2开发环境的开发人员转向使用μVision4进行stm32的开发。
RealView:是ARM公司编译工具的名称。
其首字母就是下文提到的RVCT中的’R’。