Ⅱ、本文要点
本文主要讲述的是目标选项的配置,但为了让更多人明白什么是目标选项,首先将简述工作空间、工程、目标的意思和区别。
1.打开目标选项的两种方法
1.点击目标选项快捷按钮,如下图:
2.从菜单中打开,Project -> Options for Target,如下图:
2.本文所讲述的目标选项
由于目标选项里面内容较多,本文只讲述前五项,后五项在下一篇文章讲述。本文旨在让大部分人明白目标选项的配置,为了使文章内容精简,过于简单和不常用过于复杂的只简述。
Ⅲ、简述工作空间、工程、目标
本章节内容与主题关系不大,若你掌握了,可以绕过。主要为了使更多的人明白这几个词的意思。本节内容这种复杂的结构,对于初学者基本使用不上,但可以适当了解。当以后项目做大了,可能会使用到工作空间。
工作空间、工程、目标它们三个是从大到小,依次包含的关系,也就是说:一个工作空间可以有多个工程,一个工程可以有多个目标。工作空间下的工程可以是完全独立的,工程下的目标基本上都有共同之处(比如:共用某些代码),它们工程项目统一管理。简单示意图,如下:
举个例子:一个项目,由主机和从机组成,但项目为了区分产品的高低端,将产品做成简单和复杂两个版本(简单版只保留复杂版的部分功能)。举例示意如下图:
本节内容不过多描述,在大型的实际项目中容易看见,一般不是很大项目,基本就是一个工程,一个目标或多个目标。初学者一般都是一个工程对应一个目标,这样简单明了。若是初学者,不能理解可以略过。
Ⅳ、工程目标选项配置(Ⅰ)
本节讲述工程目标前五项的配置,这里面有些内容在我们新建工程时都已经使用过,下面将详细讲述每一个选项配置的内容。
1.Device设备(器件)
这个选项不用多说,新建工程第一个就是选择设备(器件)。强调一点就是:器件可以通过输入查找,也可以通过列表查找。
2.Target目标
这里说的目标和上面说的工程目标不一样,是工程目标的目标。从内容可以看得出来是工程目标的调试晶振频率、选择的编译器、RAM和ROM分配的地址空间等。
第1处:晶振频率。
这个值主要用于仿真调试用,一般我们使用硬件调试可以不用管这个值。
第2处:操作系统。
很好理解,是否选择Keil自带的RTX操作系统,一般我们都不选。
第3处:系统预览文件。
这里我们一般是默认使用系统自带,不选择自己定义的。
第4处:生成代码所选择的编译器。
第5处:使用交叉模块优化、使用微库。
交叉模块一般我们不使用,微库这个功能常用与printf函数。
第6处:ROM存储地址。
这里的ROM存储指的是程序储存的地址,分片外和片内两种。
程序存储在片内好理解(初学者一般下载程序都是下载到片内FLASH),片外存储程序对于初学者来说比较少见,一般都是项目做大了,或有特殊要求时,片内不够使用了才将程序存储在片外。常见使用片外的例子“外部NorFlash存储程序代码”就会用到片外的存储地址。
第7处:RAM存储地址。
RAM存储地址和ROM道理一样,可以分片内和片外。常见例子“外部SRAM作为运行内存”。
3.Output输出
从选项名“Output”可以知道该选项里面内容的主要意思,就是输出一系列相关的内容。输出分两类:
1.输出(创建)可执行文件,我们下载到处理器里面的程序就是该类;
2.输出库,对于初学者来说一般不使用库,但对于很多从事特殊行业技术开发的公司来说,可能比较常用该功能。
第1处:输出路径。
输出路径就是在工程编译的过程中,输出这些文件保存的文件夹。Keil V5一般默认是保存在Objects文件夹下面,我建立工程一般也使用这个默认的路径。【其内容可以全部删除,最好配置在单独一个文件夹下面,代码备份时方便删除】
第2处:输出可执行文件名。
输出的可执行文件和库的名称就是在这里定义。比如我们常见输出Hex文件,其名称就是这里定义的。
第3处:输出可执行文件(重点)。
这里和输出库是二选一,选择了输出可执行文件就不能选择输出库。重要一点:输出这些信息都很费时间,如果都不勾选这些选项,编译速度会很快。
Debug Infomation:输出调试信息。勾选上这个选项,我们才可以进行调试。
Create HEX File:输出可执行Hex文件,很多初学的朋友问:“在哪里设置生成Hex?”,这里勾选上就行了。
Browse Information:输出浏览信息。勾选上这个我们才能使用go to definition of这个功能。很多人问:“为什么我不能跟踪代码了”,原因就在这里。
第4处:输出库。
拓展一点:这里输出(生成)的是静态库,并非动态库。初学者可以不用去理解。
4.Listing列表
这个选项是关于生成列表相关的选项,对代码分析比较透彻的工程师就需要了解这个选项。常见的就是map地址的分布,就是在这里配置生成的。
第1处:输出路径、宽高。
选择列表文件输出的文件夹。可设置文件页面的宽度,长宽。
第2处:输出汇编列表。
勾选上会输出汇编列表信息(产生后缀为 .lst的文件)。如果工程中没汇编文件,则不会输出信息。
第3处:C编译列表。
C编译程序列表选项,勾选上可生成.txt, .i文件。
第4处:链接列表。
可选择生成或禁止生成.map文件。可设置生成代码的详细信息。可选择性的选取输出MAP文件。
5.User用户选项
这个选项是针对用户而设计的,一般不常用,方便用户执行一些程序。比如:编译完代码之后,我要将生成的Hex文件拷贝到其它地方。
纵观下图可以看见,第1、2、3处作用相同,都是让用户运行程序,只是运行的条件不同而已。上面说的用户程序,勾选上,可以“DOS16模式”运行。
第1处:编辑之前运行用户程序。
第2处:编译之前运行用户程序。
第3处:编译之后运行用户程序。
第4处:编译之后执行条件。
Run "After Build" conditionally:执行条件;
Beep When Complete:编译完成发出声音;
Start Debugging:启动调试程序。
Ⅴ、说明
每一种工具的功能都是需要自己亲自实践,并长期使用才能达到灵活运用的地步,不建议死记硬背。若要了解更多关于Keil的系列教程,可以进入我微信公众号或博客查看。
为了照顾大部分人,本文采用标记、主要说明和阐述的方式对每一项内容进行讲述。如果内容详尽,会让篇幅过于繁杂,且不易找到重点。
以上内容仅供参考,若有不对之处,敬请谅解。
上一篇:Keil(MDK-ARM)系列教程(二)_工具栏详细说明
下一篇:Keil(MDK-ARM)系列教程(四)_工程目标选项配置(Ⅱ)
推荐阅读
史海拾趣
面对日益严峻的环境问题,EPT积极响应国家绿色发展的号召,开始探索和实践绿色生产。公司引进了一系列环保设备和工艺,实现了生产过程中的节能减排和资源循环利用。同时,EPT还加强了对废旧电池的回收和处理工作,以减少对环境的污染。这一举措不仅展现了EPT对社会责任的担当,也为其在电子行业中树立了绿色发展的典范。
以上故事均基于EPT公司在电子行业发展的背景信息虚构而成,旨在展现其发展历程中的关键节点和亮点。请注意,这些故事并非真实事件,仅供参考。
随着科技的不断发展,Electech Electronics意识到仅仅依赖电子元器件的代理和销售已经无法满足市场的需求。于是,公司开始投入研发,专注于电子产品的设计和制造。经过数年的努力,Electech Electronics成功开发出一系列具有竞争力的电子产品,如智能控制模块、高精度传感器等。这些产品的推出不仅拓宽了公司的产品线,也提升了公司的市场竞争力。
在快速发展的同时,Electech Electronics也注重环保和可持续发展。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。此外,Electech Electronics还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了公司的社会责任感,也为公司的长期发展奠定了基础。
在快速发展的同时,Electech Electronics也注重环保和可持续发展。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。此外,Electech Electronics还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了公司的社会责任感,也为公司的长期发展奠定了基础。
浙江东亚电子自成立以来,一直致力于技术创新和研发。公司拥有一支由50余名技术研发人员组成的专业团队,不断开发新产品和解决方案,以满足市场需求。这些创新产品不仅在国内外市场上获得了广泛认可,还为公司在新能源、通讯和军工等领域树立了良好的品牌形象。
作为一家有社会责任感的企业,Dynawave一直注重环保和可持续发展。他们采用环保材料和生产工艺,减少了对环境的污染。同时,公司还积极参与各种环保活动,宣传环保理念。这些做法不仅提升了公司的品牌形象,也赢得了社会各界的赞誉。
D13,D41,D42三个二极管再电路中是什么用处? 如果LM324的1脚输出增加,那么D13,D41,D42三个二极管输出全部拉低,这对电路整体有什么影响呢? [ 本帖最后由 simonprince 于 2009-9-10 08:46 编辑 ]… 查看全部问答∨ |
|
求救,藍牙模塊出錯(Bluetooth hardware error 10050(controller not present))! 我在Catalog Items中添加了Bluetooth下的UART Driver 和 Universal Loadable Driver,然後 編譯. (是不是在這步之後需要修改哪個.reg嗎?請指教!)之後,在Bluetooth Manager中點擊Scan Device出現 Bluetooth hardware error 10050(controller not pre ...… 查看全部问答∨ |
|
求助:f2812如何将片内FLASH中的程序加载到片内RAM中运行? 由于程序在片内flash中的运行速度较慢,希望能将片内flash中的程序全部加载到片内ram中运行,请问有什么好办法? 我的邮箱:gziyong2004@126.com,希望大家有空多沟通交流!… 查看全部问答∨ |
|
本帖最后由 dontium 于 2015-1-23 12:40 编辑 一种新颖的D类音频功率放大器驱动电路一种高效率+PWM+CMOS+D类音频功率放大器 … 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 下载【ADI 6本精选电子书】,截图抽红包啦~
- ADI有奖下载活动之9 电机控制解决方案—伺服控制
- 有奖直播:安世半导体先进 SiC MOSFET 助力提升 EV-Charger 和 OBC 应用能效
- ADI•世健工业嘉年华—有奖直播:ADI赋能工业4.0—助力PLC/DCS技术创新
- 有奖直播:Microchip适用于CryptoAuthentication™系列的可信任平台
- ADI有奖下载活动之13升级版ADI电机控制解决方案—伺服控制
- 有奖直播:【瑞萨电子推出针对血糖仪应用的内置模拟前端的RL78/L1A系列微控制器】
- 【泰有聊】第二期:泰克CEO为你解读低噪声背后的科学
- 3小时实战+剖析:TI工程师手把手带你全面入门MSP430(限量售$4.3开发套件,助你参与动手实验)