MDK5软件入门

这里主要记录一下MDK5软件的介绍及使用。

MDK5简介

  • MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为:MDK5.14,该版本使用 uVision5 IDE 集成开发环境,是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具

新建MDK5工程

在完成安装MDK5软件后,打开软件,点击Project->New uVision Project,如图所示:

弹出新建工程界面:

这里选择工程创建的目录位置,编辑工程名,(例如:test)新建文件夹USER,保存在这里。之后会弹出选择器件的对话框,根据STM32型号选择对应的型号就可以了,这里我根据我的STM32F103ZET6型号选择。
特别主要,一定要安装对于的器件pack才会显示这些内容,如果没得选择,先关闭MDK,下载对应的pack安装后再打开创建工程

点击OK后会弹出运行环境选择对话框。

这个是MDK5新增的一个功能,在这里我们可以添加自己需要的组件,从而方便构建开发环境,不需要的话直接点击Cancel即可。
工程初步建立如下:

这里就完成新建一个MDK5的工程了。

新建STM32开发环境

通过上面的操作已经新建了一个框架了。但还不够,还需要添加启动代码,以及.c文件等等。
启动代码是一段和硬件相关的汇编代码,必不可少,主要作用如下:

  1. 堆栈的初始化;
  2. 初始化程序计数器(PC);
  3. 设置向量表异常事件的入口地址;
  4. 调用main函数。
    这里意法半导体(ST)公司提供了3个启动文件给我们,分别对应不同容量的STM32芯片。我们目前使用的基本都是大容量产品,所以选择startup_stm32f10x_hd.s作为我们的启动文件。
    我们找到Target1->Source Group1->双击->设置打开文件类型为Asm Sourcefile->选择startup_stm32f10x_hd.s->点击Add,如图所示:

    现在就可以开始编写自己的代码了,但是现在的目录结构还是有点混乱,也就是工程下乱七八糟什么都有。
    我们需要进行整理一下。
    接下来,我们在 Project 工程目录下面,
  • 新建 3 个文件夹 CORE, OBJ 以及STM32F10x_FWLib。CORE 用来存放核心文件和启动文件,OBJ 是用来存放编译过程文件以及 hex 文件STM32F10x_FWLib 文件夹顾名思义用来存放 ST 官方提供的库函数源码文件。已有的 USER 目录除了用来放工程文件外,还用来存放主函数文件 main.c,以及其他包括 system_stm32f10x.c 等等。
  • 下面我们要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。打开官方固件库包,定位到我们之前准备好的固件库包的目录下面,将目录下面的 src,inc 文件夹 copy 到我们刚才建立的 STM32F10x_FWLib 文件夹下面。src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件。

  • 下面我们要将固件库包里面相关的启动文件复制到我们的工程目录 CORE 之下。打开官方固件库包,将文件 core_cm3.c和 文 件 core_cm3.h 复 制 到 CORE 下 面 去 。
    然 后将 startup_stm32f10x_hd.s 文件复制到 CORE 下面。

  • 将三个文件 stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的 Project目录之下。然后将下面的 4 个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 复制到 Project 目录下面。

  • 前面 8 个步骤,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将这些文件加入我们的工程中去。右键点击 Target1,选择 Manage Components。

  • 下面我们往 Group 里面添加我们需要的文件。我们按照步骤 10 的方法, 右键点击点击 Led,选择选择 Manage Components.然后选择需要添加文件的 Group,这里第一步我们选 择 FWLIB , 然 后 点 击 右 边 的 Add Files, 定 位 到 我 们 刚 才 建 立 的 目 录
    STM32F10x_FWLib/src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close.可以看到 Files 列表下面包含我们添加的文件。这里需要说明一下,对于我们写代码,如果我们只用到了其中的某个外设,我们就可以不用添加没有用到的外设的库文件。这里我们全部添加进来是为了后面方便,不用每次添加,当然这样的坏处是工程太大,编译起来速度慢,用户可以自行选择。

  • 用同样的方法,将 Groups 定位到 CORE 和 USER 下面,添加需要的文件。这里我们的 CORE 下面需要添加的文件为 core_cm3.c,startup_stm32f10x_hd.s ( 注意,默认添加的时候文件类型为.c, 也就是添加 startup_stm32f10x_hd.s 启动文件的时候,你需要选择文件类型为 为 All files 才能看得到这个文件),USER 目录下面需要添加的文件为 main.c,stm32f10x_it.c,system_stm32f10x.c.
    这样我们需要添加的文件已经添加到我们的工程中了,最后点击 OK,回到工程主界面。

最后效果图如下:

  • 接下来我们要编译工程,在编译之前我们首先要选择编译中间文件编译后存放目录。方法是点击魔术棒,然后选择“Output”选项下面的“Select folder for objects…”,然后选择目录为我们上面新建的 OBJ 目录。这里大家注意,如果我们不设置 Output 路径,那么默认的编译中间文件存放目录就是 MDK 自动生成的 Objects 目录和 Listings 目录。


  • 下面我们要告诉 MDK,在哪些路径之下搜索需要的头文件,也就是头文件目录。 这里大家要注意,对于任何一个工程,我们都需要把工程中引用到的所有头文件的路径都包含到进来。回到工程主菜单,点击魔术棒 ,出来一个菜单,然后点击 c/c++选项.然后点击
    Include Paths 右边的按钮。弹出一个添加 path 的对话框,然后我们将图上面的 3 个目录添加进去。记住,keil 只会在一级目录查找,所以如果你的目录下面还有子目录,记得 path一定要定位到最后一级子目录。然后点击 OK.


  • 接下来,我们再来编译工程,可以看到又报了很多同样的错误。为什么呢?这是因为 3.5 版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量。按照步骤 16,定位到 c/c++界面,然后填写
    “STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 输入框里面。这里解释一下,如果你用的是中容量那么 STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD. 然后点击 OK。
  1. 这样一个工程模版建立完毕。下面还需要配置,让编译之后能够生成 hex 文件。同样点击魔术棒,进入配置菜单,选择 Output。然后勾上下三个选项。 其中 Create HEX file 是编译生成 hex 文件,Browser Information 是可以查看变量和函数定义。

