出版時間:2010-1 出版社:北京航空航天大學(xué)出版社 作者:馬忠梅,徐琰,葉青林 編著 頁數(shù):401
Tag標(biāo)簽:無
前言
筆者從1985年初接觸單片機到現(xiàn)在已25年,親歷了我國嵌入式系統(tǒng)的發(fā)展,同時也進行了嵌入式系統(tǒng)教學(xué)的探索。筆者1997年出版的《單片機的C語言應(yīng)用程序設(shè)計》是國內(nèi)第1本單片機C語言圖書。該書推廣單片機編程,以C語言為主,匯編為輔,采用模塊化的編程方法。用C語言編程,程序可讀性強、可重用性高,提高了編程的效率。為了程序的可移植性更強,上操作系統(tǒng)是進一步發(fā)展的必然趨勢,但8/16位單片機上操作系統(tǒng)有其局限性。正是由于想上操作系統(tǒng),才關(guān)注到了ARM。從計算機體系結(jié)構(gòu)發(fā)展看,精簡指令集計算機(RISC)在低功耗、流水線執(zhí)行方面更具優(yōu)勢。ARM公司由于手機的火爆,已成為32位RISC處理器的事實標(biāo)準(zhǔn)?! 」P者自2002年出版國內(nèi)第1本ARM圖書《ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)》后,一直致力于ARM處理器的應(yīng)用推廣工作,編寫了《ARM&Linux嵌入式系統(tǒng)教程》,在本科教學(xué)中使用。Linux的教學(xué)難度很大,一般要求學(xué)生學(xué)習(xí)過操作系統(tǒng)。最早的嵌入式系統(tǒng)課在教學(xué)生怎么用Linux上耗費了很大精力,直到計算機操作系統(tǒng)課加了Linux上機實驗,情況才好轉(zhuǎn)。但有限的理論課時和實驗學(xué)時,軟硬件很難兼顧。研究生教學(xué)一直就沒有放棄單片機。從研究生教學(xué)調(diào)查看,還是微控制器(俗稱單片機,簡稱MCU)用得多。嵌入式系統(tǒng)應(yīng)用以微控制器為主。微控制器用量大,應(yīng)用面廣,已有很好的應(yīng)用基礎(chǔ)。一個MCU設(shè)計可以改造一個舊產(chǎn)品,也可以創(chuàng)造一個新產(chǎn)品。MCU對于本科生和研究生容易上手,更重要的是它集成度高,能夠便于學(xué)生學(xué)做電路板、學(xué)習(xí)硬件接口技術(shù)和學(xué)習(xí)直接面向硬件的軟件編程技術(shù),這樣才能對嵌入式軟硬件有深入的理解?! RM公司推出的Cortex-M核專門針對微控制器市場,并收購了德國的Keil公司,推出中國版的RealViewMDK開發(fā)工具。這樣原用8051單片機的用戶可以將熟悉的開發(fā)環(huán)境過渡到ARMMCU的應(yīng)用。2008年,ARM公司“微控制器市場創(chuàng)新研討會”的新理念是就支離破碎的微控制器市場,以ARM來統(tǒng)一微控制器市場開發(fā)環(huán)境,以后微控制器的選型不再以8位、16位和32位來劃分。
內(nèi)容概要
本書是32位微控制器教材,基于ARM Cortex講述嵌入式系統(tǒng)概念、軟硬件組成、開發(fā)過程以及Cortex體系結(jié)構(gòu)和應(yīng)用程序開發(fā)設(shè)計方法。全書共8章,有嵌入式系統(tǒng)基礎(chǔ)和ARM CortexM體系結(jié)構(gòu)等理論內(nèi)容,也有TI、ST、NXP和Atmel四家公司的Cortex微控制器時鐘控制和應(yīng)用程序設(shè)計等實踐內(nèi)容,另外還包括μC/OS移植和UML設(shè)計方法。本書有兩個主要目的,一是普及高端MCU,不要再面向寄存器編程,而要使用庫函數(shù);二是體現(xiàn)Cortex MCU很好的“生態(tài)環(huán)境”,有多家廠商支持。 本教材的特點是取材于最新資料,總結(jié)實際競賽經(jīng)驗,實例較多,實用性較強。本書適用于沒有操作系統(tǒng)知識的單片機開發(fā)人員學(xué)習(xí)嵌入式系統(tǒng),可作為研究生和本科生嵌入式系統(tǒng)課程的教材使用。
書籍目錄
第1章 嵌入式系統(tǒng)基礎(chǔ) 1.1 嵌入式系統(tǒng)概念 1.1.1 嵌入式系統(tǒng)定義 1.1.2 嵌入式系統(tǒng)組成 1.1.3 嵌入式系統(tǒng)特點 1.1.4 嵌入式系統(tǒng)應(yīng)用 1.1.5 實時系統(tǒng) 1.2 嵌入式處理器 1.2.1 嵌入式處理器分類 1.2.2 微控制器 1.2.3 嵌入式微處理器 1.2.4 DSP處理器 1.2.5 片上系統(tǒng) 1.2.6 典型的嵌入式處理器 1.3 嵌入式操作系統(tǒng) 1.3.1 操作系統(tǒng)概念和分類 1.3.2 實時操作系統(tǒng) 1.3.3 常見的嵌入式操作系統(tǒng) 1.4 實時操作系統(tǒng)的內(nèi)核 1.4.1 任務(wù)管理 1.4.2 任務(wù)間的通信和同步 1.4.3 存儲器管理 1.4.4 定時器和中斷管理 習(xí)題第2章 嵌入式系統(tǒng)開發(fā)過程 2.1 嵌入式軟件開發(fā)的特點 2.2 嵌入式軟件的開發(fā)流程 2.3 嵌入式系統(tǒng)調(diào)試 2.4 板級支持包 習(xí)題第3章 CortexM體系結(jié)構(gòu) 3.1 ARM體系結(jié)構(gòu)概述 3.1.1 ARM體系結(jié)構(gòu)的特點 3.1.2 流水線 3.1.3 ARM處理器核 3.1.4 結(jié)構(gòu)框圖 3.1.5 典型的連接方式 3.1.6 ARM JTA調(diào)試接口 3.2 編程模型 3.2.1 Thumb2指令集體系結(jié)構(gòu)(ISA) 3.2.2 寄存器 3.2.3 工作模式和特權(quán)級別 3.2.4 CortexM3堆?! ?.2.5 數(shù)據(jù)類型 3.2.6 存儲器和存儲器映射I/O 3.3 ARM基本尋址方式 3.4 Thumb2指令集說明 3.4.1 條件執(zhí)行 3.4.2 指令分類說明 3.4.3 Thumb2指令集的特點 3.4.4 ARM匯編語言程序設(shè)計 3.5 存儲器映射 3.5.1 存儲系統(tǒng)簡介 3.5.2 存儲器映射空間 3.5.3 位綁定操作 3.6 中斷和異?! ?.6.1 異常類型 3.6.2 優(yōu)先級的定義 3.6.3 向量表 3.6.4 中斷輸入及掛起行為 3.6.5 NVIC與中斷控制 3.6.6 中斷/異常的響應(yīng)序列 3.6.7 尾鏈中斷 3.6.8 遲到異常處理 3.6.9 異常返回值 3.6.10 中斷延遲 3.7 ARM CortexM的優(yōu)勢 習(xí)題第4章 ARM CortexM微控制器第5章 片上資源的編程技術(shù)第6章 嵌入式系統(tǒng)接口及編程第7章 μC/OSII移植第8章 UML設(shè)計方法參考文獻
章節(jié)摘錄
1)消息郵箱 消息郵箱通常是內(nèi)存空間的一個數(shù)據(jù)結(jié)構(gòu)。除了包括一個代表消息的指針型變量外,每個郵箱都有相應(yīng)的正在等待的任務(wù)隊列。要得到消息的任務(wù)時,如果發(fā)現(xiàn)郵箱是空的,就掛起自己,并放人到該郵箱的任務(wù)等待隊列中等待消息。通常,內(nèi)核允許用戶為任務(wù)等待消息設(shè)定超時。如果等待時間已到仍沒有收到消息,就進入就緒態(tài),返回等待超時信息。如果消息放入郵箱中,內(nèi)核將把該消息分配給等待隊列的其中一個任務(wù)?! ?)消息隊列 消息隊列實際上是一個郵箱陣列,在消息隊列中允許存放多個消息。對消息隊列的操作和對消息郵箱的操作基本相同?! ?.任務(wù)間的同步 任務(wù)同步中也常常使用信號量。與任務(wù)通信不同的是,信號量的使用不再作為一種互斥機制,而是代表某個特定的事件是否發(fā)生。任務(wù)的同步有單向同步和多向同步兩種。 ?。?)單向同步 標(biāo)志事件是否發(fā)生的信號量初始化為0。一個任務(wù)在等待某個事件時,查看該事件的信號量是否為非0。另一個任務(wù)或中斷處理程序在進行操作時,當(dāng)該事件發(fā)生后,將該信號量置為1。等待該事件的任務(wù)查詢到信號量的變換,代表事件已經(jīng)發(fā)生,任務(wù)繼續(xù)自身的運行?! 。?)雙向同步 兩個任務(wù)之間可以通過兩個信號量進行雙向同步。雙向同步有兩個初始化為0的信號量,每個信號量進行一個方向的任務(wù)同步,兩信號量的同步方向是相反的。在每個方向上,信號量的操作與單向同步是完全相同的。 1.4.3 存儲器管理 存儲器管理提供對內(nèi)存資源的合理分配和存儲保護功能。由于其應(yīng)用環(huán)境的特殊性,實時內(nèi)核的存儲器管理與一般操作系統(tǒng)的存儲器管理存在著很大的差異?! ⊥ǔ2僮飨到y(tǒng)的內(nèi)核,由于可供使用的系統(tǒng)資源相對比較充足,實時性能只需滿足用戶能忍耐的限度,一般在秒級,系統(tǒng)考慮的是提供更好的性能和安全機制,所以操作系統(tǒng)通常都引入虛擬存儲器管理?! ∏度胧綄崟r操作系統(tǒng)的存儲管理相對較為簡單。由于虛擬存儲器中經(jīng)常要對頁進行換人換出操作,所以內(nèi)存中頁命中率和換入換出所耗費的時間嚴(yán)重破壞了整個系統(tǒng)的確定性。這種存儲機制不能提供實時系統(tǒng)所要求的時間確定性,對于大多數(shù)嵌入式實時應(yīng)用來說,響應(yīng)和運行時間的確定是至關(guān)重要的。對于實時應(yīng)用,一個失去時效的正確結(jié)果與錯誤結(jié)果沒有什么本質(zhì)的不同,這就是實時內(nèi)核不采用虛擬內(nèi)存管理的原因。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載