![arm課件第章嵌入式系統(tǒng)開發(fā)平臺PPT文檔_第1頁](http://file4.renrendoc.com/view/cb342042861f3167bbe91bc5ed36028f/cb342042861f3167bbe91bc5ed36028f1.gif)
![arm課件第章嵌入式系統(tǒng)開發(fā)平臺PPT文檔_第2頁](http://file4.renrendoc.com/view/cb342042861f3167bbe91bc5ed36028f/cb342042861f3167bbe91bc5ed36028f2.gif)
![arm課件第章嵌入式系統(tǒng)開發(fā)平臺PPT文檔_第3頁](http://file4.renrendoc.com/view/cb342042861f3167bbe91bc5ed36028f/cb342042861f3167bbe91bc5ed36028f3.gif)
![arm課件第章嵌入式系統(tǒng)開發(fā)平臺PPT文檔_第4頁](http://file4.renrendoc.com/view/cb342042861f3167bbe91bc5ed36028f/cb342042861f3167bbe91bc5ed36028f4.gif)
![arm課件第章嵌入式系統(tǒng)開發(fā)平臺PPT文檔_第5頁](http://file4.renrendoc.com/view/cb342042861f3167bbe91bc5ed36028f/cb342042861f3167bbe91bc5ed36028f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第8章目錄1.如何建立嵌入式系統(tǒng)開發(fā)平臺2.數(shù)據(jù)隊列3.串口驅(qū)動接口模塊2C總線模塊總線模塊7.其它軟件模塊第8章目錄1.如何建立嵌入式系統(tǒng)開發(fā)平臺2.數(shù)據(jù)隊列3.串口驅(qū)動接口模塊2C總線模塊總線模塊7.其它軟件模塊8.1如何建立嵌入式系統(tǒng)開發(fā)平臺平臺的概念平臺是一個意義很廣泛的詞,要準確的定義平臺不是件容易的事。在嵌入式系統(tǒng)中的開發(fā)平臺具有如下特點:層次性服務性規(guī)范性通用性技術(shù)密度
平臺的概念平臺是一個意義很廣泛的詞,要準確的定義平臺不是件容易的事。在嵌入式系統(tǒng)中的開發(fā)平臺具有如下特點:層次性服務性規(guī)范性通用性技術(shù)密度
平臺是一個意義很廣泛的詞,要準確的定義平臺不是件容易的事。在嵌入式系統(tǒng)中的開發(fā)平臺具有如下特點:層次性層次性首先表現(xiàn)在平臺本身具有層次,高層的平臺是以低層平臺為基礎(chǔ)搭建起來的。還表現(xiàn)在每個層次的平臺的內(nèi)部還有層次性。越高層次的平臺越容易使用,對使用者的要求也就越低。服務性平臺是為應用服務的,沒有應用的平臺是無意義的,沒有存在的必要。對于元器件來說,線路板就是它的應用。而API是硬件平臺的應用,應用程序又是API的應用。規(guī)范性通用性技術(shù)密度
平臺的概念平臺是一個意義很廣泛的詞,要準確的定義平臺不是件容易的事。在嵌入式系統(tǒng)中的開發(fā)平臺具有如下特點:層次性服務性規(guī)范性當一個平臺建立起來后,其對應用的接口就具有一定的規(guī)范。一個軟件模塊一旦開發(fā)完畢,其接口函數(shù)及使用方法就確定了,應用程序就需要按照規(guī)范使用。通用性平臺從來不是給一個應用使用的。如果一個平臺只能給一個應用使用,作為平臺來說,其設計是失敗的(盡管其作為最終應用可能是成功的)。這是平臺的服務性決定的。技術(shù)密度
平臺的概念平臺是一個意義很廣泛的詞,要準確的定義平臺不是件容易的事。在嵌入式系統(tǒng)中的開發(fā)平臺具有如下特點:層次性服務性規(guī)范性通用性技術(shù)密度
平臺特別是商業(yè)平臺通常由相關(guān)領(lǐng)域的專家建立。這是因為往往需要適應不同的應用的要求,所以其需要的技術(shù)含量是很高的。應用程序應用程序接口電路板元器件平臺的例子層次性服務性規(guī)范性通用性技術(shù)密度
本章重點介紹該層8.1如何建立嵌入式系統(tǒng)開發(fā)平臺使用平臺開發(fā)的優(yōu)勢應用程序接口這個嵌入式軟件開發(fā)平臺的提出和應用是因為其能夠解決當前及今后的嵌入式開發(fā)過程中出現(xiàn)的一些矛盾。以下是使用嵌入式軟件開發(fā)平臺(API)開發(fā)的優(yōu)點:縮短開發(fā)時間降低對開發(fā)人員的要求降低開發(fā)成本增加穩(wěn)定性和可靠性降低軟件對硬件變化的敏感性不適合使用平臺開發(fā)的場合雖然使用平臺開發(fā)有很多優(yōu)點,但其也不是萬能的。有一些場合并不適合使用平臺開發(fā),這些場合主要有以下幾種:極大批量的產(chǎn)品這種產(chǎn)品往往要求硬件成本和生產(chǎn)成本最低化。而使用平臺開發(fā)不可避免帶來資源占用的增加,反映到硬件上就是成本的增加。有時這種增加是不可接受的。這種情況不適合用平臺開發(fā)。沒有合適的平臺但產(chǎn)品需要盡快上市時開發(fā)平臺是需要時間的,甚至比當前的項目的時間更長。但如果后續(xù)有類似的產(chǎn)品,則還是建議開發(fā)者逐步建立起自己的開發(fā)平臺,這會對以后所有的項目帶來好處。需要極度榨取硬件性能的場合除了極大批量的產(chǎn)品需要極度榨取硬件性能外,估計只有科學研究和一些一件一件制造的高價值產(chǎn)品(如巨型機)需要這樣做了,在普通的企業(yè)中應該不容易見到。建立開發(fā)平臺的方法1.選擇操作系統(tǒng)操作系統(tǒng)(OS)是一個基礎(chǔ)的軟件平臺。因此,建立軟件開發(fā)平臺(自己的API)首先需要選擇一個合適的操作系統(tǒng)。操作系統(tǒng)的選擇與應用相關(guān)的,但對于嵌入式系統(tǒng)一般需要選擇嵌入式操作系統(tǒng)。2.制定API規(guī)范及應用程序編寫規(guī)范有了操作系統(tǒng),就可以制訂API規(guī)范和程序編寫規(guī)范了。這些規(guī)范一部分已經(jīng)被操作系統(tǒng)規(guī)定好了,另一部分需要自己制訂。建議這些規(guī)范盡量靠近與已存在的事實標準,以減少學習時間。3.獲取成熟的軟件模塊并修改適合指定的規(guī)范開發(fā)人員可以通過各種途徑獲取成熟的軟件模塊,還可以獲取一些商業(yè)和自由的軟件模塊。這些軟件模塊不一定適合自己的規(guī)范,這就需要對這些軟件模塊進行進一步的修改或包裝以適應自己的規(guī)范。4.編寫自己的軟件模塊通過外部途徑不一定能夠獲取所有必須的軟件模塊,此時就需要自己編寫軟件模塊了。
編寫自己的軟件模塊
因為開發(fā)平臺基于操作系統(tǒng),所以很可能多個任務和/或同時訪問同一個API函數(shù)。這就需要API函數(shù)必須是可重入的。這里主要介紹如何使這些函數(shù)可重入,和其它一些內(nèi)容。1.使用任務2.禁止然后允許中斷3.使用信號量4.使用數(shù)據(jù)隊列5.禁止然后允許任務調(diào)度6.使用一個任務作為模塊服務器7.復合方法編寫自己的軟件模塊
因為開發(fā)平臺基于操作系統(tǒng),所以很可能多個任務和/或同時訪問同一個API函數(shù)。這就需要API函數(shù)必須是可重入的。這里主要介紹如何使這些函數(shù)可重入,和其它一些內(nèi)容。1.使用任務
有一些設備需要CPU周期為其服務,典型的是掃描顯示和掃描鍵盤??梢越o它們分配相應的任務,與用戶任務一起調(diào)度。這樣,就可以使用任何任務間通信的方法實現(xiàn)。鍵盤掃描任務顯示任務用戶任務操作系統(tǒng)內(nèi)核通信通信編寫自己的軟件模塊2.禁止然后允許中斷
有一些設備需要的訪問時間很短,如全局變量。它們可以通過禁止中斷——訪問設備——允許中斷的方式編寫軟件模塊。任務A允許中斷禁止中斷中斷服務函數(shù)全局變量編寫自己的軟件模塊3.使用信號量
一些設備需要的訪問時間比較長,使用方法2可能造成關(guān)中斷時間過長。此時可以使用信號量來編寫軟件模塊。具體過程為申請信號量——訪問設備——發(fā)送信號量。信號量訪問獨享資源之前申請信號量其它任務申請信號量受阻,不能訪問獨享資源獨享資源任務A任務B任務C信號量信號量申請成功后,可以訪問獨享資源編寫自己的軟件模塊4.使用數(shù)據(jù)隊列
有一些設備具有自己的中斷,典型的是串口輸出??梢岳孟㈥犃袑⒂脩羧蝿招枰姆胀ㄟ^消息隊列排隊、緩沖起來,利用中斷功能依次服務。任務A任務B任務C中斷服務函數(shù)
數(shù)據(jù)隊列編寫自己的軟件模塊5.禁止然后允許任務調(diào)度
當中斷服務程序不可能訪問這個資源時,可以使用本方法避免實現(xiàn)函數(shù)重入。但是不推薦用戶使用此方法。任務A允許任務切換禁止任務切換中斷服務函數(shù)獨享資源編寫自己的軟件模塊6.使用一個任務作為模塊服務器
當一個軟件模塊十分復雜,使用上述方法難以保證API函數(shù)可重入性時,或軟件模塊需要在單任務環(huán)境和多任務環(huán)境都能夠使用時,可以依照單任務的方式編寫,然后編寫一個任務作為服務器,由這個服務器直接操作這個軟件模塊,而其它的任務通過消息隊列等方式與之通訊,把需要的操作提交給服務器,而服務器通過消息郵箱等方式返回操作結(jié)果。服務器任務任務A任務B...任務N軟件包
數(shù)據(jù)隊列編寫自己的軟件模塊6.使用一個任務作為模塊服務器
當一個軟件模塊十分復雜,使用上述方法難以保證API函數(shù)可重入性時,或軟件模塊需要在單任務環(huán)境和多任務環(huán)境都能夠使用時,可以依照單任務的方式編寫,然后編寫一個任務作為服務器,由這個服務器直接操作這個軟件模塊,而其它的任務通過消息隊列等方式與之通訊,把需要的操作提交給服務器,而服務器通過消息郵箱等方式返回操作結(jié)果。7.復合方法
有一些驅(qū)動程序比較復雜(例如通訊協(xié)議),可以結(jié)合兩種或兩種以上的方法實現(xiàn)。取得隊列中已存儲數(shù)據(jù)的數(shù)目NOT_INIT_MODEM如何建立嵌入式系統(tǒng)開發(fā)平臺4MODEM接口模塊而網(wǎng)絡是目前分布最廣的廉價通訊網(wǎng)絡。這些控制單元可以是另一個嵌入式系統(tǒng),也可以是PC機。在嵌入式系統(tǒng)中的開發(fā)平臺具有如下特點:注:API函數(shù)的具體使用方法,請參看相關(guān)手冊。當中斷服務程序不可能訪問這個資源時,可以使用本方法避免實現(xiàn)函數(shù)重入。QueueWrite越高層次的平臺越容易使用,對使用者的要求也就越低。這里主要介紹如何使這些函數(shù)可重入,和其它一些內(nèi)容。在實際應用中,嵌入式系統(tǒng)和其它控制單元的通信可能不局限于一個小的地理范圍,如跨城市通訊甚至跨洲通訊。4MODEM接口模塊ModemDiaDownGetModemState編寫自己的軟件模塊編寫軟件模塊由一個要注意的地方是:必須把與硬件相關(guān)的部分和與硬件無關(guān)的部分分開。這可以通過把與硬件相關(guān)的部分放在驅(qū)動程序中實現(xiàn)。這樣,硬件變化時只需要重新編寫驅(qū)動程序即可。驅(qū)動程序也可以分層實現(xiàn)。也可以通過配置實現(xiàn),不過這有時不太容易實現(xiàn)。當然可以合并使用。硬件平臺A硬件平臺B硬件平臺C硬件驅(qū)動A硬件驅(qū)動B硬件驅(qū)動C軟件模塊軟件模塊軟件模塊軟件模塊應用于不同的硬件平臺時,只需要修改相應的硬件驅(qū)動第8章目錄1.如何建立嵌入式系統(tǒng)開發(fā)平臺2.數(shù)據(jù)隊列3.串口驅(qū)動接口模塊2C總線模塊總線模塊7.其它軟件模塊8.2數(shù)據(jù)隊列簡介數(shù)據(jù)隊列一般用于數(shù)據(jù)緩存,可以用來平衡速率不同的兩個部件,使快速部件無需等待慢速部件。任務A任務B數(shù)據(jù)隊列任務A產(chǎn)生信息快而短促任務B處理信息相對較慢QueueCreate通過SPI發(fā)送并接收一個數(shù)據(jù)一些設備需要的訪問時間比較長,使用方法2可能造成關(guān)中斷時間過長。取得隊列中總共可以存儲的數(shù)據(jù)數(shù)目UART0GetchLIFO(后進先出)方式發(fā)送數(shù)據(jù)這些控制單元可以是另一個嵌入式系統(tǒng),也可以是PC機。SPI接口軟件模塊包括的API函數(shù)如下所示:MODEM_CONNECT使用一個任務作為模塊服務器MODEM_CLOSE但如果后續(xù)有類似的產(chǎn)品,則還是建議開發(fā)者逐步建立起自己的開發(fā)平臺,這會對以后所有的項目帶來好處。在嵌入式系統(tǒng)中的開發(fā)平臺具有如下特點:有一些設備需要的訪問時間很短,如全局變量。NOT_INIT_MODEM如何建立嵌入式系統(tǒng)開發(fā)平臺數(shù)據(jù)隊列一般用于數(shù)據(jù)緩存,可以用來平衡速率不同的兩個部件,使快速部件無需等待慢速部件。層次性首先表現(xiàn)在平臺本身具有層次,高層的平臺是以低層平臺為基礎(chǔ)搭建起來的。8.2數(shù)據(jù)隊列簡介數(shù)據(jù)隊列一般是先入先出(FIFO)的,但本數(shù)據(jù)隊列可以配置為后入先出。本數(shù)據(jù)隊列是可配置可裁減的模塊,并且不依賴于操作系統(tǒng),可以在前后臺系統(tǒng)中使用。數(shù)據(jù)隊列使用的空間由用戶分配且由這個空間的地址唯一識別一個數(shù)據(jù)隊列。8.2數(shù)據(jù)隊列API函數(shù)數(shù)據(jù)隊列軟件模塊包括的API函數(shù)如下所示:API函數(shù)名功能簡介QueueCreate建立數(shù)據(jù)隊列QueueRead獲取隊列中的數(shù)據(jù)QueueWriteFIFO(先進先出)方式發(fā)送數(shù)據(jù)QueueWriteFrontLIFO(后進先出)方式發(fā)送數(shù)據(jù)QueueFlush清空隊列QueueNData取得隊列中已存儲數(shù)據(jù)的數(shù)目QueueSize取得隊列中總共可以存儲的數(shù)據(jù)數(shù)目API函數(shù)45673012數(shù)據(jù)隊列有效數(shù)據(jù)空間空閑數(shù)據(jù)空間QueueRead讀隊列中數(shù)據(jù)QueueWriteFIFO方式寫數(shù)據(jù)QueueWriteFrontLIFO方式寫數(shù)據(jù)注:API函數(shù)的具體使用方法,請參看相關(guān)手冊。QueueCreateQueueFlushQueueNDataQueueSize第8章目錄1.如何建立嵌入式系統(tǒng)開發(fā)平臺2.數(shù)據(jù)隊列3.串口驅(qū)動接口模塊2C總線模塊總線模塊7.其它軟件模塊8.3串口驅(qū)動簡介在實際應用中,嵌入式系統(tǒng)往往不是作為一個獨立的控制單元而存在,它還要和其它控制單元進行通信。這些控制單元可以是另一個嵌入式系統(tǒng),也可以是PC機。如果雙方均遵循同樣的通訊協(xié)議,就可以互相通訊了。8.3串口驅(qū)動API函數(shù)串口驅(qū)動軟件模塊包括的API函數(shù)如下所示:API函數(shù)名功能簡介UART0Init初始化UART0UART0Putch發(fā)送一個字節(jié)數(shù)據(jù)UART0Write發(fā)送多個字節(jié)數(shù)據(jù)UART0Getch接收一個字節(jié)數(shù)據(jù)UART0InitUART0Init8.3串口驅(qū)動API函數(shù)串口驅(qū)動軟件模塊包括的API函數(shù)如下所示:主機A主機BUART0GetchUART0PutchUART0WriteTXDRXDUART0PutchUART0WriteUART0GetchTXDRXD第8章目錄1.如何建立嵌入式系統(tǒng)開發(fā)平臺2.數(shù)據(jù)隊列3.串口驅(qū)動接口模塊2C總線模塊總線模塊7.其它軟件模塊8.4MODEM接口簡介在實際應用中,嵌入式系統(tǒng)和其它控制單元的通信可能不局限于一個小的地理范圍,如跨城市通訊甚至跨洲通訊。此時,如果需要布置專門的通訊線路則成本太高,利用現(xiàn)成的通訊網(wǎng)絡成為唯一的選擇。而網(wǎng)絡是目前分布最廣的廉價通訊網(wǎng)絡。不過,要利用網(wǎng)絡需要一種接口設備,這就是MODEM(調(diào)制解調(diào)器)。8.4MODEM接口模塊API函數(shù)MODEM接口軟件模塊包括的API函數(shù)如下所示:API函數(shù)名功能簡介ModemInit初始化MODEMGetModemState獲取MODEM狀態(tài)ModemWrite通過MODEM發(fā)送多個字節(jié)數(shù)據(jù)ModemGetch從MODEM獲取一個字節(jié)數(shù)據(jù)ModemDiaUP通過MDOEM撥號ModemDiaDown掛斷MODEM8.4MODEM接口模塊API函數(shù)所有API函數(shù)的返回值為當前MODEM的狀態(tài),如下所示:MODEM狀態(tài)狀態(tài)說明NOT_INIT_MODEM不能初始化MODEMNOT_FIND_MODEM沒有找到MODEMMODEM_CLOSE連接關(guān)閉MODEM_RING發(fā)現(xiàn)振鈴信號MODEM_CONNECT已經(jīng)與對方連接上ModemInitGetModemStateModemDiaUPModemDiaDownModemInitGetModemStateModemDiaUPModemDiaDownAPI函數(shù)ModemGetch獲取一字節(jié)數(shù)據(jù)ModemWrite發(fā)送多字節(jié)數(shù)據(jù)ModemWrite發(fā)送多字節(jié)數(shù)據(jù)ModemGetch獲取一字節(jié)數(shù)據(jù)第8章目錄1.如何建立嵌入式系統(tǒng)開發(fā)平臺2.數(shù)據(jù)隊列3.串口驅(qū)動接口模塊2C總線模塊總線模塊7.其它軟件模塊8.5I2C總線模塊簡介I2C總線由Philips公司推出,是近年來在微電子通信控制領(lǐng)域廣泛采用的一種新型總線標準。它是同步通信的一種特殊形式,具有接口線少、控制方式簡化、器件封裝形式小、通信速率較高等優(yōu)點。在主從通信中,可以有多個I2C總線器件同時接到I2C總線上,通過地址來識別通信對象。8.5I2C總線模塊簡介I2C總線通過2根線——串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)——連接到總線上的任何一個器件,每個器件都應有一個唯一的地址,而且都可以作為一個發(fā)送器或接收器。此外,器件在執(zhí)行數(shù)據(jù)傳輸時也可以被看作是主機或從機。RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2CBUS8.5I2C總線模塊API函數(shù)I2C接口軟件模塊包括的API函數(shù)如下所示:API函數(shù)名功能簡介I2cInit初始化I2C總線I2cWrite向I2C從器件寫數(shù)據(jù)I2cRead從I2C從器件讀數(shù)據(jù)8.5I2C總線模塊API函數(shù)RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2CBUSI2cWrite向從器件寫數(shù)據(jù)I2cRead讀取從器件數(shù)據(jù)I2cInit初始化I2C總線第8章目錄1.如何建立嵌入式系統(tǒng)開發(fā)平臺2.數(shù)據(jù)隊列3.串口驅(qū)動接口模塊2C總線模塊總線模塊7.其它軟件模塊8.6SPI總線模塊簡介串行外圍設備接口SPI總線技術(shù)是Motorol
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源發(fā)電項目特許經(jīng)營合同-@-4
- 2025年度新型城鎮(zhèn)化建設土地征用合同范本
- 指導司機申請書
- 2025年度塔吊設備租賃保證金管理合同
- 因病調(diào)動工作申請書
- 報關(guān)員注冊申請書
- 二零二五年度農(nóng)機具租賃行業(yè)政策研究合同
- 二零二五年度航空航天產(chǎn)業(yè)投資入股合同
- 慢性病的申請書
- 現(xiàn)代辦公文化的發(fā)展與傳承
- 2025年寬帶研究分析報告
- 建筑與市政工程第三方質(zhì)量安全巡查方案
- 二零二五版財務顧問保密與工作內(nèi)容協(xié)議3篇
- 牧場物語-礦石鎮(zhèn)的伙伴們-完全攻略
- 供電公司一把手講安全
- 管理學專業(yè):管理基礎(chǔ)知識試題庫(附含答案)
- 廣西基本醫(yī)療保險門診特殊慢性病申報表
- 小區(qū)舊樓外墻翻新修飾等工程施工技術(shù)專項方案及報價
- 部編人教版五年級下冊小學語文第八單元全套教學課件 (含口語、習作及園地課件)
- 酒店精裝修工程施工組織設計策劃方案
- 2022年三級安全教育塔吊司機類試題及答案
評論
0/150
提交評論