【STM32】 keil软件介绍--工程目标选项配置(上)
轉載至:https://blog.csdn.net/ybhuangfugui/article/details/51501781
Ⅰ、寫在前面
Options for Target目標選項其完全意思是工程目標選項配置,或許有些人分不清工作空間、工程、目標這三個名詞的意思和區別,下面章節將簡述工作空間、工程、目標他們的意思。
?
由于目標配置的選項比較多,我將其分為工程目標選項配置(Ⅰ)和工程目標選項配置(Ⅱ)兩篇文章來講述。
?
目標選項包含了一個工程目標所有的配置信息,這些信息是保存在工程文件中的,也就是我們每次雙擊打開工程的文件(.uvprojx)和對應的(.uvoptx)文件??催^我(打包)代碼的人應該知道,我的工程文件就保留了這兩個文件,其它生成的文件我全部刪除了的。
?
本文內容已經整理成PDF文件,提供給大家下載:
http://pan.baidu.com/s/1nuJ0RDR
?
Ⅱ、本文要點
本文主要講述的是目標選項的配置,但為了讓更多人明白什么是目標選項,首先將簡述工作空間、工程、目標的意思和區別。
?
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文件夾下面,我建立工程一般也使用這個默認的路徑?!酒鋬热菘梢匀縿h除,最好配置在單獨一個文件夾下面,代碼備份時方便刪除】
?
第2處:輸出可執行文件名。
輸出的可執行文件和庫的名稱就是在這里定義。比如我們常見輸出Hex文件,其名稱就是這里定義的。
?
第3處:輸出可執行文件(重點)。
這里和輸出庫是二選一,選擇了輸出可執行文件就不能選擇輸出庫。重要一點:輸出這些信息都很費時間,如果都不勾選這些選項,編譯速度會很快。
Debug Infomation:輸出調試信息。勾選上這個選項,我們才可以進行調試。
Create HEX File:輸出可執行Hex文件,很多初學的朋友問:“在哪里設置生成Hex?”,這里勾選上就行了。
Browse Information:輸出瀏覽信息。勾選上這個我們才能使用Go?to definition of這個功能。很多人問:“為什么我不能跟蹤代碼了”,原因就在這里。
?
第4處:輸出庫。
拓展一點:這里輸出(生成)的是靜態庫,并非動態庫。初學者可以不用去理解。
?
4.Listing列表
這個選項是關于生成列表相關的選項,對代碼分析比較透徹的工程師就需要了解這個選項。常見的就是map地址的分布,就是在這里配置生成的。
第1處:輸出路徑、寬高。
選擇列表文件輸出的文件夾??稍O置文件頁面的寬度,長寬。
?
第2處:輸出匯編列表。
勾選上會輸出匯編列表信息(產生后綴為?.lst的文件)。如果工程中沒匯編文件,則不會輸出信息。
第3處:C編譯列表。
C編譯程序列表選項,勾選上可生成.txt, .i文件。
?
第4處:鏈接列表。
可選擇生成或禁止生成.map文件??稍O置生成代碼的詳細信息??蛇x擇性的選取輸出MAP文件。
?
5.User用戶選項
這個選項是針對用戶而設計的,一般不常用,方便用戶執行一些程序。比如:編譯完代碼之后,我要將生成的Hex文件拷貝到其它地方。
?
縱觀下圖可以看見,第1、2、3處作用相同,都是讓用戶運行程序,只是運行的條件不同而已。上面說的用戶程序,勾選上,可以“DOS16模式”運行。
第1處:編輯之前運行用戶程序。
?
第2處:編譯之前運行用戶程序。
?
第3處:編譯之后運行用戶程序。
?
第4處:編譯之后執行條件。
Run "After Build" conditionally:執行條件;
Beep When Complete:編譯完成發出聲音;
Start Debugging:啟動調試程序。
?
總結
以上是生活随笔為你收集整理的【STM32】 keil软件介绍--工程目标选项配置(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【STM32】 keil软件介绍--工具
- 下一篇: 【STM32】 keil软件工具--工程