日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

keil查看程序运行时间_Keil系列教程05_工程目标选项配置(一)

發布時間:2025/3/12 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keil查看程序运行时间_Keil系列教程05_工程目标选项配置(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明:

本文原創作者『strongerHuang』

首發于微信公眾號『嵌入式專欄』,同時也更新在我的個人網站:EmbeddedDevelop

標簽:Keil、 MDK-ARM、 μVision

該教程基于MDK-ARM,大部分內容也適用于Keil其它3款(C51、 C251、 C166)產品。

一、寫在前面

本文講述的內容是“Options for Target”,即工程目標選項的配置內容,也就是我們常見的工程配置內容。

由于目標配置的選項比較多,我將其分為工程目標選項配置(一)和工程目標選項配置(二)兩篇文章來講述。

目標選項包含了一個工程目標所有的配置信息,這些信息是保存于我們工程(.uvprojx)和對應的(.uvoptx)文件。

二、本文要點

本文主要講述的是目標選項的配置,但為了讓更多人明白什么是目標選項,首先將簡述工作空間、工程、目標的意思和區別。

2.1 打開目標選項的三種方法

A.點擊“目標選項”快捷按鈕,如開篇第一張圖。

B.快捷鍵:Alt + F7

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

C.從菜單中打開,Project -> Options for Target,如下圖:

2.2 本文所講述的目標選項

由于目標選項里面內容較多,本文只講述前五項:Devie設備、 Target目標、 Output輸出、 Listing列表、 User用戶。后五項在下一篇文章講述。

本文旨在讓大部分人明白目標選項的配置,為了使文章內容精簡,過于簡單和不常用過于復雜的只簡述。

三、工作空間、工程、目標含義和區別

什么是工程目標選項配置?或許有些人分不清工作空間、工程、目標這三個名詞的意思和區別,這里就簡單講述一下它們的含義和區別。

可以關注該系列教程后面新建多工程,多目標的文章。

工作空間、工程、目標它們三個是從大到小,依次包含的關系:工作空間 > 工程 > 節點。也就是說:一個工作空間可以有多個工程,一個工程可以有多個目標。示意圖,如下:

舉個例子:一個項目,由主機和從機組成,但項目為了區分產品的高低端,將產品做成簡單和復雜兩個版本(簡單版只保留復雜版的部分功能)。舉例示意如下圖:

本節內容不過多描述,在大型的實際項目中容易看見,一般不是很大項目,基本就是一個工程,一個目標或多個目標。

初學者一般都是一個工程對應一個目標,這樣簡單明了。若初學者不能理解可以略過。

四、Device設備(器件)

《Keil新建軟件工程》第一步就是選擇設備(器件)。強調一點就是:器件可以通過輸入查找,也可以通過列表查找。

五、Target目標

這里說的目標和上面說的工程目標不一樣,是工程目標的目標。從內容可以看得出來是工程目標的調試晶振頻率、選擇的編譯器、RAM和ROM分配的地址空間等。

第1處:晶振頻率

這個值主要用于仿真調試用,一般我們使用硬件調試可以不用管這個值。

第2處:操作系統

很好理解,是否選擇Keil自帶的RTX操作系統,一般我們都不選。

第3處:系統預覽文件

這里我們一般是默認使用系統自帶,不選擇自己定義的。

第4處:生成代碼所選擇的編譯器

第5處:使用交叉模塊優化、使用微庫

交叉模塊一般我們不使用,微庫這個功能常用與printf函數。

第6處:ROM存儲地址

這里的ROM存儲指的是程序儲存的地址,分片外、片內兩種。

程序存儲在片內好理解(初學者一般下載程序都是下載到片內FLASH),片外存儲程序對于初學者來說比較少見,一般都是項目做大了,或有特殊要求時,片內不夠使用了才將程序存儲在片外。

第7處:RAM存儲地址

RAM存儲地址和ROM道理一樣,可以分片內和片外。

六、Output輸出

輸出分兩類:

1.輸出(創建)可執行文件:我們下載到處理器里面的程序就是該類;

2.輸出庫:對于初學者來說一般不使用庫,但對于很多從事特殊行業技術開發的公司來說,可能比較常用該功能。

第1處:輸出路徑

輸出路徑就是在工程編譯的過程中,輸出這些文件保存的文件夾。(Keil V5一般默認是保存在Objects文件夾下面)

第2處:輸出可執行文件名

輸出的可執行文件和庫的名稱就是在這里定義。比如我們常見輸出Hex文件,其名稱就是這里定義的。

第3處:輸出可執行文件

這里和輸出庫是二選一,選擇了輸出可執行文件就不能選擇輸出庫。

Debug Infomation:輸出調試信息。勾選上這個選項,我們才可以進行調試。

Create HEX File:輸出可執行Hex文件。很多初學的朋友問:“在哪里設置生成Hex?”,這里勾選上就行了。

Browse Information:輸出瀏覽信息。勾選上這個我們才能使用go to definition of這個功能。很多人問:“為什么我不能跟蹤代碼了”,原因就在這里。

提示:輸出這些中間文件都很費時間,如果都不勾選這些選項,編譯速度會很快。

第4處:輸出庫

選擇輸出庫,上面可執行文件就不能輸出。 提示:這里輸出(生成)的是靜態庫,并非動態庫。

七、Listing列表

這個選項是關于生成列表相關的選項,對代碼分析比較透徹的工程師就需要了解這個選項。常見的map地址的分布,就是在這里配置生成的。

第1處:輸出路徑、寬高

選擇列表文件輸出的文件夾。可設置文件頁面的寬度,長寬。

第2處:輸出匯編列表

勾選上會輸出匯編列表信息(產生后綴為 .lst的文件)。如果工程中沒匯編文件,則不會輸出信息。

第3處:C編譯列表

C編譯程序列表選項,勾選上可生成.txt, .i文件。

第4處:鏈接列表

可選擇生成或禁止生成.map文件。可設置生成代碼的詳細信息。可選擇性的選取輸出MAP文件。

八、User用戶選項

這個選項是針對用戶而設計的,方便用戶執行一些程序。比如:編譯完代碼之后,我要將生成的Hex文件拷貝到其它地方。

縱觀上圖可以看見,第1、2、3處功能類似,都是讓用戶運行程序,只是運行的條件不同而已。

這里可以參看曾在微信公眾號分享過的一篇文章《MDK-ARM如何通過配置命令生產Bin文件》

第1處:編輯之前運行用戶程序

第2處:編譯之前運行用戶程序

第3處:編譯之后運行用戶程序

第4處:編譯之后執行條件

Run "After Build" conditionally:執行條件;

Beep When Complete:編譯完成發出聲音;

Start Debugging:啟動調試程序。

九、說明

1.該文檔僅供個人學習使用,版權所有,禁止商用。

2.本文由我一個人編輯并整理,難免存在一些錯誤。

3.為了方便大家平時公交、地鐵、外出辦事也能用手機隨時隨地查看該教程,該教程同步更新于微信公眾號『嵌入式專欄』,關注微信公眾號回復【Keil系列教程】即可查看全系列教程。

十、最后

我的博客:http://www.strongerhuang.com

我的GitHub:https://github.com/EmbeddedDevelop

我的微信公眾號(ID:strongerHuang)還在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus...等更多精彩內容,如果想查看更多內容,可以關注我的微信公眾號『strongerHuang』。

總結

以上是生活随笔為你收集整理的keil查看程序运行时间_Keil系列教程05_工程目标选项配置(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。