Keil MDK5使用

KEIL工程目标选项配置(魔术棒)

一、文件说明

MDK的编译过程及文件类型全解
Keil MDK本质上实现交叉编译链的功能,只是界面上采用eclipse IDE,从这个角度理解,MDK工程文件类型可以分为两类,工程本身的文件和源码编译文件。
(1)工程本身文件
工程文件主要包括.uvprojx、.uvoptx、.uvguix及.crf、.dep等。

uvprojx文件
uvprojx文件就是我们平时双击打开的工程文件,它记录了整个工程的结构,如芯片类型、工程包含了哪些源文件等内容;

uvoptx文件
uvoptx文件记录了工程的配置选项,如下载器的类型、变量跟踪配置、断点位置以及当前已打开的文件等等;

uvguix文件 uvguix文件记录了MDK软件的GUI布局,如代码编辑区窗口的大小、编译输出提示窗口的位置等等。

uvprojx、uvoptx及uvguix都是使用XML格式记录的文件,若使用记事本打开可以看到XML代码。而当使用MDK软件打开时,它根据这些文件的XML记录加载工程的各种参数,使得我们每次重新打开工程时,都能恢复上一次的工作环境。这些工程参数都是当MDK正常退出时才会被写入保存,所以若MDK错误退出时(如使用Windows的任务管理器强制关闭),工程配置参数的最新更改是不会被记录的,重新打开工程时要再次配置。根据这几个文件的记录类型,可以知道uvprojx文件是最重要的,删掉它我们就无法再正常打开工程了,而uvoptx及uvguix文件并不是必须的,可以删除,重新使用MDK打开uvprojx工程文件后,会以默认参数重新创建uvoptx及uvguix文件。(所以当使用Git/SVN等代码管理的时候,往往只保留uvprojx文件)。

.crf交叉引用文件
.crf是交叉引用文件(Cross-Reference file),它主要包含了浏览信息(browse
information),即源代码中的宏定义、变量及函数的定义和声明的位置。我们在代码编辑器中点击“Go To Definition Of
‘xxxx’”可实现浏览跳转,跳转的时候,MDK就是通过.crf文件查找出跳转位置的。

.dep和.d依赖文件 .dep和.d文件(Dependency
file)记录的是工程或其它文件的依赖,主要记录了引用的头文件路径,其中.dep是整个工程的依赖,它以工程名命名,而.d是单个源文件的依赖,它们以对应的源文件名命名。这两个文件类似于makefile文件。这些记录使用文本格式存储,我们可直接使用记事本打开。

//IAR
.eww           // Workspace file
.ewp           // IAR Embedded Workbench project
.ewd           // Project settings for C-SPY
.ewt           // Project settings for C-STAT and C-RUN</td>
.dep           // Dependency information

(2)源码编译文件
源码编译文件主要有.s .c .h .inc .o .axf .elf .lib .bin .hex等。如下是整个嵌入式程序编译过程:

过程如下:

  1. 编译,MDK软件使用的编译器是armcc和armasm,它们根据每个c/c++和汇编源文件编译成对应的以“.o”为后缀名的对象文件(Object Code,也称目标文件),其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;
  2. 链接,链接器armlink把各个.o文件及库文件链接成一个映像文件“.axf”或“.elf”;
    格式转换,一般来说Windows或Linux系统使用链接器直接生成可执行映像文件elf后,内核根据该文件的信息加载后,就可以运行程序了,但在单片机平台上,需要把该文件的内容加载到芯片上,所以还需要对链接器生成的elf映像文件利用格式转换器fromelf转成“.bin”或“.hex”文件,交给下载器下载到芯片的FLASH或ROM中。

.o、.elf、.axf、.lib .bin及.hex目标文件这些文件都存储了编译器根据源代码生成的机器码,根据应用场合的不同,它们又有所区别。它们都是属于目标文件,都是使用ELF格式来存储的,关于ELF格式的详细内容请参考配套资料里的《ELF文件格式》文档了解,它讲解的是Linux下的ELF格式,与MDK使用的格式有小区别,但大致相同。在本教程中,仅讲解ELF文件的核心概念。