建好工程模板,以后再写程序便可直接复制粘贴使用。

MDK5软件入门之——基础工程创建及下载和调试相关推荐

  1. Keil(For STM32) 安装,配置,工程创建,下载,调试

    Update Record Version Date Author Description 1.0.0 2019-07-12 Wintrue Create 1 Install&Configur ...

  2. 韦东山 IMX6ULL和正点原子_「正点原子NANO STM32开发板资料连载」第三章 MDK5 软件入门1...

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板 2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第三章 M ...

  3. C语言入门最基础教学(编译器下载)

    C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. PS: VC++6.0下载  压 ...

  4. 电子工程软件android版,电子工程世界app下载-电子工程世界 安卓版v1.0-PC6安卓网...

    电子工程世界app是一款在全世界IT领域都有一定影响力的软件.电子工程世界网app专为从事计算机工程的朋友推送电子工程动态资讯,通过电子工程世界app可以随时学习! 软件介绍 电子工程世界网是一款非常 ...

  5. 轻松搞定表白女朋友:Android版APP (零基础也可直接下载软件)

    轻松搞定表白女朋友:Android版软件 (零基础也可直接下载软件) 在我们平时生活当中,经常会看到一些表白女朋友的html网页,但是Android端的表白软件可以说是基本没有,笔者在全网搜了一下,就 ...

  6. Installshield6.x基础入门(一)创建工程

    Installshield6.x基础入门(一)创建工程 Installshield 6.x是2000年发布的32位软件,支持操作系统最高为Windows2000. InstallShield 12是2 ...

  7. 三维地形制作软件 World Machine 基础入门学习教程

    <World Machine课程>涵盖了你需要的一切,让你有一个坚实的基础来构建自己的高质量的电影或视频游戏地形. 你会学到什么 为渲染或游戏开发创建高分辨率.高细节的地形. 基于Worl ...

  8. phpstudy mysql创建表_MySQL_Mysql入门基础 数据库创建篇,1.创建数据表---基础(高手跳 - phpStudy...

    Mysql入门基础 数据库创建篇 1.创建数据表---基础(高手跳过) 正统方法:create [TEMPORARY] table 表名 [if not exists] (创建的列项定义) [表的选项 ...

  9. Comsol软件入门基础教学

    COMSOL软件入门 仿真框架建立及软件基本操作 1.初识COMSOL仿真 以多个具体的案例建立COMSOL仿真框架,熟悉软件的使用方法: 2.COMSOL软件基本操作 2.1 参数及变量设置方法 2 ...

  10. 学美工设计需要会哪些软件?零基础怎么入门学UI设计?

    本文由:"学设计上兔课网"原创,图片素材来自网络,仅供学习分享 学美工设计需要会哪些软件?零基础怎么入门学UI设计?阿里巴巴的发展,带动了电子商务的运营,而电子商务的运营离不开淘宝 ...

最新文章

  1. windows创建定时任务执行python脚本
  2. LeetCode 1003. 检查替换后的词是否有效(栈)
  3. 程序员被公司开除,隔阵子领导命令回前公司讲解代码,网友直呼:关我嘛事?
  4. php soap 下载文件,允许下载SOAP API响应(PHP)中的PDF文件get(作为附件)
  5. Linux yum软件仓库配置,linux配置软件仓库 、 yum管理应用软件 、 快速部署Web/FTP...
  6. ESP8266的Arduino IDE下载和TTL下载
  7. 华为数通部门软开9.16凉经
  8. 3DGIS第一章 绪 论
  9. ps怎么更改背景图层大小_如何利用Photoshop软件修改图片尺寸的大小
  10. java.sql.BatchUpdateException: Data truncation: Division by 0
  11. python抓取网页图片示例
  12. Linux 脚本部署应用宝,应用宝新版继续整合资源,腾讯移动分发再加力
  13. python动态监控日志内容
  14. 多重积分的理解以及转动惯量的求解
  15. 美团/饿了么外卖CPS联盟返利公众号小程序核心源码
  16. window浏览器被劫持如何修复,hao123,2345 等
  17. Enable Geolocation in a WebView (Android)
  18. Optimal Design of Energy-Efficient Multi-User MIMO Systems: Is Massive MIMO the Answer?笔记
  19. antd Upload组件使用,出现闪动问题
  20. Mac壁纸软件哪款好用?Wallpaper Wizard可以一试

热门文章

  1. C# BackgroundWorker使用讲解
  2. Win10重装系统后的lockdir解密失败
  3. 游戏服务器高性能设计-游戏设计与开发(3)
  4. 编辑器,在线编辑器,微信编辑器,公众号编辑器,UEditor编辑器
  5. 通信工程学什么计算机知识,通信技术需要学习哪些知识
  6. setup factory 设置默认字段的值
  7. DLL文件反编译(附:工具下载链接)
  8. CI框架(4)-页面跳转
  9. java web 和js区别_jsp和javascript之间有什么区别?
  10. gd32f450 linux,GD32F450开发板初体验