STM32開發環境(工具)之Keil MDK 介紹
STM32微處理器基于ARM核,所以很多基于ARM嵌入式開發環境都可用于STM32開發平臺。開發工具都可用于STM32開發。選擇合適的開發環境可以加快開發進度,節省開發成本。本章將先對STM32常用的開發工具Keil MDK和IAR EWARM進行簡單介紹,然后結合STM32_SK仿真評估板和STM32F103C的開發板講解STM32片上資源使用,最后給出一個基于STM32的數據采集器的應用實例。
5.1 Keil MDK介紹
Keil是德國知名軟件公司Keil(現已并入ARM 公司)開發的微控制器軟件開發平臺,是目前ARM內核單片機開發的主流工具。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器在內的完整開發方案,通過一個集成開發環境(uVision)將這些功能組合在一起。uVision當前最高版本是uVision3,它的界面和常用的微軟VC++的界面相似,界面友好,易學易用,在調試程序,軟件仿真方面也有很強大的功能。因此很多開發ARM應用的工程師,都對它十分喜歡。
5.1.1 開發過程及集成開發環境簡介
1. Keil的軟件開發周期
使用Keil來開發嵌入式軟件,開發周期和其他的平臺軟件開發周期是差不多的,大致有以下幾個步驟:
1. 創建一個工程,選擇一塊目標芯片,并且做一些必要的工程配置。
2. 編寫C或者匯編源文件。
3. 編譯應用程序。
4. 修改源程序中的錯誤。
5. 聯機調試。
下面這種結構圖完整描述了Keil開發軟件的整個過程。

2. uVision3 集成開發環境
uVision3 IDE是一款集編輯,編譯和項目管理于一身的基于窗口的軟件開發環境。uVision3集成了C語言編譯器,宏編譯,鏈接/定位,以及HEX文件產生器。uVision3具有如下特性:
功能齊全的源代碼編輯器,
用于配置開發工具的設備庫,
用于創建工程和維護工程的項目管理器,
所有的工具配置都采用對話框進行,
集成了源碼級的仿真調試器,包括高速CPU和外設模擬器,
用于往Flash ROM下載應用程序的Flash編程工具,
完備的開發工具幫助文檔,設備數據表和用戶使用向導。
uVision3具有良好的界面風格,下圖是一個典型的調試時的窗口。

工程區:用于訪問文件組和文件,調試是可以查看CPU寄存器。
輸出窗口:顯示編譯結果,以便快速查找錯誤的地方,同時還是調試命令輸入輸出窗口,也可以用于顯示查找結果。
內存窗口:顯示指定地址內村里的內容。
查看和調用棧窗口:用于查看和修改變量的值,并且現實當前函數調用樹。
代碼窗口:用于查看和編輯源文件。
外設對話框:檢查微控制的片上外設的狀態。
3. ULINK USB-JTAG接口適配器
ULINK USB-JTAG是一個用于連接PC USB口和開發板JTAG口的小硬件適配器。通過ULINK你可以在真實的目標板上創建,下載和測試嵌入式應用。ULINK支持如下操作:
下載目標程序。
檢查內存和寄存器。
單步運行程序。
插入多個斷點。
實時運行程序
燒寫FLASH存儲器

5.1.2 工程管理
在項目開發中,并不是僅有一個源程序就行了,還要為這個項目選擇CPU(Keil支持數百種CPU,而這些CPU的特性并不完全相同),確定編譯、匯編、連接的參數,指定調試的方式,有一些項目還會有多個文件組成等,為管理和使用方便,Keil使用工程(Project)這一概念,將這些參數設置和所需的所有文件都加到一個工程中,只對工程而不是對單一的源程序進行編譯(匯編)和連接等操作。下面我們就以一個簡單的例子HelloWorld來講解如何建立工程和配置工程。在這個例子里,我們將實現開發板上的LED1閃爍,本例使用STM32F103C開發板為目標板。
5.1.2.1 新建工程
點擊菜單“Project”,選擇“New uVision Project”,這是將會出現一個對話框,要求給將要建立的工程起一個名字。
選擇你要保存的路徑,輸入工程文件的名字,這里我們就叫HelloWorld,uVision3工程文件的后綴為“.uv2”,然后點擊“Save”。 這時會彈出一個對話框要求你選擇目標設備的型號。

你可以根據你使用的處理器來選擇,如果您所使用的處理器型號在列表中找不到,也可以找一款與您使用的相兼容的型號來代替。這里我們選擇STM32F103C8,如圖所示,右邊一欄是對這個芯片的基本的說明,然后點擊“OK”。

有些芯片會提供啟動代碼,我們這個時候點擊“Yes”,到此一個工程就建立好了。
5.1.2.2 配置工程
工程建立好了之后,還要對工程進行進一步的設置,以滿足要求。
首先用鼠標右鍵(注意用右鍵)點擊左邊工程窗口的“Target 1”,會出現一個菜單,選擇“Options for Target Target 1”(也可以通過點擊工程窗口的Target 1”,然后使用菜單“Project”->“Options for Target Target 1”),即出現工程配置的對話框,如下圖所示:

這個對話框很復雜,而且根所選擇的芯片有關,這里共有10個頁面,絕大多數選擇默認配置即可,下面將對一些需要注意的配置簡單介紹一下。
1. Output標簽頁的設置

Select Folder for Objects:選擇編譯之后的目標文件存儲在哪個目錄里,默認位置為工程文件的目錄里。
Name of Executable:生成的目標文件的名字,缺省是工程的名字。
Create Executable:生成OMF以及HEX文件。OMF文件名同工程文件名但沒有帶擴展名。
Debug Information:用于Debug版本,生成調試信息,否則的話無法進行單步調試。
Create Batch File:生成用于實現整個編譯過程的批處理文件,使用這個文件可以脫離IDE對省程序進行編譯。
Create Hex File:這個選項默認情況下未被選中,如果要寫片做硬件實驗就必須選中該項。這一點是初學者易疏忽的,在此特別提醒注意一定要要選中,否則編譯之不生成Hex文件。
Big Endian:編碼格式,與CPU相關,如果CPU采用的是Big Endian編碼則勾選上。
Browse Information:產生用于在源文件快速定位的信息。
Create Library:生成lib庫文件,默認不選。
在我們剛剛新建的HelloWorld工程中,更改了三個地方,在工程目錄下新建了一個Output目錄保存目標文件,以避免和源文件混在一起。另外選中了Create Hex File和Browse Information,如上圖所示。
2. C/C++標簽頁的設置
評論