ARM Cortex微控制器教程

出版時(shí)間:2010-1  出版社:北京航空航天大學(xué)出版社  作者:馬忠梅,徐琰,葉青林 編著  頁數(shù):401  
Tag標(biāo)簽:無  

前言

  筆者從1985年初接觸單片機(jī)到現(xiàn)在已25年,親歷了我國嵌入式系統(tǒng)的發(fā)展,同時(shí)也進(jìn)行了嵌入式系統(tǒng)教學(xué)的探索。筆者1997年出版的《單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)》是國內(nèi)第1本單片機(jī)C語言圖書。該書推廣單片機(jī)編程,以C語言為主,匯編為輔,采用模塊化的編程方法。用C語言編程,程序可讀性強(qiáng)、可重用性高,提高了編程的效率。為了程序的可移植性更強(qiáng),上操作系統(tǒng)是進(jìn)一步發(fā)展的必然趨勢,但8/16位單片機(jī)上操作系統(tǒng)有其局限性。正是由于想上操作系統(tǒng),才關(guān)注到了ARM。從計(jì)算機(jī)體系結(jié)構(gòu)發(fā)展看,精簡指令集計(jì)算機(jī)(RISC)在低功耗、流水線執(zhí)行方面更具優(yōu)勢。ARM公司由于手機(jī)的火爆,已成為32位RISC處理器的事實(shí)標(biāo)準(zhǔn)。  筆者自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上耗費(fèi)了很大精力,直到計(jì)算機(jī)操作系統(tǒng)課加了Linux上機(jī)實(shí)驗(yàn),情況才好轉(zhuǎn)。但有限的理論課時(shí)和實(shí)驗(yàn)學(xué)時(shí),軟硬件很難兼顧。研究生教學(xué)一直就沒有放棄單片機(jī)。從研究生教學(xué)調(diào)查看,還是微控制器(俗稱單片機(jī),簡稱MCU)用得多。嵌入式系統(tǒng)應(yīng)用以微控制器為主。微控制器用量大,應(yīng)用面廣,已有很好的應(yīng)用基礎(chǔ)。一個(gè)MCU設(shè)計(jì)可以改造一個(gè)舊產(chǎn)品,也可以創(chuàng)造一個(gè)新產(chǎn)品。MCU對于本科生和研究生容易上手,更重要的是它集成度高,能夠便于學(xué)生學(xué)做電路板、學(xué)習(xí)硬件接口技術(shù)和學(xué)習(xí)直接面向硬件的軟件編程技術(shù),這樣才能對嵌入式軟硬件有深入的理解?! RM公司推出的Cortex-M核專門針對微控制器市場,并收購了德國的Keil公司,推出中國版的RealViewMDK開發(fā)工具。這樣原用8051單片機(jī)的用戶可以將熟悉的開發(fā)環(huán)境過渡到ARMMCU的應(yīng)用。2008年,ARM公司“微控制器市場創(chuàng)新研討會(huì)”的新理念是就支離破碎的微控制器市場,以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è)計(jì)方法。全書共8章,有嵌入式系統(tǒng)基礎(chǔ)和ARM CortexM體系結(jié)構(gòu)等理論內(nèi)容,也有TI、ST、NXP和Atmel四家公司的Cortex微控制器時(shí)鐘控制和應(yīng)用程序設(shè)計(jì)等實(shí)踐內(nèi)容,另外還包括μC/OS移植和UML設(shè)計(jì)方法。本書有兩個(gè)主要目的,一是普及高端MCU,不要再面向寄存器編程,而要使用庫函數(shù);二是體現(xiàn)Cortex MCU很好的“生態(tài)環(huán)境”,有多家廠商支持。    本教材的特點(diǎn)是取材于最新資料,總結(jié)實(shí)際競賽經(jīng)驗(yàn),實(shí)例較多,實(shí)用性較強(qiáng)。本書適用于沒有操作系統(tǒng)知識的單片機(jī)開發(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)特點(diǎn)  1.1.4 嵌入式系統(tǒng)應(yīng)用  1.1.5 實(shí)時(shí)系統(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 實(shí)時(shí)操作系統(tǒng)  1.3.3 常見的嵌入式操作系統(tǒng) 1.4 實(shí)時(shí)操作系統(tǒng)的內(nèi)核  1.4.1 任務(wù)管理  1.4.2 任務(wù)間的通信和同步  1.4.3 存儲(chǔ)器管理  1.4.4 定時(shí)器和中斷管理 習(xí)題第2章 嵌入式系統(tǒng)開發(fā)過程 2.1 嵌入式軟件開發(fā)的特點(diǎn) 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)的特點(diǎn)  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 存儲(chǔ)器和存儲(chǔ)器映射I/O 3.3 ARM基本尋址方式 3.4 Thumb2指令集說明  3.4.1 條件執(zhí)行  3.4.2 指令分類說明  3.4.3 Thumb2指令集的特點(diǎn)  3.4.4 ARM匯編語言程序設(shè)計(jì) 3.5 存儲(chǔ)器映射  3.5.1 存儲(chǔ)系統(tǒng)簡介  3.5.2 存儲(chǔ)器映射空間  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è)計(jì)方法參考文獻(xiàn)