文件类型说明:

ELF是Executable and Linking Format的缩写,译为可执行链接格式,该格式用于记录目标文件的内容。在Linux及Windows系统下都有使用该格式的文件(或类似格式)用于记录应用程序的内容,告诉操作系统如何链接、加载及执行该应用程序。

目标文件主要有如下三种类型:

可重定位的文件(Relocatable File),包含基础代码和数据,但它的代码及数据都没有指定绝对地址,因此它适合于与其他目标文件链接来创建可执行文件或者共享目标文件。 这种文件一般由编译器根据源代码生成。例如MDK的armcc和armasm生成的.o文件就是这一类,另外还有Linux的.o文件,Windows的 .obj文件。

可执行文件(Executable File) ,它包含适合于执行的程序,它内部组织的代码数据都有固定的地址(或相对于基地址的偏移),系统可根据这些地址信息把程序加载到内存执行。这种文件一般由链接器根据可重定位文件链接而成,它主要是组织各个可重定位文件,给它们的代码及数据一一打上地址标号,固定其在程序内部的位置,链接后,程序内部各种代码及数据段不可再重定位(即不能再参与链接器的链接)。例如MDK的armlink生成的.elf及.axf文件,(使用gcc编译工具可生成.elf文件,用armlink生成的是.axf文件,.axf文件在.elf之外,增加了调试使用的信息,其余区别不大,后面我们仅讲解.axf文件),另外还有Linux的/bin/bash文件,Windows的.exe文件。

共享目标文件(Shared Object File)。得到生成的.lib文件后,可把它像C文件一样添加到其它工程中,并在该工程调用lib提供的函数接口,除了不能看到.lib文件的源码,在应用方面它跟C源文件没有区别。MDK生成的*.lib文件就属于共享目标文件,它可以继续参与链接,加入到可执行文件之中。另外,Linux的.so,如/lib/ glibc-2.5.so,Windows的DLL都属于这一类。

二、安装pack
1、keil官网下载pack包,点击工具栏的“Pack Installer”,File->import添加
2、直接更新

三、使用技巧

1、查看文件中的所有函数

左侧工程目录,有个functions选项卡,右键去掉“scan project files”,保留“scan current editor files",显示打开文件中的所有函数。

2、修改keil mdk5工程名

(1)修改工程名
点击mdk5工具栏三个方块图标,Manage Project Items,直接修改工程名字。
(2)生成hex文件
默认在rtthread工程根目录生成rtthread.bin文件。若要在build目录生成hex文件:
点击魔法棒->output选项卡->勾选Create Hex File->填写name of excutable

3、keil 快捷键

F7				编译
F8				下载
F12				跳转到定义
ctrl + -		上个位置		//改成:alt + <-
ctrl+shift+-	下个位置		//改成:alt + ->
ctrl + <-       注释			//edit:Advanced:comment selection
ctrl + ->       反注释			//edit:Advanced:uncomment selection

自定义:

4、error解决

解决:Project.uvproj 扩展名后面加一个x,也就是变为Project.uvprojx,然后再打开就可以了。
原因:高版本去打开低版本工程,芯片数据库不支持,所以加了X后,可以用最新的MDK SOFTware packs去重新设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/256149.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

keil:官网下载安装MDK5的软件包

以LWIP为例&#xff0c;介绍在ide内部安装软件包和在ARM KEIL官网下载安装MDK5的软件包(MDK5 Software Packs)的方法 文章目录 以LWIP为例&#xff0c;介绍在ide内部安装软件包和在ARM KEIL官网下载安装MDK5的软件包(MDK5 Software Packs)的方法1. 系统环境2. MDK5软件包简介3.…

Keil MDK5安装详细步骤

