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