飛卡單片機與嵌入式系統實踐第3章_第1頁
飛卡單片機與嵌入式系統實踐第3章_第2頁
飛卡單片機與嵌入式系統實踐第3章_第3頁
飛卡單片機與嵌入式系統實踐第3章_第4頁
飛卡單片機與嵌入式系統實踐第3章_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、TM2015年年6月月單片機與嵌入式系統實踐單片機與嵌入式系統實踐第三章第三章 單片機與嵌入式系統開發單片機與嵌入式系統開發工具工具TMSlide 1目錄目錄3.1 Codewarrior3.1 Codewarrior集成開發環境集成開發環境 3.1.1 Codewarrior 3.1.1 Codewarrior簡介簡介 3.1.2 Codewarrior 3.1.2 Codewarrior的安裝的安裝 3.1.3 Codewarrior 3.1.3 Codewarrior的使用的使用 3.1.4 3.1.4 項目管理和設定項目管理和設定 3.1.5 3.1.5 程序下載與程序下載與BDMBD

2、M調試調試3.2 3.2 嵌入式嵌入式C C語言編程語言編程 3.2.1 3.2.1 嵌入式嵌入式C C語言簡介語言簡介 3.2.2 3.2.2 嵌入式變量的使用嵌入式變量的使用 3.2.3 3.2.3 嵌入式嵌入式C C語法擴充語法擴充3.3 3.3 項目實踐項目實踐 Codewarrior Codewarrior基本操作基本操作TMSlide 23.1 Codewarrior3.1 Codewarrior集成開發環境集成開發環境3.1.1 Codewarrior簡介 CodeWarrior系列集成開發環境(IDE)是Metrowerks公司為飛思卡爾嵌入式微處理器設計的軟件開發工具。該開發

3、工具是商用嵌入式軟件開發工具中使用較為廣泛的軟件之一。 CodeWarrior集成開發環境包括構建平臺和應用所必需的所有主要工具:編輯器、編譯器、調試器、鏈接器、匯編程序和IDE界面等。CodeWarrior將調試技術與開發環境結合在一起,將C/C+源級別調試和嵌入式應用開發整合于一體,為開發工作提供高度可視且自動化的框架,可以加快復雜應用的開發。TMSlide 33.1 Codewarrior3.1 Codewarrior集成開發環境集成開發環境3.1.2 Codewarrior的安裝 飛思卡爾公司針對不同的MCU,為用戶提供了不同的Codewarriror軟件版本。對于HCS08/RS08

4、系列MCU,飛思卡爾公司提供給用戶的是CodeWarrior for Microcontrollers,安裝文件讀者可直接從飛思卡爾的官方網站http:/ /software_tools/中免費下載,下載版本有評估版(evaluation edition)和特別版(Special Edition)具體安裝步驟詳見教材TMSlide 43.1 Codewarrior3.1 Codewarrior集成開發環境集成開發環境3.1.3 Codewarrior的使用(1)在CodeWarrior中啟動新項目建立(2)進入工程新建向導,按照芯片種類和型號選擇對應的選項,同時選擇仿真運行模式。(3)項目開發

5、語言設置(4)項目文件添加(5)處理器專家選項(6)嵌入式編程語言設置(7)連接設置(8)進入工程開發界面TMSlide 53.1 Codewarrior3.1 Codewarrior集成開發環境集成開發環境l 3.1.4 項目管理和設定(1)選擇芯片的調試場景(2)改變目標單片機型號和開發調試場景(3)項目配置選項設定: 最終目標代碼類型設定 C編譯選項設定(Complier for HC08) 連接器選項設定(Linker forHC08) (4)代碼生成(make)(5)打開并進入代碼調試窗口 TMSlide 63.1 Codewarrior3.1 Codewarrior集成開發環境集成

6、開發環境3.1.5 程序下載與BDM調試 為了在不同的計算機平臺之間傳輸程序代碼和數據,飛思卡爾公司將程序和數據文件以一種可打印的格式(ASCII格式)編碼成S文件。用CodeWarrior編譯會自動生成*.abs.s19文件,用戶使用時都是將該S文件燒錄到芯片中即可。 在使用S文件和背景調試工具將程序下載到芯片中并調試時,常需要軟件和硬件兩個方面的條件。在硬件連接方面,用戶可以在PC端使用USB接口與BDM調試寫入器連接,BDM調試器的另一端通過6-PIN的接口與嵌入式系統的核心板(S08最小系統)連接。在軟件方面,使用CodeWarrior下載,并在線運行調試界面即可開始運行調試 TMSl

7、ide 73.2 嵌入式嵌入式C語言編程語言編程3.2.1 嵌入式C語言簡介 C 語言最初是為UNIX 操作系統的開發與應用而開發設計的,目前已經成為一種非常流行的編程語言。在嵌入式系統中用C 語言更容易寫出一個集效率、可讀性和可移植性于一體的好代碼。 在使用嵌入式C語言編程時一點要注意與硬件資源的結合,考慮資源的合理利用,做到能簡就簡,不隨意浪費,以提高代碼效率。TMSlide 83.2 嵌入式嵌入式C語言編程語言編程 3.2.2 嵌入式變量的使用(1 1)變量的大小)變量的大小 不同架構的不同架構的MCU 中數據類型的長度是不同的中數據類型的長度是不同的,這對于代碼效率有很大的這對于代碼效

