freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

嵌入式系統(tǒng)復習總結-資料下載頁

2024-10-28 18:58本頁面
  

【正文】 有的 Thumb 指令和編程模型與ARM指令和編程模型相對應;Thumb 子程序和 ARM 子程序就可以互相調用;Thumb 指令集中的操作數和指令地址仍為32 位 ;大多數的 Thumb指令是無條件執(zhí)行的,而幾乎所有的 ARM 指令都是有條件執(zhí)行的;Thumb不是一個完整的體系結構,不能指望處理器只執(zhí)行Thumb指令集而不支持ARM指令集。(2)Thumb 指令與ARM 指令的時間效率和空間效率關系 :Thumb 代碼所需的存儲空間約為ARM 代碼的60%~70%;Thumb 代碼使用的指令數比ARM 代碼多約30%~40%;若使用32 位的存儲器,ARM 代碼比Thumb 代碼快約40%;若使用16 位的存儲器,Thumb 代碼比ARM 代碼快約40%~50%;與ARM 代碼相比較,使用Thumb 代碼,存儲器的功耗會降低約30%。五、典型的ARM核芯片結構:LPC2000系列處理器結構:LPC2000系列微控制器將ARM7TDMI配置為小端模式;內部存儲器包括無等待SRAM和Flash;系統(tǒng)功能包括維持芯片工作的一些基本功能,如系統(tǒng)時鐘、復位等;向量中斷控制器(VIC)可減少中斷響應時間,最多可管理32個中斷請求;外部存儲器控制器(EMC)支持4個BANK的外部SRAM和Flash,每個BANK最大16MB;I2C串行接口為標準I2C總線接口,支持最大速度400KB;具有兩個完全獨立的SPI控制器;具有兩個UART接口,均包含16字節(jié)的接受/發(fā)送FIFO,內置波特率發(fā)生器,UART1具調制解調接口功能;LPC2119/2129/2290/2292包含CAN總線接口;看門狗定時器;通用IO,可受5V電壓,每個IO口可獨立設置為輸入輸出模式;PWMO脈寬調制器,可靈活設置,以適應不同的場合,單邊沿/雙邊沿輸出方式,頻率、占空比可調;實時時鐘,具可編程積存時鐘分頻器,以適應不同的晶振頻率。LPC處理器的啟動過程:一般在32位ARM應用系統(tǒng)中,大多數采用C語言進行軟件編程,但是在運行應用代碼前需要進行系統(tǒng)初始化,常用一匯編文件做啟動代碼,它可以實現異常向量表定義、堆棧初始化、系統(tǒng)變量初始化、地址重映射等操作。時鐘編程方法存儲器映射控制原理:用于控制地址范圍為0x00000x0037存儲區(qū)域的重新映射,該區(qū)域存放著異常向量表,發(fā)生異常時,程序總是跳轉到地址為0x00000x0037的對應入口處,而實際異常向量表可能存在內部Flash、SRAM、Boot Block,為了讓運行在不同存儲器空間的程序對異常進行控制,可通過存儲器映射控制,將位于不同存儲空間的異常向量表重新映射到固定地址0x00000x0037處,以實現異常向量表的來源控制,通過設置存儲器映射控制寄存器的值來實現。流程:內核產生的地址0x00000x0037,經過地址轉換器后,映射到物理存儲器的地址空間(0x800000000x80000037(外部存儲器)/0x7FFFE0000x7FFFE037(Boot Block)/0x400000000x40000037(內部SRAM)/0x000000000x00000037(內部Flash))。存儲器加速模塊MAM外部存儲器控制器(EMC):EMC模塊為AHB系統(tǒng)總線和外部存儲器件之間提供了一個接口;EMC支持4個獨立配置的存儲器組,每個最大支持16MB,支持字節(jié)定位讀取。GPIO:特性:可獨立控制每個GPIO的方向(輸入、輸出模式);可獨立設置每個GPIO的輸出狀態(tài);所有GPIO復位后,默認為輸入態(tài)。IOxPIN[031]: GPIO引腳值;IOxDIR[031]:方向控制位,寫入1-輸出,0-輸入; IOxSET[031]: 輸出置位,寫入1-高電平,0-無效;IOxCLR[031]:寫入1-清零,0-無效。示例::PINSEL0 amp。=0xFFFFFFFC。//設置引腳連接模塊, IO0DIR |=0x00000001。IO0SET=0x00000001。UART0六、實時操作系統(tǒng)概念及操作系統(tǒng)原理:概念:(1)實時系統(tǒng):(指任務要求在限定時間內完成)如果邏輯和時序出現偏差將會引起嚴重后果的系統(tǒng)。(2)軟實時系統(tǒng):系統(tǒng)的宗旨是使各個任務運行得越快越好,并不要求限定某一任務必須在多長時間內完成。(3)硬實時系統(tǒng):各任務不僅要執(zhí)行無誤而且要做到準時。(4)前后臺系統(tǒng):或超循環(huán)系統(tǒng),應用程序是一個無限的循環(huán),循環(huán)中調用相應的函數完成相應的操作,這部分可以看成后臺行為。中斷服務程序處理異步事件,這部分可以看成前臺行為。后臺也可以叫做任務級。前臺也叫中斷級。時間相關性很強的關鍵操作一定是靠中斷服務來保證的。(5)代碼的臨界段:也稱為臨界區(qū),指處理時不可分割的代碼。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。為確保臨界段代碼的執(zhí)行,在進入臨界段之前要關中斷,而臨界段代碼執(zhí)行完以后要立即開中斷。(6)資源:任何為任務所占用的實體都可稱為資源。資源可以是輸入輸出設備或一個變量,結構,數組等。(7)共享資源:可以被一個以上任務使用的資源叫做共享資源。為了防止數據被破壞,每個任務在與共享資源打交道時,必須獨占該資源,這叫做互斥。(8)多任務:多任務運行的實現實際上是靠CPU(中央處理單元)在許多任務之間轉換、調度。CPU只有一個,輪番服務于一系列任務中的某一個。多任務運行使CPU的利用率得到最大的發(fā)揮,并使應用程序模塊化。在實時應用中,多任務化的最大特點是,開發(fā)人員可以將很復雜的應用程序層次化。使用多任務,應用程序將更容易設計與維護。(9)任務狀態(tài):典型地、每個任務都是一個無限的循環(huán)。每個任務都處在以下5種狀態(tài)之一的狀態(tài)下,這5種狀態(tài)是休眠態(tài),就緒態(tài)、運行態(tài)、掛起態(tài)(等待某一事件發(fā)生)和被中斷態(tài)。休眠態(tài)相當于該任務駐留在內存中,但并不被多任務內核所調度。就緒意味著該任務已經準備好,可以運行了,但由于該任務的優(yōu)先級比正在運行的任務的優(yōu)先級低,還暫時不能運行。運行態(tài)的任務是指該任務掌握了CPU的控制權,正在運行中。掛起狀態(tài)也可以叫做等待事件態(tài)WAITING,指該任務在等待,等待某一事件的發(fā)生,(例如等待某外設的I/O操作,等待某共享資源由暫不能使用變成能使用狀態(tài),等待定時脈沖的到來或等待超時信號的到來以結束目前的等待,等等)。最后,發(fā)生中斷時,CPU提供相應的中斷服務,原來正在運行的任務暫不能運行,就進入了被中斷狀態(tài)。(10)任務切換:當多任務內核決定運行另外的任務時,它保存正在運行任務的當前狀態(tài),即CPU寄存器中的全部內容。這些內容保存在任務的當前狀況保存區(qū),也就是任務自己的棧區(qū)之中。入棧工作完成以后,就是把下一個將要運行的任務的當前狀況從該任務的棧中重新裝入CPU的寄存器,并開始下一個任務的運行。(11)內核:多任務系統(tǒng)中,內核負責管理各個任務,或者說為每個任務分配CPU時間,并且負責任務之間的通訊。內核提供的基本服務是任務切換。(12)調度:是內核的主要職責之一,就是要決定該輪到哪個任務運行了。多數實時內核是基于優(yōu)先級調度法的。每個任務根據其重要程度的不同被賦予一定的優(yōu)先級。基于優(yōu)先級的調度法指,CPU總是讓處在就緒態(tài)的優(yōu)先級最高的任務先運行。(13)不可剝奪型內核:要求每個任務自我放棄CPU的所有權。異步事件還是由中斷服務來處理。中斷服務可以使一個高優(yōu)先級的任務由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務以后控制權還是回到原來被中斷了的那個任務,直到該任務主動放棄CPU的使用權時,那個高優(yōu)先級的任務才能獲得CPU的使用權。優(yōu)點是響應中斷快;幾乎不需要使用信號量保護共享數據。缺陷在于其響應時間,高優(yōu)先級的任務已經進入就緒態(tài),但還不能運行,要等,也許要等很長時間,直到當前運行著的任務釋放CPU。無法保證系統(tǒng)的實時性。(14)可剝奪型內核:最高優(yōu)先級的任務一旦就緒,總能得到CPU的控制權。當一個運行著的任務使一個比它優(yōu)先級高的任務進入了就緒態(tài),當前任務的CPU使用權就被剝奪了。如果是中斷服務子程序使一個高優(yōu)先級的任務進入就緒態(tài),中斷完成時,中斷了的任務被掛起,優(yōu)先級高的那個任務開始運行。保證了系統(tǒng)的實時性。(15)可重入型函數:可以被一個以上的任務調用,而不必擔心數據的破壞??芍厝胄秃瘮等魏螘r候都可以被中斷,一段時間以后又可以運行,而相應數據不會丟失。可重入型函數或者只使用局部變量,即變量保存在CPU寄存器中或堆棧中。如果使用全局變量,則要予以保護。(16)時間片輪番調度法:當兩個或兩個以上任務有同樣優(yōu)先級,內核允許一個任務運行事先確定的一段時間,叫做時間額度,然后切換給另一個任務。(17)任務優(yōu)先級:是表示任務被調度的優(yōu)先程度。每個任務都有其優(yōu)先級。任務越重要,賦予的優(yōu)先級應越高。(18)靜態(tài)優(yōu)先級:應用程序執(zhí)行過程中諸任務優(yōu)先級不變,在靜態(tài)優(yōu)先級系統(tǒng)中,諸任務以及它們的時間約束在程序編譯時是已知的。(19)動態(tài)優(yōu)先級:應用程序執(zhí)行過程中,任務的優(yōu)先級是可變的,實時內核應當避免出現優(yōu)先級反轉問題。(20)優(yōu)先級反轉:優(yōu)先級高和優(yōu)先級低的任務在運行時,由于共享資源的占用問題,而出現的優(yōu)先級反轉問題,即在執(zhí)行過程中,優(yōu)先級高的任務反而要等優(yōu)先級低的任務先運行完后,釋放共享資源,才能運行。糾正的方法:提高正在使用共享資源的任務的優(yōu)先級,但耗費CPU時間;內核能自動變換任務的優(yōu)先級,稱優(yōu)先級繼承,但是UCOSII不支持。(21)任務優(yōu)先級分配:單調執(zhí)行率調度法RMS:基于哪個任務執(zhí)行的次數最頻繁,執(zhí)行最頻繁的任務優(yōu)先級最高(22)任務互斥:實現任務間通訊最簡便到辦法是使用共享數據結構,但是必須保證每個任務在處理共享數據時的排它性,以避免競爭和數據的破壞。與共享資源打交道時,使之滿足互斥條件最一般的方法有:關中斷;使用測試并置位指令TAS;禁止做任務切換;利用信號量。(23)信號量:信號量實際上是一種約定機制,用于:控制共享資源的使用權(滿足互斥條件);標志某事件的發(fā)生;使兩個任務的行為同步。注意:信號,只取兩個值0和1的信號量;計數器型,值有多種形式。對信號量只能實施三種操作:初始化(INITIALIZE),也可稱作建立(CREATE);等信號(WAIT)也可稱作掛起(PEND);給信號(SIGNAL)或發(fā)信號(POST)。信號量初始化時要給信號量賦初值,等待信號量的任務表(Waiting list)應清為空。P/V操作:P操作既是減1操作,任務執(zhí)行等待(WAIT)操作,有可能執(zhí)行P操作;V操作既是加1操作,任務以發(fā)信號操作(SIGNAL)釋放信號量。(24)死鎖:也稱作抱死,指兩個任務無限期地互相等待對方控制著的資源。最簡單的防止發(fā)生死鎖的方法是讓每個任務都:先得到全部需要的資源再做下一步的工作;用同樣的順序去申請多個資源;釋放資源時使用相反的順序。(25)同步:可以利用信號量使某任務與中斷服務同步(或者是與另一個任務同步,這兩個任務間沒有數據交換)。單向同步:任務與中斷服務之間/兩任務之間;雙向同步:兩任務之間可以用信號量同步它們的行為,兩個任務需要互相等待對方執(zhí)行,等待自身所需的事件發(fā)生(信號量),同步執(zhí)行。(26)任務間的通訊:有時很需要任務間的或中斷服務與任務間的通訊。任務間信息的傳遞有兩個途徑:通過全程變量或發(fā)消息給另一個任務。用全程變量時,必須保證每個任務或中斷服務程序獨享該變量。中斷服務中保證獨享的唯一辦法是關中斷。如果兩個任務共享某變量,各任務實現獨享該變量的辦法可以是關中斷再開中斷,或使用信號量(如前面提到的那樣)。(27)消息郵箱:通過內核服務可以給任務發(fā)送消息。典型的消息郵箱也稱作交換消息,是用一個指針型變量,通過內核服務,一個任務或一個中斷服務程序可以把一則消息(即一個指針)放到郵箱里去。同樣,一個或多個任務可以通過內核服務接收這則消息。發(fā)送消息的任務和接收消息的任務約定,該指針指向的內容就是那則消息。內核一般提供以下郵箱服務:郵箱內消息的內容初始化,郵箱里最初可以有,也可以沒有消息;將消息放入郵箱(POST);等待有消息進入郵箱(PEND);如果郵箱內有消息,就接受這則消息。如果郵箱里沒有消息,則任務并不被掛起(ACCEPT),用返回代碼表示調用結果,是收到了消息還是沒有收到消息。消息郵箱也可以當作只取兩個值的信號量來用。郵箱里有消息,表示資源可以使用,而空郵箱表示資源已被其它任務占用。(28)消息隊列:消息隊列用于給任務發(fā)消息。消息隊列實際上是郵箱陣列。通常,先進入消息隊列的消息先傳給任務,也就是說,任務先得到的是最先進入消息隊列的消息,即先進先出原則(FIFO)。然而μC/OSⅡ也允許使用后進先出方式(LIFO)。內核提供的消息隊列服務如下:消息隊列初始化。隊列初始化時總是清為空;放一則消息到隊列中去(Post);等待一則消息的到來(Pend);如果隊列中有消息則任務可以得到消息,但如果此時隊列為空,內核并不將該任務掛起(Accept)。如果有消息,則消息從隊列中取走。沒有消息則用特別的返回代碼通知調用者,隊列中沒有消息。任務的組成:代碼、TCB、私有堆棧。一個任務通常是一個無限的循環(huán),絕不會返回的,但可通過調用函數自我刪除,也可建立新任務。OS的內核原理:(1)任務狀態(tài)圖(任務狀態(tài)的切換過程):睡眠態(tài)(DORMANT)指任務駐留在程序空間之中,還沒有交給μC/OSⅡ管理,把任務交給μC/OSⅡ是通過調用下述兩個函數之一:OSTaskCreate()或OSTaskCreateExt()。當任務一旦建立,這個任務就進入就緒態(tài)準備運行。任務的建立可以是在多任務運行開始之前,也可以是動態(tài)地被一個運行著的任務建立。如果一個任務是被另一個任務建立的,而這個任務的優(yōu)先級高于建立它的那個任務,則這個剛剛建立的任務將立即得到CPU的控制權。一個任務可以通過調用OSTaskDel()返回到睡眠態(tài),或通過調用該函數讓另一個任務進入睡眠態(tài)。調用OSStart()可以啟動多任務。OSStart()函數運行進入就緒態(tài)的優(yōu)先級最高的任務。就緒的任務只有當所有優(yōu)先級高于這個任務的任務轉為等待狀態(tài),或者是被刪除了,才能進入運行態(tài)。正在運行的任務可以通過調用兩個函數之一將自身延遲一段時間,這兩個函數是OSTimeDly()或OSTimeDlyHMSM()。這個任務于是進入等待狀態(tài),等待這段時間過去,下一個優(yōu)先級最高的、并進入了就緒態(tài)的任務立刻被賦予了CPU的控制權。等待的時間過去以后,系統(tǒng)服務
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1