一、Keil MDK介绍 Keil是德国知名软件公司Keil&#xff08;现已并入ARM 公司&#xff09;开发的微控制器软件开发平台&#xff0c;是目前ARM内核单片机开发的主流工具。 Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案&#xff…

MDK5软件安装

MDK5软件安装 &#xff08;安装包已上传在资源里&#xff0c;自行下载即可&#xff09; Keil MDK&#xff0c;也称MDK-ARM、Realview MDK、I-MDK、uVision4 等。Keil MDK是由三家国内代理商提供技术支持和相关服务。 MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设…

MDK5新建工程详细教程-基于固件库

大家好&#xff0c;因为自身对STM32接触的较多&#xff0c;今天向大家介绍一下如何在MDK5上新建工程。 给小伙伴们推荐几个网址&#xff0c;对学习STM32很有帮助。 正点原子官方论坛&#xff1b;STM32中文论坛&#xff1b;MDK官方&#xff1b;正点原子B站教程 接下来给大家总结…

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

MDK5软件入门 这里主要记录一下MDK5软件的介绍及使用。 MDK5简介 MDK 源自德国的 KEIL 公司&#xff0c;是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为&#xff1a;MDK5.14&#xff0c;该版本使用 uVision5 IDE 集成开发环境&…

MDK5软件入门

文章目录 一、MDK简介二、建立STM32工程模板 一、MDK简介 MDK 源自德国的 KEIL 公司&#xff0c;是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为&#xff1a;MDK5.14&#xff0c;该版本使用 uVision5 IDE 集成开发环境&#xff0c;是…

改进YOLOv5,利用HRNet高分辨率特征金字塔的全新物体检测突破

目录 一、介绍1、物体检测的背景与重要性2、HRNet和YOLOv5的概述&#xff08;1&#xff09;HRNet的概述&#xff08;2&#xff09;YOLOv5的概述 二、HRNet的架构1、HRNet的基本单元2、HRNet的高分辨率特征金字塔3、HRNet的体系结构4、HRNet的特点5、HRNet的局限性 三、YOLOv5的…

Java学习路线(19)——IO流(下)

一、缓冲流 1、概念&#xff1a; 一种自带缓冲区的字节流、可提高原始字节流、字符流读写数据的性能。 2、缓冲流高性能原理&#xff1a; 磁盘与内存之间有一块存储区域&#xff0c;当磁盘向内存传输数据时&#xff0c;先传输到缓冲区&#xff0c;当缓冲区满了之后&#xff0…

c语言仿宋gb2312字体,仿宋gb2312字体官方下载|仿宋gb2312字体下载官方版 - 维维软件园...

仿宋gb2312字体你要找它吗&#xff0c;最近很多小伙伴在重装系统后发现win7提示没有这款仿宋gb2312字体也没有楷体_GB2312字体了&#xff0c;另外有些PDF可能会提示缺这个仿宋gb2312字体&#xff0c;因此运行软件或打开网页显示的字体非常奇怪&#xff0c;其实这是因为你在安装…

html设置字体仿宋GB2312,Word怎么设置仿宋体显示为仿宋GB2312字体?

做好的Word文档在系统升级后&#xff0c;或更换电脑后&#xff0c;原来设置的字体突然都变了&#xff0c;排版效果全乱&#xff0c;找不出问题在哪&#xff0c;挨个修改&#xff0c;不甚其烦。在经历过这磨难后&#xff0c;我决定刨根问底。才发现原来是XP系统和win7之间字体不…

工程图字体宋体仿宋_设计干货来了!最热门的宋体字要如何设计搭配?

字体设计搭配是一位优秀设计师必须掌握的学问,宋体字作为汉字最常见的一种字形,如何将宋体运用搭配好呢?一流设计网来为您逐一分析。 虽然说宋体字叫做宋体字,但是如果要追溯宋体字的起源,我们还得从唐朝说起。 唐朝时期,佛教在中国开始盛行开来,唐朝皇帝甚至派出唐僧师…

