keil查看程序运行时间_Keil系列教程05_工程目标选项配置(一)
說明:
本文原創(chuàng)作者『strongerHuang』
首發(fā)于微信公眾號(hào)『嵌入式專欄』,同時(shí)也更新在我的個(gè)人網(wǎng)站:EmbeddedDevelop
標(biāo)簽:Keil、 MDK-ARM、 μVision
該教程基于MDK-ARM,大部分內(nèi)容也適用于Keil其它3款(C51、 C251、 C166)產(chǎn)品。
一、寫在前面
本文講述的內(nèi)容是“Options for Target”,即工程目標(biāo)選項(xiàng)的配置內(nèi)容,也就是我們常見的工程配置內(nèi)容。
由于目標(biāo)配置的選項(xiàng)比較多,我將其分為工程目標(biāo)選項(xiàng)配置(一)和工程目標(biāo)選項(xiàng)配置(二)兩篇文章來講述。
目標(biāo)選項(xiàng)包含了一個(gè)工程目標(biāo)所有的配置信息,這些信息是保存于我們工程(.uvprojx)和對(duì)應(yīng)的(.uvoptx)文件。
二、本文要點(diǎn)
本文主要講述的是目標(biāo)選項(xiàng)的配置,但為了讓更多人明白什么是目標(biāo)選項(xiàng),首先將簡(jiǎn)述工作空間、工程、目標(biāo)的意思和區(qū)別。
2.1 打開目標(biāo)選項(xiàng)的三種方法
A.點(diǎn)擊“目標(biāo)選項(xiàng)”快捷按鈕,如開篇第一張圖。
B.快捷鍵:Alt + F7
提示:如果是配置工程,需選中工程,再按Alt + F7。(如果你選中文件,是對(duì)文件的一些配置)
C.從菜單中打開,Project -> Options for Target,如下圖:
2.2 本文所講述的目標(biāo)選項(xiàng)
由于目標(biāo)選項(xiàng)里面內(nèi)容較多,本文只講述前五項(xiàng):Devie設(shè)備、 Target目標(biāo)、 Output輸出、 Listing列表、 User用戶。后五項(xiàng)在下一篇文章講述。
本文旨在讓大部分人明白目標(biāo)選項(xiàng)的配置,為了使文章內(nèi)容精簡(jiǎn),過于簡(jiǎn)單和不常用過于復(fù)雜的只簡(jiǎn)述。
三、工作空間、工程、目標(biāo)含義和區(qū)別
什么是工程目標(biāo)選項(xiàng)配置?或許有些人分不清工作空間、工程、目標(biāo)這三個(gè)名詞的意思和區(qū)別,這里就簡(jiǎn)單講述一下它們的含義和區(qū)別。
可以關(guān)注該系列教程后面新建多工程,多目標(biāo)的文章。
工作空間、工程、目標(biāo)它們?nèi)齻€(gè)是從大到小,依次包含的關(guān)系:工作空間 > 工程 > 節(jié)點(diǎn)。也就是說:一個(gè)工作空間可以有多個(gè)工程,一個(gè)工程可以有多個(gè)目標(biāo)。示意圖,如下:
舉個(gè)例子:一個(gè)項(xiàng)目,由主機(jī)和從機(jī)組成,但項(xiàng)目為了區(qū)分產(chǎn)品的高低端,將產(chǎn)品做成簡(jiǎn)單和復(fù)雜兩個(gè)版本(簡(jiǎn)單版只保留復(fù)雜版的部分功能)。舉例示意如下圖:
本節(jié)內(nèi)容不過多描述,在大型的實(shí)際項(xiàng)目中容易看見,一般不是很大項(xiàng)目,基本就是一個(gè)工程,一個(gè)目標(biāo)或多個(gè)目標(biāo)。
初學(xué)者一般都是一個(gè)工程對(duì)應(yīng)一個(gè)目標(biāo),這樣簡(jiǎn)單明了。若初學(xué)者不能理解可以略過。
四、Device設(shè)備(器件)
《Keil新建軟件工程》第一步就是選擇設(shè)備(器件)。強(qiáng)調(diào)一點(diǎn)就是:器件可以通過輸入查找,也可以通過列表查找。
五、Target目標(biāo)
這里說的目標(biāo)和上面說的工程目標(biāo)不一樣,是工程目標(biāo)的目標(biāo)。從內(nèi)容可以看得出來是工程目標(biāo)的調(diào)試晶振頻率、選擇的編譯器、RAM和ROM分配的地址空間等。
第1處:晶振頻率
這個(gè)值主要用于仿真調(diào)試用,一般我們使用硬件調(diào)試可以不用管這個(gè)值。
第2處:操作系統(tǒng)
很好理解,是否選擇Keil自帶的RTX操作系統(tǒng),一般我們都不選。
第3處:系統(tǒng)預(yù)覽文件
這里我們一般是默認(rèn)使用系統(tǒng)自帶,不選擇自己定義的。
第4處:生成代碼所選擇的編譯器
第5處:使用交叉模塊優(yōu)化、使用微庫
交叉模塊一般我們不使用,微庫這個(gè)功能常用與printf函數(shù)。
第6處:ROM存儲(chǔ)地址
這里的ROM存儲(chǔ)指的是程序儲(chǔ)存的地址,分片外、片內(nèi)兩種。
程序存儲(chǔ)在片內(nèi)好理解(初學(xué)者一般下載程序都是下載到片內(nèi)FLASH),片外存儲(chǔ)程序?qū)τ诔鯇W(xué)者來說比較少見,一般都是項(xiàng)目做大了,或有特殊要求時(shí),片內(nèi)不夠使用了才將程序存儲(chǔ)在片外。
第7處:RAM存儲(chǔ)地址
RAM存儲(chǔ)地址和ROM道理一樣,可以分片內(nèi)和片外。
六、Output輸出
輸出分兩類:
1.輸出(創(chuàng)建)可執(zhí)行文件:我們下載到處理器里面的程序就是該類;
2.輸出庫:對(duì)于初學(xué)者來說一般不使用庫,但對(duì)于很多從事特殊行業(yè)技術(shù)開發(fā)的公司來說,可能比較常用該功能。
第1處:輸出路徑
輸出路徑就是在工程編譯的過程中,輸出這些文件保存的文件夾。(Keil V5一般默認(rèn)是保存在Objects文件夾下面)
第2處:輸出可執(zhí)行文件名
輸出的可執(zhí)行文件和庫的名稱就是在這里定義。比如我們常見輸出Hex文件,其名稱就是這里定義的。
第3處:輸出可執(zhí)行文件
這里和輸出庫是二選一,選擇了輸出可執(zhí)行文件就不能選擇輸出庫。
Debug Infomation:輸出調(diào)試信息。勾選上這個(gè)選項(xiàng),我們才可以進(jìn)行調(diào)試。
Create HEX File:輸出可執(zhí)行Hex文件。很多初學(xué)的朋友問:“在哪里設(shè)置生成Hex?”,這里勾選上就行了。
Browse Information:輸出瀏覽信息。勾選上這個(gè)我們才能使用go to definition of這個(gè)功能。很多人問:“為什么我不能跟蹤代碼了”,原因就在這里。
提示:輸出這些中間文件都很費(fèi)時(shí)間,如果都不勾選這些選項(xiàng),編譯速度會(huì)很快。
第4處:輸出庫
選擇輸出庫,上面可執(zhí)行文件就不能輸出。 提示:這里輸出(生成)的是靜態(tài)庫,并非動(dòng)態(tài)庫。
七、Listing列表
這個(gè)選項(xiàng)是關(guān)于生成列表相關(guān)的選項(xiàng),對(duì)代碼分析比較透徹的工程師就需要了解這個(gè)選項(xiàng)。常見的map地址的分布,就是在這里配置生成的。
第1處:輸出路徑、寬高
選擇列表文件輸出的文件夾??稍O(shè)置文件頁面的寬度,長(zhǎng)寬。
第2處:輸出匯編列表
勾選上會(huì)輸出匯編列表信息(產(chǎn)生后綴為 .lst的文件)。如果工程中沒匯編文件,則不會(huì)輸出信息。
第3處:C編譯列表
C編譯程序列表選項(xiàng),勾選上可生成.txt, .i文件。
第4處:鏈接列表
可選擇生成或禁止生成.map文件。可設(shè)置生成代碼的詳細(xì)信息。可選擇性的選取輸出MAP文件。
八、User用戶選項(xiàng)
這個(gè)選項(xiàng)是針對(duì)用戶而設(shè)計(jì)的,方便用戶執(zhí)行一些程序。比如:編譯完代碼之后,我要將生成的Hex文件拷貝到其它地方。
縱觀上圖可以看見,第1、2、3處功能類似,都是讓用戶運(yùn)行程序,只是運(yùn)行的條件不同而已。
這里可以參看曾在微信公眾號(hào)分享過的一篇文章《MDK-ARM如何通過配置命令生產(chǎn)Bin文件》
第1處:編輯之前運(yùn)行用戶程序
第2處:編譯之前運(yùn)行用戶程序
第3處:編譯之后運(yùn)行用戶程序
第4處:編譯之后執(zhí)行條件
Run "After Build" conditionally:執(zhí)行條件;
Beep When Complete:編譯完成發(fā)出聲音;
Start Debugging:啟動(dòng)調(diào)試程序。
九、說明
1.該文檔僅供個(gè)人學(xué)習(xí)使用,版權(quán)所有,禁止商用。
2.本文由我一個(gè)人編輯并整理,難免存在一些錯(cuò)誤。
3.為了方便大家平時(shí)公交、地鐵、外出辦事也能用手機(jī)隨時(shí)隨地查看該教程,該教程同步更新于微信公眾號(hào)『嵌入式專欄』,關(guān)注微信公眾號(hào)回復(fù)【Keil系列教程】即可查看全系列教程。
十、最后
我的博客:http://www.strongerhuang.com
我的GitHub:https://github.com/EmbeddedDevelop
我的微信公眾號(hào)(ID:strongerHuang)還在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus...等更多精彩內(nèi)容,如果想查看更多內(nèi)容,可以關(guān)注我的微信公眾號(hào)『strongerHuang』。
總結(jié)
以上是生活随笔為你收集整理的keil查看程序运行时间_Keil系列教程05_工程目标选项配置(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电子科大16秋计算机应用基础在线作业一,
- 下一篇: layui select 赋值_layu