STM32 開發環境(工具)介紹
? ? ? ? 一、Keil 軟件介紹
Keil C51 是美國 Keil software 公司出品的 51 系列兼容單片機 C 語言軟件開發系統。 KeilC51 軟件提供了豐富的庫數據和功能強大的集成開發調試工具 μVision2 全是 windows 界面。
只要看一下編譯后生成的匯編代碼, 就能體會到 keil C51 生成的目標代碼的效率之高, 多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。 Keil的版本目前是 V7 版本,他是很優秀的 8051C 編譯器。
安裝 Keil C51 對系統的要求比較低, 一般的 windows 系統就可以了。 安裝過程也很方便,依照軟件安裝過程的提示完成安裝即可。
Keil C51 軟件的集成編寫時在 Vision2 編譯環境下進行的。 μVision2 是一個標準的windows 應用程序,它是 C51 的一個集成軟件開發平臺, 具有源代碼編輯、項目管理、 程序生成器等功能,他的人機界面友好,操作方便,是開發者的首選工具軟件。
μVision2 提供以下特性幫助用戶快嵌入式應用的開發過程。
● 用戶可定義密碼序列的全功能編輯器;
● 將外部程序加入下拉式菜單的應用管理器;
● 創建和保存項目的項目管理器;
● 匯編編譯和連接應用程序的集成程序生成工具;
● 所有環境的對話框和開發工具設置。
(1) C51 編譯器和 A51 匯編器
源代碼由 μVision2 創建, 并被 C51 編譯或被 A51 匯編。 編譯器和匯編器從源代碼生成
可重定位的目標文件。
KeilC51 編譯器完全遵照 ANSIC 語言標準,支持 C 語言的所有標準特性。另外,直接
支持 8051 結構的幾個特性被添加到里面。
KeilA51 宏匯編器支持 8051 及其派生系列的全部指令集。
(2) LIB51 庫管理器
LIB51 庫管理器允許從由編譯器或匯編器生成的目標文件創建目標庫。 庫是一種被特別地組織過并在以后可以被連接重用的對象模塊。 當連接器處理一個庫時, 僅僅那些被使用的目標模塊才被真正使用。
(3) BL51 連接器 /定位器
BL51 連接器 /定位器利用從庫中提取的目標模塊和由編譯器或匯編器生成的目標模塊創建一個絕對地址的目標模塊。一個絕對地址目標模塊或文件包含不可重定位的代碼和數據。所有的代碼和數據被安置在固定的存儲單元器中。此絕對地址目標文件可以用來寫入EPROM 或其他存儲器件,或由 μVision2 調試器使用來模擬和調試或由仿真器用來測試程
序。
(4) μVision2 調試器
μVision2 調試器源代碼級調試器是一個理想的、快速可靠的程序調試器。此調試器包含一個高速模擬器,能夠模擬整個 8051 系統,包含片上外圍和外部硬件。當從器件庫中選擇器件時,這個器件的特性將自動配置。
keilC51 的編譯過程
μVision2 包含一個項目管理器,它可以使 8051 應用系統設計變得簡單。要創建一個應用,
需要按下列步驟進行操作。
(1) 啟動 μVision2 ,創建一個項目文件并從器件庫中選擇一個器件。
(2) 新建一個源文件并把它加入到項目中。
(3) 增加并配置選擇的期間的啟動代碼。
(4) 針對目標硬件設置工具選項。
(5) 編譯項目并生成可以編程 PROM 的 HEX 文件。
編譯后, C51 編譯器產生一個列表文件。 文件中包含源代碼、 指示信息、 匯編清單和字符表。
● C51 編譯器產生行號,編譯時的時間和日期;
● 編譯器的運行和產生的目標文件的信息被記錄在案;
● 列表文件在每個源代碼前沒包含行號和 {} 的嵌套層數;
● 如果錯誤或可能錯誤的代碼存在,一個錯誤或警告信息將顯示出來;
● 選擇在 μVision2-options for taget-listing 中的 Assembly code 代碼指示選項,將在列
表文件的匯編代碼處加入源代碼所在的行號;
● 存儲器一覽表提供了 8051 存儲器占用信息;
● 程序中的錯誤和警告總數包括在文件的結尾處。
二、EWARM開發環境
IAR Embedded Workbench for ARM (下面簡稱 IAR EWARM )是一個針對ARM 處理器 的集成開發環境,它包含項目管理器、編輯器、C/C++編譯器和ARM 匯編器、連接器XLINK和支持RTOS 的調試工具C-SPY。在EWARM 環境下可以使用C/C++和匯編語言方便地開發嵌入式應用程序。比較其他的ARM 開發環境,IAR EWARM 具有入門容易、使用方便和代碼緊湊等特點。 目前IAR EWARM支持ARM Cortex-M3 內核的最新版本是 5.4,該版本支持Luminary全系列的MCU。為了方便用戶學習評估,IAR 提供一個限制32K 代碼的免費試用版本。用戶可以到IAR公司的網站www.iar.com下載。 1.2 J-LINK仿真器介紹 全功能版J-LINK配合IAR EWARM、ADS、KEIL、WINARM、Real View等集成開發環境支持所有ARM7/ARM9/Cortex內核芯片的仿真,通過RDI接口和各集成開發環境無縫連接,操作方便、連接方便、簡單易學,是學習開發ARM最好最實用的開發工具。
? ? ? ? ?最顯著的特點:速度快,FLASH斷點不限制數量,支持IAR、KEIL、RV、ADS等環境。
* USB 2.0接口;
* 支持任何ARM7/ARM9 核Cortex M3 supported, 包括ithumb 模式;
* 下載速度達到600k byte/s;
* DCC速度到達800k byte/s;
* 與IAR Workbench可無縫集成;
* 通過USB供電,無需外接電源;
* JTAG最大時鐘達到12M;
* 自動內核識別;
* 自動速度識別;
* 支持自適應時鐘;
* 所有JTAG信號能被監控,目標板電壓能被偵測;
* 支持JTAG鏈上多個設備的調試;
* 完全即插即用;
* 20Pin標準JTAG連接器;
* 寬目標板電壓范圍:1.2V-3.3V (可選適配期支持到5V);
* 多核調試;
* 包括軟件:J-Mem,可查詢可修改內存;
* 包括J-Link Server (可通過TCP/IP連接到J-Link);
* 可選配J-Flash,支持獨立的Flash編程;
* 選配RDI插件使J-Link適合任何RDI兼容的調試器如ADS、Relview和Keil等;
* 選配RDI Flash BP,可以實現在RDI下,在Flash中設置無限斷點;
* 選配RDI Flash DLL,可以實現在RDI下的對Flash的獨立編程;
* 選配GDB server,可以實現在GDB環境下的調試。
STM32 開發語言介紹
一、C語言介紹
C是一種通用的編程語言,廣泛用于系統軟件與應用軟件的開發。于1969年至1973年間,為了移植與開發UNIX操作系統,由丹尼斯·里奇與肯·湯普遜,以B語言為基礎,在貝爾實驗室設計、開發出來。
C語言具有高效、靈活、功能豐富、表達力強和較高的可移植性等特點,在程序員中備受青睞,成為最近25年使用最為廣泛的編程語言[2]。目前,C語言編譯器普遍存在于各種不同的操作系統中,例如Microsoft Windows, Mac OS X, Linux, Unix等。C語言的設計影響了眾多后來的編程語言,例如C++、Objective-C、Java、C#等。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言的標準。二十世紀八十年代至今的有關程序開發工具,一般都支持匹配ANSI C的語法。
二、匯編語言簡介
匯編語言( assembly language )是一種用于 電子計算機 、微處理器 、微控制器 或其他可編程器件的低級語言,亦稱為符號語言。在匯編語言中,用 助記符 (Mnemonics )代替機器指令 的操作碼 ,用地址符號( Symbol )或標號( Label )代替指令或 操作數 的地址。在不同的設備中, 匯編語言對應著不同的機器語言 指令集 ,通過匯編過程轉換成機器指令。 普遍地說,特定的匯編語言和特定的機器語言指令集是一一對應的 ,不同平臺之間不可直接移植。
許多匯編程序為程序開發、 匯編 控制、 輔助調試提供了額外的支持機制。 有的匯編語言編程工具經常會提供宏,它們也被稱為宏匯編器。
匯編語言不像其他大多數的 程序設計語言 一樣被廣泛用于程序設計。 在今天的實際應用中,它通常被應用在底層,硬件操作和高要求的程序優化的場合。 驅動程序、嵌入式操作系統和實時運行程序都需要匯編語言。
匯編語言特點:匯編語言是直接面向處理器( Processor )的程序設計語言。處理器是在指令的控制下工作的, 處理器可以識別的每一條指令稱為機器指令。 每一種處理器都有自己可以識別的一整套指令, 稱為 指令集 。處理器執行指令時, 根據不同的指令采取不同的動作,完成不同的功能,既可以改變自己內部的工作狀態,也能控制其它外圍電路的工作狀態。
匯編語言的另一個特點就是它所操作的對象不是具體的數據 ,而是寄存器或者存儲器,也就是說它是直接和寄存器和存儲器打交道, 這也是為什么匯編語言的執行速度要比其它語言快, 但同時這也使編程更加復雜, 因為既然數據是存放在寄存器或存儲器中, 那么必然就存在著尋址方式, 也就是用什么方法找到所需要的數據。 例如上面的例子, 我們就不能像高級語言一樣直接使用數據,而是先要從相應的寄存器 AX 、BX 中把數據取出。這也就增加了編程的復雜性, 因為在高級語言中尋址這部分工作是由編譯系統來完成的,而在匯編語言中是由程序員自己來完成的,這無異增加了編程的復雜程度和程序的可讀性。再者,匯編語言指令是機器指令的一種符號表示,而不同類型的 CPU 有不同的機器指令系統,也就有不同的匯編語言 ,所以,匯編語言程序與機器有著密切的關系。所以,除了同系列、 不同型號 CPU 之間的匯編語言程序有一定程度的可移植性之外, 其它不同類型(如:小型機和微機等) CPU 之間的匯編語言程序是無法移植的,也就是說,匯編語言程序的通用性和可移植性要比高級語言程序低。
正因為匯編語言有 “與機器相關性 ”的特性, 程序員用匯編語言編寫程序時, 可充分對機器內部的各種資源進行合理的安排, 讓它們始終處于最佳的使用狀態。 這樣編寫出來的程序執行代碼短、執行速度快。匯編語言是各種編程語言中與硬件關系最密切、最直接的一種 ,在時間和空間的效率上也最高的一種,它是高等院校計算機應用技術必修的專業課程之一,對于訓練學生掌握程序設計技術,熟悉上機操作和程序調試技術有重要作用。
評論