c语言仿宋gb2312字体,gb2312字体下载|仿宋gb2312字体 v2.0 官方版-520下载站

仿宋gb2312字体是一款非常多用户在使用的官方印刷字体&#xff0c;仿宋GB2312字体安装方便&#xff0c;具有工整、笔画均匀的特点&#xff0c;欢迎有需要的用户来本站下载使用。 仿宋gb2312字体基本简介&#xff1a; 仿宋_GB2312字体是印刷字体的一种 &#xff0c;仿照宋版书上…

c语言仿宋gb2312字体,【仿宋gb2312字体下载】仿宋gb2312字体官方下载 免费版-七喜软件园...

仿宋gb2312字体是Windows系统中很常见使用的一款经典字体&#xff0c;GB2312字体是印刷字体中的一种字体&#xff0c;仿宋gb2312字体就是一种大众常用印刷字体&#xff0c;该字体是模仿宋版书上所刻的字体而形成的一种新型字体&#xff0c;该字体笔画粗细均匀&#xff0c;有长、…

鱼骨图工具

鱼骨图是一个不错的工具&#xff0c;但是真正用好的不多&#xff0c;其实鱼骨图也是一种树状结构&#xff0c;跟功能树类似。 树状结构有一个不好的情况是不能反应影响因子的交集。但是对于大部分情况来说&#xff0c;设计产品也好&#xff0c;工艺分析也好&#xff0c;故障分析…

鱼骨图技能详解+13张精选模板,让你3分钟快速掌握鱼骨图分析法!

鱼骨图看似很简单&#xff0c;其实有很多操作要点&#xff0c;它是一个非定量的工具&#xff0c;可以帮助我们找出引起问题的根本原因&#xff0c;使我们问自己&#xff1a;问题为什么会发生&#xff1f;促使人把目光聚焦于问题的原因&#xff0c;而非问题的症状。 接下来从鱼骨…

利用思维导图软件绘制鱼骨图怎样做

思维导图的类型有哪些&#xff1f; 圆圈图主要用于把一个主题展开来&#xff0c;联想或描述细节。小圈圈是主题&#xff0c;而外面的大圈圈里放的是和这个主题有关的细节或特征气泡图由很多泡泡组成&#xff0c;中间一个主题泡泡描述核心主题&#xff0c;周围的属性泡泡描述关于…

“鱼骨图”勾勒合理ERP项目进度计划

一个好的ERP(Enterprise Resource Planning)项目进度计划是能够保证ERP项目成功实施的关键之一。ERP项目进度计划一般采用里程碑管理,将ERP项目分为五个阶段:项目准备、业务蓝图设计、系统实现、上线准备、上线和上线支持;根据客户的需求制订每一个阶段实施时间。如何为每一…

如何用XMind绘制鱼骨图

鱼骨图因常常被用于问题的分析以及解决方法&#xff0c;所以又被称为因果图。鱼骨图一直是XMind思维导图软件的拿手好戏之一&#xff0c;一直被模仿从未被超越。让我们一起通过本篇文章&#xff0c;探讨XMind鱼骨图的秘密吧。 当你打开XMind思维导图后&#xff0c;就可以在新建…

XMind是怎么绘制鱼骨图

鱼骨图因常常被用于问题的分析以及解决方法&#xff0c;所以又被称为因果图。鱼骨图一直是XMind思维导图软件的拿手好戏之一&#xff0c;一直被模仿从未被超越。让我们一起通过本篇文章&#xff0c;探讨XMind鱼骨图的秘密吧。 当你打开XMind思维导图后&#xff0c;就可以在新建…

C++ vector类成员函数介绍

目录 &#x1f914;vector模板介绍&#xff1a; &#x1f914;特点&#xff1a; &#x1f914;vector的成员函数&#xff1a; &#x1f50d;vector构造函数&#xff1a; &#x1f50d;vector赋值函数 &#x1f50d;vector容器的判断函数 resize函数的重点内容&#xff1a; …