




已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
嵌入式系統(tǒng)基礎,第7章 裸機系統(tǒng)的軟件開發(fā) ,1,嵌入式軟件開發(fā)內容,開發(fā)系統(tǒng)軟件-通用性 操作系統(tǒng) 協(xié)議棧 GUI 庫函數(shù) 軟件組件與IP(知識產(chǎn)權內核) 開發(fā)應用軟件-專用性 在嵌入式操作系統(tǒng)之上進行開發(fā) 在硬件層上進行開發(fā),2,本章內容,軟件的結構和組成 監(jiān)控程序 裸機系統(tǒng)軟件的設計方法 軟件的移植問題 可移植應用軟件的開發(fā)原則,3,本章目的,了解嵌入式系統(tǒng)的軟件結構與組成 掌握裸機系統(tǒng)的軟件結構及應用 前后臺結構 中斷驅動結構 巡回服務結構 基于定時器的巡回服務結構 了解可移植程序的設計原理,掌握可移植程序的設計方法,4,#include /普通程序 main() printf(“hello,worldn”); ,5,1 軟件的結構和組成,#include /嵌入式軟件主程序 main() while(1) action1(); action2(); ,6,嵌入式系統(tǒng)的軟件開發(fā)問題,嵌入式操作系統(tǒng)。 操作系統(tǒng)與應用軟件的集成。 軟件的結構。 嵌入式系統(tǒng)的軟件是沒有出口的,程序不能“退出”,整個程序的結構應該是無限的循環(huán)。 嵌入式系統(tǒng)的軟件設計需要考慮硬件的支持、操作系統(tǒng)的支持、程序的初始化和引導等諸多的方面。 嵌入式系統(tǒng)的軟件可能沒有操作系統(tǒng),在裸機上直接開發(fā)。,7,1.1嵌入式系統(tǒng)的軟件組成,初始化引導代碼 板級支持包 操作系統(tǒng) 通信協(xié)議棧 圖形用戶界面 應用軟件,8,嵌入式系統(tǒng)的軟件結構,9,1.2、初始化引導代碼,初始化引導代碼是任務嵌入式系統(tǒng)上電復位后第一個執(zhí)行的代碼 復位向量 80186:FFFF0H MCS51:0 ARM:0 執(zhí)行: 自檢 引導操作系統(tǒng) 進入初始化(硬件、軟件),10,1.3 BSP板級支持包,PC平臺的標準化 嵌入式系統(tǒng)平臺的多樣化 BSP的功能 裸機系統(tǒng)沒有BSP 用戶定制的系統(tǒng)各不相同 用戶定制的系統(tǒng)主要部分相同 含有存儲器、定時器、中斷等操作系統(tǒng)運行所需的基本部件 嵌入式操作系統(tǒng)與用戶定制硬件平臺之間的接口,11,1.4嵌入式操作系統(tǒng),復雜系統(tǒng)需要嵌入式操作系統(tǒng)的支持 簡單系統(tǒng)可以不使用嵌入式操作系統(tǒng) 嵌入式操作系統(tǒng)可裁減 嵌入式操作系統(tǒng)的內核 處理機管理(任務、任務之間的通信和同步等) 存儲器管理 完整的嵌入式操作系統(tǒng) 內核 文件系統(tǒng) 人機界面 設備驅動等,12,1.5網(wǎng)絡協(xié)議棧,協(xié)議棧對于具有網(wǎng)絡功能的嵌入式系統(tǒng)產(chǎn)品是必要的,目前嵌入式協(xié)議棧的提供有兩種方式, 一種是獨立的第三方協(xié)議棧產(chǎn)品, 一種是嵌入式操作系統(tǒng)的提供商提供協(xié)議棧產(chǎn)品。 協(xié)議棧的運行必須基于嵌入式操作系統(tǒng)的平臺支持,但是并不意味著協(xié)議棧必須依賴于嵌入式操作系統(tǒng)的API。事實上,許多的嵌入式協(xié)議棧,如嵌入式TCP/IP協(xié)議棧做到了與操作系統(tǒng)的最大獨立性,可以與大多數(shù)嵌入式操作系統(tǒng)集成運行。,13,1.6應用軟件,嵌入式系統(tǒng)的應用軟件一般需要自主開發(fā),不同的嵌入式系統(tǒng)的應用軟件各具特色和功能。 例如常用的應用軟件用于PDA上,記事本、通訊錄、計算器等。 應用于工業(yè)現(xiàn)場總線領域的應用軟件如控制軟件等。 應用軟件的開發(fā)基于操作系統(tǒng)、網(wǎng)絡通信協(xié)議棧、圖形用戶接口、文件系統(tǒng)等一系列的低層API。,14,1.7 GUI,對于大多數(shù)嵌入式系統(tǒng),圖形用戶接口是必要的,特別是隨身設備如PDA、手機等。 GUI運行在嵌入式操作系統(tǒng)之上。用戶開發(fā)的與用戶交互的應用軟件通過調用GUI的功能調用(API)來實現(xiàn)。,15,2 監(jiān)控程序-monitor,監(jiān)控程序是運行在嵌入式系統(tǒng)中的一段代碼,具有與用戶進行交互,管理系統(tǒng)資源的功能,具有操作系統(tǒng)內核的一小部分功能。嵌入式系統(tǒng)正式運行時,通常不需要監(jiān)控程序的干預。 目前開發(fā)嵌入式系統(tǒng),監(jiān)控程序的作為正在減少,只用在一些小的嵌入式系統(tǒng)中。 有的嵌入式控制器的制造商把監(jiān)控程序駐留在ROM中提供給用戶在開發(fā)時使用,提供的功能如程序下載、調試、固化等。 如motorola公司的某些8位嵌入式微控制器,16,3 裸機系統(tǒng)軟件的設計方法,嵌入式系統(tǒng)軟件設計 無操作系統(tǒng)的嵌入式軟件設計 有操作系統(tǒng)的嵌入式軟件設計 (下一章),17,3.1無操作系統(tǒng)的嵌入式軟件設計,前后臺系統(tǒng) 中斷(事件)驅動系統(tǒng) 巡回服務系統(tǒng) 基于定時器的巡回服務系統(tǒng),18,3.1.1前后臺系統(tǒng),后臺: 應用程序是一個無限循環(huán),巡回地執(zhí)行多個事件,完成相應的操作。這一部分軟件稱為后臺。通常在主程序main()中被調用。 前臺: 中斷服務程序處理異步事件,這一部分可以看成是前臺。 后臺可以稱為任務級,前臺可以稱為中斷級。強實時性的關鍵操作一定要用中斷來實現(xiàn)。,19,程序框架-后臺,main() /* 硬件初始化 */ while(1) /* 后臺程序 */ action1(); action2(); actionn(); ,action_1() /* 執(zhí)行動作1 */ action_n() /* 執(zhí)行動作n */ ,20,程序框架-前臺,Isr_1() /中斷服務程序 1 /* 中斷1的中斷服務程序 */ /其它中斷服務程序 Isr_n()/中斷服務程序 n /* 中斷2的中斷服務程序 */ ,21,前后臺系統(tǒng)的特點,實時性問題-不好 中斷服務程序提供的數(shù)據(jù)(實時性數(shù)據(jù))只有在后臺輪詢到的時候才能得到運行 應用 小系統(tǒng): 微波爐 電話機 玩具等,22,3.1.2中斷(事件)驅動系統(tǒng),原理 整個嵌入式系統(tǒng)軟件由中斷服務程序構成 主程序完成系統(tǒng)的初始化工作 應用 低功耗系統(tǒng)設計 事件驅動系統(tǒng) 構成 主程序-完成系統(tǒng)的初始化 中斷服務例程-完成事務處理,23,中斷(事件)驅動系統(tǒng)-主程序,/*完成系統(tǒng)的硬件初始化和數(shù)據(jù)結構的初始化(如果必要的話)*/ main() /* to do: 系統(tǒng)的初始化 */ while(1) 其它代碼或 enter_low_power(); /進入低功耗狀態(tài),如idle狀態(tài) ,24,中斷(事件)驅動系統(tǒng)-中斷服務程序,Isr_n() /* 其中的一個中斷服務程序 */ /* to do: 處理中斷事件 */ /* to do: 中斷返回 */ ,25,3.1.3巡回服務系統(tǒng),應用: 嵌入式處理器/控制器的中斷源不多 解決方案 增加中斷源-需要硬件,成本高 軟件方案-軟件巡回服務 main() /* to do: 系統(tǒng)初始化 */ while(1) action_1();/*巡回檢測事件1并處理事件*/ action_2();/*巡回檢測事件2并處理事件*/ action_n();/*巡回檢測事件n并處理事件*/ ,26,3.1.4基于定時器的巡回服務系統(tǒng),普通巡回服務系統(tǒng)的缺點 處理器全速運行,開銷大-功耗高-電池供電系統(tǒng) 降低處理器的工作時間-基于定時器的巡回服務系統(tǒng) 構成 主程序 定時器中斷服務程序,27,主程序,main() /* to do: 系統(tǒng)初始化 */ /* to do: 設置定時器,如自動重新加載方式 */ while(1) /其它代碼或 enter_low_power(); ,28,定時器中斷服務例程,Isr_timer() /* 定時器的中斷服務程序 */ action_1(); /*執(zhí)行事件1的處理*/ action_2(); /*執(zhí)行事件2的處理*/ action_n(); /*執(zhí)行事件n的處理*/ ,29,4 軟件的移植,內容 考慮移植的必要性 裸機系統(tǒng)的軟件移植 應用軟件的移植 可移植應用軟件的設計思路,30,4.1移植的必要性,基于嵌入式處理器的原因 處理器的更新方式 兼容機更新方式-量變,短時間 80x86系列 新的體系結構代替舊的體系結構-質變,長時間 dragon ball:EZ,VZ: 68000體系,ARM體系 基于嵌入式操作系統(tǒng)的原因 舊的操作系統(tǒng)淘汰,新的操作系統(tǒng)被開發(fā)出來 應用軟件需要運行于不同的嵌入式操作系統(tǒng)平臺上,31,例:,硬件: Z80,STD總線工業(yè)PC 軟件: DOS的DCSwindows平臺、Vxworks平臺,32,5.2裸機系統(tǒng)的軟件移植,裸機系統(tǒng)的特點 通常比較簡單(如8位字寬) 使用匯編語言或C語言開發(fā) 不易移植的情況 匯編語言開發(fā) 跨平臺 模塊化差,33,基于硬件抽象層可移植軟件結構,34,應用軟件,輸入/輸出模塊,處理器硬件,應用軟件,硬件抽象層,處理器硬件,輸入/輸出模塊,硬件相關,可移植性結構,硬件抽象層的特點,硬件抽象層具有與硬件密切相關性; 為上層應用軟件的開發(fā)提供統(tǒng)一的接口 接口定義的功能應包含硬件或系統(tǒng)所需硬件支持的所有功能; 接口定義簡單明了,太多接口函數(shù)會增加軟件模擬的復雜性; 具有可測性的接口設計有利于系統(tǒng)的軟硬件測試和集成。,35,應用軟件,硬件抽象層,處理器硬件,輸入/輸出模塊,硬件抽象層設計方法和原則,軟件硬件并行、協(xié)同設計 分析接口的數(shù)據(jù)傳輸特性(雙向/單向數(shù)據(jù)傳輸,字節(jié)型/數(shù)據(jù)幀型傳輸模式); 分析接口配置屬性; 定義接口所需的相關函數(shù)。,36,應用軟件的開發(fā)原則,不直接操作硬件 調用硬件抽象層的接口函數(shù) 完成面向應用的軟件開發(fā),37,硬件抽象層例子,RS232串行通信接口 發(fā)送功能 接收功能 模式、參數(shù)設置功能 控制功能 對于MCS51,8251,16450/16550,etc設計同樣的接口函數(shù), uart_putc(uint8 ch, uint8 c); uart_getc(uint8 ch, uint8 *buf); uart_puts(uint8 ch, uint8 *pstr); uart_gets(uint8 ch, uint8 *pbuf); uart_init(uint8 ch, uint8 rate, uint8 data_len, uint8 check, uint8 start_bit, uint8 stop_bit);,38,應用程序中使用可移植的UART的功能,初始化uart uart_init() 發(fā)送一個字符 uart_putc() 接收一個字符 uart_getc(),39,5可移植應用軟件的設計原則,嵌入式系統(tǒng)開發(fā)的初期考慮移植問題 設計原則 層次化 模塊化 層次化與模塊化的結合 可設計硬件抽象層 可設計操作系統(tǒng)抽象層,40,5.5.3層次化與模塊化的結合,41,datatype.h /* 基本數(shù)據(jù)類型 */ typedef unsigned char BOOLEAN; typedef unsigned char UINT8; typedef signed char INT8; typedef unsigned short UINT16; typedef signed short INT16; typedef unsigned int UINT32; typedef signed in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 兒童團課游戲計劃
- 人教版八年級上冊物理課程計劃
- 人教版三年級科學暑期預習教學計劃
- 部編人教版八年級歷史教案計劃
- 蘇教版小學科學二年級下冊教學評價計劃
- 校際體育交流結對幫扶計劃
- 幼兒園暑假班校車管理計劃
- 2025年公務員考試時事政治模擬考試試卷【考點提分】附答案詳解
- 醫(yī)療器械安裝調試承包合同模板
- 地鐵車站施工現(xiàn)場勞務保障協(xié)議
- 有機合成路線的設計(解析版)-2025年高考化學答題技巧與模板構建(新高考)
- 生產(chǎn)安全事故應急演練評估報告模版
- 復合材料層合板殼結構分析理論研究進展
- 巨量雙證直播運營營銷師認證考試題(附答案)
- 2025年重慶出版集團招聘筆試參考題庫含答案解析
- 金融產(chǎn)品網(wǎng)絡營銷管理辦法
- 2024年廣東省廣州市中考化學真題卷及答案解析
- 02565+24273中醫(yī)藥學概論
- 電力鐵塔灌注樁施工方案
- 荒山綠化工程建設項目可行性研究報告
- 北京理工大學《數(shù)據(jù)結構與算法設計》2022-2023學年第一學期期末試卷
評論
0/150
提交評論