章節(jié)摘錄

  1)消息郵箱  消息郵箱通常是內(nèi)存空間的一個(gè)數(shù)據(jù)結(jié)構(gòu)。除了包括一個(gè)代表消息的指針型變量外,每個(gè)郵箱都有相應(yīng)的正在等待的任務(wù)隊(duì)列。要得到消息的任務(wù)時(shí),如果發(fā)現(xiàn)郵箱是空的,就掛起自己,并放人到該郵箱的任務(wù)等待隊(duì)列中等待消息。通常,內(nèi)核允許用戶為任務(wù)等待消息設(shè)定超時(shí)。如果等待時(shí)間已到仍沒有收到消息,就進(jìn)入就緒態(tài),返回等待超時(shí)信息。如果消息放入郵箱中,內(nèi)核將把該消息分配給等待隊(duì)列的其中一個(gè)任務(wù)?! ?)消息隊(duì)列  消息隊(duì)列實(shí)際上是一個(gè)郵箱陣列,在消息隊(duì)列中允許存放多個(gè)消息。對消息隊(duì)列的操作和對消息郵箱的操作基本相同?! ?.任務(wù)間的同步  任務(wù)同步中也常常使用信號量。與任務(wù)通信不同的是,信號量的使用不再作為一種互斥機(jī)制,而是代表某個(gè)特定的事件是否發(fā)生。任務(wù)的同步有單向同步和多向同步兩種?! 。?)單向同步  標(biāo)志事件是否發(fā)生的信號量初始化為0。一個(gè)任務(wù)在等待某個(gè)事件時(shí),查看該事件的信號量是否為非0。另一個(gè)任務(wù)或中斷處理程序在進(jìn)行操作時(shí),當(dāng)該事件發(fā)生后,將該信號量置為1。等待該事件的任務(wù)查詢到信號量的變換,代表事件已經(jīng)發(fā)生,任務(wù)繼續(xù)自身的運(yùn)行。 ?。?)雙向同步  兩個(gè)任務(wù)之間可以通過兩個(gè)信號量進(jìn)行雙向同步。雙向同步有兩個(gè)初始化為0的信號量,每個(gè)信號量進(jìn)行一個(gè)方向的任務(wù)同步,兩信號量的同步方向是相反的。在每個(gè)方向上,信號量的操作與單向同步是完全相同的?! ?.4.3 存儲(chǔ)器管理  存儲(chǔ)器管理提供對內(nèi)存資源的合理分配和存儲(chǔ)保護(hù)功能。由于其應(yīng)用環(huán)境的特殊性,實(shí)時(shí)內(nèi)核的存儲(chǔ)器管理與一般操作系統(tǒng)的存儲(chǔ)器管理存在著很大的差異?! ⊥ǔ2僮飨到y(tǒng)的內(nèi)核,由于可供使用的系統(tǒng)資源相對比較充足,實(shí)時(shí)性能只需滿足用戶能忍耐的限度,一般在秒級,系統(tǒng)考慮的是提供更好的性能和安全機(jī)制,所以操作系統(tǒng)通常都引入虛擬存儲(chǔ)器管理?! ∏度胧綄?shí)時(shí)操作系統(tǒng)的存儲(chǔ)管理相對較為簡單。由于虛擬存儲(chǔ)器中經(jīng)常要對頁進(jìn)行換人換出操作,所以內(nèi)存中頁命中率和換入換出所耗費(fèi)的時(shí)間嚴(yán)重破壞了整個(gè)系統(tǒng)的確定性。這種存儲(chǔ)機(jī)制不能提供實(shí)時(shí)系統(tǒng)所要求的時(shí)間確定性,對于大多數(shù)嵌入式實(shí)時(shí)應(yīng)用來說,響應(yīng)和運(yùn)行時(shí)間的確定是至關(guān)重要的。對于實(shí)時(shí)應(yīng)用,一個(gè)失去時(shí)效的正確結(jié)果與錯(cuò)誤結(jié)果沒有什么本質(zhì)的不同,這就是實(shí)時(shí)內(nèi)核不采用虛擬內(nèi)存管理的原因。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    ARM Cortex微控制器教程 PDF格式下載


用戶評論 (總計(jì)6條)

 
 

  •   馬忠梅老師的書都很好。
  •   書應(yīng)該是正版,但是有些折痕,有灰,可能是最后幾本放久的緣故。還被送貨的延誤了。
  •   書很好,只是封皮有點(diǎn)臟,希望賣家以后能夠好好保管書
  •   書剛到手不久,看了看目錄,感覺挺好!
  •   看了一點(diǎn)點(diǎn),感覺還可以,先給4星吧!
  •   此書基本無用,買了后悔
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7