8、率有很大的影響。在影響。在8位機中位機中,例如例如HCS08系列單片機中系列單片機中8位形式數據的執行效率是最高位形式數據的執行效率是最高的的. .所以,要得到高效的所以,要得到高效的C C 語言程序,我們應該使用類型定義語言程序,我們應該使用類型定義(typedef)(typedef)的方的方式規定各種數據類型的長度,盡可能的采用式規定各種數據類型的長度,盡可能的采用8 8位數據長度。位數據長度。TMSlide 93.2 嵌入式嵌入式C語言編程語言編程 3.2.2 嵌入式變量的使用(2 2)有符號數和無符號數的選擇)有符號數和無符號數的選擇 除了數據長度,數據是否是有符號數也會影響嵌入式代碼

9、的效率。一般來除了數據長度,數據是否是有符號數也會影響嵌入式代碼的效率。一般來說,無符號數的執行效率要比有符號數高很多。比如兩個說,無符號數的執行效率要比有符號數高很多。比如兩個8 8位長度的有符號數位長度的有符號數相加,得到一個相加,得到一個1616位長度的有符號數,這需要位長度的有符號數,這需要3131個字節的代碼,而若改成兩個字節的代碼,而若改成兩個無符號數運算則代碼字節可減少一半以上。同樣,有符號數與無符號數進個無符號數運算則代碼字節可減少一半以上。同樣,有符號數與無符號數進行比較運算所需的代碼也比兩個都是無符號數運算所需的代碼要多。行比較運算所需的代碼也比兩個都是無符號數運算所需的代

10、碼要多。TMSlide 103.2 嵌入式嵌入式C語言編程語言編程 3.2.2 嵌入式變量的使用(3 3)定點數和浮點數運算)定點數和浮點數運算 對于運算復雜、精度要求較高的場合,我們常常需要用到浮點運算,而對于運算復雜、精度要求較高的場合,我們常常需要用到浮點運算,而目前大多數目前大多數8 8位位MCU MCU 只支持整數運算,對于浮點運算,既要得到精確的計算結只支持整數運算,對于浮點運算,既要得到精確的計算結果又不降低代碼效率的話,我們可以采用先把數據按比例放大,運算結束后果又不降低代碼效率的話,我們可以采用先把數據按比例放大,運算結束后再按相同比例縮小的方法進行。再按相同比例縮小的方法進

11、行。 此外,還可以用移位的方法來替代乘除運算。此外,還可以用移位的方法來替代乘除運算。TMSlide 113.2 嵌入式嵌入式C語言編程語言編程 3.2.2 嵌入式變量的使用(4)全局變量、局部變量和靜態變量 在嵌入式系統中,全局變量的使用可以有效地提高代碼效率,全局變量一般會有一個固定的存儲位置,如果把它放在零頁地址中,代碼效率將大大提高。同時在全局資源有限的情況下,使用局部變量有時反而代碼效率更高。 在編程時使用靜態變量也是提高效率的一種非常有用的方法,這樣可以在把變量存儲在全局地址范圍的同時保持代碼的可移植性和再使用性,但是需要注意的是用來存放靜態變量的RAM 空間不能釋放出來給其他子程

12、序使用。TMSlide 123.2 嵌入式嵌入式C語言編程語言編程3.2.3 嵌入式C語法擴充(1)變量類型和定義 Codewarrior 中S08系列單片機C 編譯器支持的基本變量類型及其缺省的長度位數由下表所示。當然,在使用時有些變量的長度可以按實際項目需要而改變,具體設置見下圖,該此對話框可由Type Size配置按紐打開。TMSlide 133.2 嵌入式嵌入式C語言編程語言編程3.2.3 嵌入式C語法擴充(1)變量類型和定義 Codewarrior 中S08系列單片機C 編譯器支持的基本變量類型及其缺省的長度位數由下表所示。當然,在使用時有些變量的長度可以按實際項目需要而改變。 在嵌

13、入式程序設計中對于變量類型的選擇有兩條最基本的原則須遵循:第一是能用短的變量類型就不用長的;第二是能用無符號數就不用有符號數。TMSlide 143.2 嵌入式嵌入式C語言編程語言編程3.2.3 嵌入式C語法擴充(2)變量的特殊修飾變量絕對定位:在定義時用“”給出其絕對地址變量volatile聲明:volatile型變量顧名思義就是這些變量是易變的const :用以聲明變量為永不變化的常數。TMSlide 153.2 嵌入式嵌入式C語言編程語言編程3.2.3 嵌入式C語法擴充(3)#pragma聲明 是基于單片機開發的特點而對標準C語法的一個擴充。它對充分利用單片機內各類有限的資源起到不可或缺

14、的關鍵作用。 #pragma DATA_SEG #pragma CONST_SEG #pragma INTO_ROM #pragma CODE_SEG #pragma TRAP_PROCTMSlide 163.2 嵌入式嵌入式C語言編程語言編程3.2.3 嵌入式C語法擴充(4)中斷服務函數編寫用關鍵詞interrupt和中斷矢量編號定義中斷函數用關鍵詞interrupt定義中斷函數,中斷矢量入口由prm文件指定用#pragma TRAP_PROC定義中斷函數TMSlide 173.3 項目實踐項目實踐 Codewarrior基本操作要求: 使用Codewarrior新建一個工程,并在該工程編寫程序實現在PTE口輸出數據0 x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論