Keil系列教程05_工程目标选项配置(一)

图片

1写在前面

本文讲述的内容是“Options for Target”,即工程目标选项的配置内容,也就是我们常见的工程配置内容。

图片

由于目标配置的选项比较多,我将其分为工程目标选项配置(一)和工程目标选项配置(二)两篇文章来讲述。

目标选项包含了一个工程目标所有的配置信息,这些信息是保存于我们工程(.uvprojx)和对应的(.uvoptx)文件。

2

本文要点

本文主要讲述的是目标选项的配置,但为了让更多人明白什么是目标选项,首先将简述工作空间、工程、目标的意思和区别。

2.1 打开目标选项的三种方法

A.点击“目标选项”快捷按钮,如开篇第一张图。

图片

B.快捷键:Alt + F7

提示:如果是配置工程,需选中工程,再按Alt + F7。(如果你选中文件,是对文件的一些配置)

C.从菜单中打开,Project -> Options for Target,如下图:

图片

2.2 本文所讲述的目标选项

图片

由于目标选项里面内容较多,本文只讲述前五项:Devie设备、 Target目标、 Output输出、 Listing列表、 User用户。后五项在下一篇文章讲述。

本文旨在让大部分人明白目标选项的配置,为了使文章内容精简,过于简单和不常用过于复杂的只简述。

3

工作空间、工程、目标含义和区别

什么是工程目标选项配置?或许有些人分不清工作空间、工程、目标这三个名词的意思和区别,这里就简单讲述一下它们的含义和区别。

可以关注该系列教程后面新建多工程,多目标的文章。

工作空间、工程、目标它们三个是从大到小,依次包含的关系:工作空间 > 工程 > 节点。也就是说:一个工作空间可以有多个工程,一个工程可以有多个目标。示意图,如下:

图片

举个例子:一个项目,由主机从机组成,但项目为了区分产品的高低端,将产品做成简单复杂两个版本(简单版只保留复杂版的部分功能)。举例示意如下图:

图片

本节内容不过多描述,在大型的实际项目中容易看见,一般不是很大项目,基本就是一个工程,一个目标或多个目标。

初学者一般都是一个工程对应一个目标,这样简单明了。若初学者,不能理解可以略过。

4

Device设备(器件)

图片

Keil新建软件工程》第一步就是选择设备(器件)。强调一点就是:器件可以通过输入查找,也可以通过列表查找

5

Target目标

图片

这里说的目标和上面说的工程目标不一样,是工程目标的目标。从内容可以看得出来是工程目标的调试晶振频率、选择的编译器、RAM和ROM分配的地址空间等。

第1处:晶振频率

这个值主要用于仿真调试用,一般我们使用硬件调试可以不用管这个值。

第2处:操作系统

很好理解,是否选择Keil自带的RTX操作系统,一般我们都不选。

第3处:系统预览文件

这里我们一般是默认使用系统自带,不选择自己定义的。

第4处:生成代码所选择的编译器

第5处:使用交叉模块优化、使用微库

交叉模块一般我们不使用,微库这个功能常用与printf函数。

第6处:ROM存储地址

这里的ROM存储指的是程序储存的地址,分片外、片内两种。

程序存储在片内好理解(初学者一般下载程序都是下载到片内FLASH),片外存储程序对于初学者来说比较少见,一般都是项目做大了,或有特殊要求时,片内不够使用了才将程序存储在片外。

第7处:RAM存储地址

RAM存储地址和ROM道理一样,可以分片内和片外。

6

Output输出

图片

输出分两类:

1.输出(创建)可执行文件:我们下载到处理器里面的程序就是该类;

2.输出库:对于初学者来说一般不使用库,但对于很多从事特殊行业技术开发的公司来说,可能比较常用该功能。

第1处:输出路径

输出路径就是在工程编译的过程中,输出这些文件保存的文件夹。(Keil V5一般默认是保存在Objects文件夹下面)

第2处:输出可执行文件名

输出的可执行文件和库的名称就是在这里定义。比如我们常见输出Hex文件,其名称就是这里定义的。

第3处:输出可执行文件

这里和输出库是二选一,选择了输出可执行文件就不能选择输出库。

Debug Infomation:输出调试信息。勾选上这个选项,我们才可以进行调试。

Create HEX File:输出可执行Hex文件。很多初学的朋友问:“在哪里设置生成Hex?”,这里勾选上就行了。

Browse Information:输出浏览信息。勾选上这个我们才能使用go to definition of这个功能。很多人问:“为什么我不能跟踪代码了”,原因就在这里。

提示:输出这些中间文件都很费时间,如果都不勾选这些选项,编译速度会很快。

第4处:输出库

选择输出库,上面可执行文件就不能输出。

提示:这里输出(生成)的是静态库,并非动态库。

7

Listing列表

图片

这个选项是关于生成列表相关的选项,对代码分析比较透彻的工程师就需要了解这个选项。常见的map地址的分布,就是在这里配置生成的。

第1处:输出路径、宽高

选择列表文件输出的文件夹。可设置文件页面的宽度,长宽。

第2处:输出汇编列表

勾选上会输出汇编列表信息(产生后缀为 .lst的文件)。如果工程中没汇编文件,则不会输出信息。

第3处:C编译列表

C编译程序列表选项,勾选上可生成.txt, .i文件。

第4处:链接列表

可选择生成或禁止生成.map文件。可设置生成代码的详细信息。可选择性的选取输出MAP文件。

8

User用户选项

图片

这个选项是针对用户而设计的,方便用户执行一些程序。比如:编译完代码之后,我要将生成的Hex文件拷贝到其它地方。

纵观上图可以看见,第1、2、3处功能类似,都是让用户运行程序,只是运行的条件不同而已。

这里可以参看曾在微信公众号分享过的一篇文章《MDK-ARM如何通过配置命令生产Bin文件

第1处:编辑之前运行用户程序

第2处:编译之前运行用户程序

第3处:编译之后运行用户程序

第4处:编译之后执行条件

Run "After Build" conditionally:执行条件;

Beep When Complete:编译完成发出声音;

Start Debugging:启动调试程序。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值