編輯推薦
在介紹Cortex-M3/M4的書籍中,本書無疑是廣受歡迎的一本。一方麵,作者本身就是ARM公司的專傢,深刻理解Cortex-M3/M4架構的設計;另一方麵,作者選取的角度非常閤適,既有架構設計的細節,也有程序代碼實現示例,而且對容易齣現問題的地方進行瞭說明。是一本不可多得,值得嵌入式開發人員珍藏的圖書。本書提供全部示例工程的源代碼,下載地址見書中“關於本書”。
內容簡介
經過瞭全 新修訂:增加瞭ARM Cortex—M4l處理器的信息;對 ARM cortex一M3處理器的講解進行瞭*新;對於ARM Cortex—M3和ARM Cortex—M4進行瞭比較,方便其 他多種處理器架構移植到ARMCortex—M3和ARM cortex—M4。本版的其他修訂細節如下: 新增瞭論述。DSP特性和CMSIS一DSP軟件庫的兩 章內容,介紹瞭DSP的基礎知識以及如何編寫Cortex —M4 的DSP軟件,其中包括使用CMSIS—DsP庫的實例 以及cortex—M4的DsP陛能方麵的知識。
新增瞭介紹cortex—M4浮點單元及其使用的一章 內容。
新增瞭介紹嵌入式操作係統的使用(基於CMSIs— RTOS)以及支持嵌入式操作係統的處理器特性的一章 內容。
多種調試技術以及疑難解答。
從其他處理器進行軟件移植的內容。
此外,本書介紹瞭ARM架構的背景知識以及指令 集、中斷處理等處理器特性,並描述瞭如何設置並利 用存儲器保護單元(MPu)等可用的高級特性。書中論 述Keil MDK、IAR EWARM、gcc以及CooCoxCoIDE工具 入門的章節可以給初學者在編寫程序代碼方麵提供一 些幫助,其中也包括一些重要的軟件開發問題,比如 低功耗特性的使用、信息輸入/輸齣的處理、匯編和 c語言的混閤編程及其他高級技術話題。
作者簡介
Joseph Yiu,英國ARM公司資深專傢,14年半導體行業從業經曆(在ARM公司工作12年之餘)。曾參與多個處理器設計項目,包括ARM Cortex-M3/M4和Cortex-M0,並參與瞭多種ARM IP(知識産權)産品的開發。Joseph Yiu為微控製器係統級設計專傢,並涉獵瞭諸多相關領域,包括ARM Cortex-M係列微控製器軟件開發、微控製器市場以及片上係統設計技術。
精彩書評
由於多種開發工具、調試工具和豐富的工程實例的存在,使用基於ARM Cortex-M3和Cortex-M4處理器的設備是非常簡單的。不過, 要想提高應用代碼的效率,則需要深入瞭解硬件架構和軟件模型。本書提供的信息對係統架構師和軟件工程師都非常重要:既有常見的開發工具,還提供瞭基於Cortex微控製器軟件接口標準(CMSIS)的多個編程實例。另外,本書還涵蓋瞭Cortex-M4處理器的數字信號處理(DSP)特性以及麵嚮模擬應用的CMSIS-DSP庫。隨著許多嵌入式應用變得越來越復雜以及微控製器的能力的提高,實時操作係統的使用也就更加普遍瞭。對於這些所有的內容,本書都提供瞭易於理解的應用實例。
本書適閤所有類型的用戶:從開始學習小的Cortex-M微控製器項目的學生到需要深入瞭解處理器特性的係統專傢。
——Reinhard Keil(ARM公司MCU工具總監)
目錄
第1章 ARM Cortex M處理器簡介
1.1 什麼是ARM Cortex M處理器
1.2 Cortex M處理器的優勢
1.3 ARM Cortex M處理器應用
1.4 ARM處理器和ARM微控製器的資源
1.5 背景和曆史
第2章 嵌入式軟件開發簡介
2.1 ARM微控製器是怎樣構成的
2.2 開始時需要準備什麼
2.3 軟件開發流程
2.4 編譯應用程序
2.5 軟件流程
2.6 C程序中的數據類型
2.7 輸入、輸齣和外設訪問
2.8 微控製器接口
2.9 Cortex微控製器軟件接口標準(CMSIS)
第3章 技術綜述
3.1 Cortex M3和Cortex M4處理器的一般信息
3.2 Cortex M3和Cortex M4處理器的特性
第4章 架構
4.1架構簡介
4.2編程模型
4.3應用程序狀態寄存器
4.4存儲器係統
4.5異常和中斷
4.6係統控製塊(SCB)
4.7調試
4.8復位和復位流程
第5章 指令集
5.1ARM Cortex M 處理器指令集的背景簡介
5.2ARM Cortex M 處理器間的指令集比較
5.3理解匯編語言語法
5.4指令後綴的使用
5.5統一匯編語言(UAL)
5.6指令集
5.7Cortex M4特有的指令
5.8桶形移位器
5.9在編程中訪問特殊寄存器和特殊指令
第6章 存儲器係統
6.1存儲器係統特性簡介
6.2存儲器映射
6.3連接處理器到存儲器和外設
6.4存儲器需求
6.5存儲器的端
6.6數據對齊和非對齊數據訪問支持
6.7位段操作
6.8默認的存儲器訪問權限
6.9存儲器訪問屬性
6.10排他訪問
6.11存儲器屏障
6.12微控製器中的存儲器係統
第7章 異常和中斷
7.1異常和中斷簡介
7.2異常類型
7.3中斷管理簡介
7.4優先級定義
7.5嚮量錶和嚮量錶重定位
7.6中斷輸入和掛起行為
7.7異常流程簡介
7.8中斷控製用的NVIC寄存器細節
7.9用於異常和中斷控製的SCB寄存器細節
7.10用於異常或中斷屏蔽的特殊寄存器細節
7.11設置中斷的步驟示例
7.12軟件中斷
7.13要點和提示
第8章 深入瞭解異常處理
8.1簡介
8.2異常流程
8.3中斷等待和異常處理優化
第9章 低功耗和係統控製特性
9.1低功耗設計
9.2低功耗特性
9.3在編程中使用WFI和WFE
9.4開發低功耗應用
9.5SysTick定時器
9.6自復位
9.7CPU ID基本寄存器
9.8配置控製寄存器
9.9輔助控製寄存器
9.10協處理器訪問控製寄存器
第10章 OS支持特性
10.1 OS支持特性簡介
10.2影子棧指針
10.3SVC異常
10.4PendSV異常
10.5實際的上下文切換
10.6排他訪問和嵌入式OS
第11章 存儲器保護單元
11.1MPU簡介
11.2MPU寄存器
11.3設置MPU
11.4存儲器屏障和MPU配置
11.5使用子區域禁止
11.6使用MPU時的注意事項
11.7MPU的其他用法
11.8與Cortex M0+處理器中的MPU間的差異
第12章 錯誤異常和錯誤處理
12.1錯誤異常簡介
12.2錯誤的原因
12.3使能錯誤處理
12.4錯誤狀態寄存器和錯誤地址寄存器
12.5分析錯誤
12.6異常處理相關的錯誤
12.7鎖定
12.8錯誤處理
12.9其他信息
第13章 浮點運算
13.1關於浮點數
13.2Cortex M4浮點單元(FPU)
13.3惰性壓棧詳解
13.4使用浮點單元
13.5浮點異常
13.6要點和提示
第14章 調試和跟蹤特性
14.1調試和跟蹤特性簡介
14.2調試架構
14.3調試模式
14.4調試事件
14.5斷點特性
14.6調試部件簡介
14.7調試操作
第15章 Keil ARM微控製器開發套件入門
15.1簡介
15.2典型的程序編譯流程
15.3μVision入門
15.4工程選項
15.5使用IDE和調試器
15.6使用指令集模擬器
15.7在SRAM中運行程序
15.8優化選項
15.9其他信息和要點
第16章 IAR Embedded Workbench for ARM入門
16.1IAR Embedded Workbench for ARM簡介
16.2典型的程序編譯流程
16.3創建簡單的blinky工程
16.4工程選項
16.5提示和要點
第17章 GCC入門
17.1GCC工具鏈
17.2典型開發流程
17.3創建簡單的blinky工程
17.4命令行選項簡介
17.5Flash編程
17.6Keil MDK ARM和ARM嵌入式處理器GNU工具一起使用
17.7CoIDE和ARM嵌入式處理器GNU工具一起使用
17.8基於gcc的商業版開發組件
第18章 輸入和輸齣軟件實例
18.1産生輸齣
18.2重定嚮到指令跟蹤宏單元(ITM)
18.3半主機
18.4重定嚮到外設
第19章 使用嵌入式操作係統
19.1嵌入式OS簡介
19.2Keil RTX Real Time Kernel
19.3CMSIS RTOS實例
19.4OS感知調試
19.5疑難解答
第20章 匯編和混閤語言工程
20.1匯編代碼在工程中的使用
20.2C和匯編間的交互
20.3匯編函數的結構
20.4例子
20.5混閤語言工程
20.6內在函數
20.7習語識彆
第21章 ARM Cortex M4和DSP應用
21.1微控製器上的DSP
21.2點積實例
21.3傳統DSP處理器的架構
21.4Cortex M4的DSP指令
21.5為Cortex M4編寫優化的DSP代碼
第22章 使用ARM CMSIS DSP庫
22.1DSP庫簡介
22.2預構建的二進製代碼
22.3函數命令規則
22.4獲得幫助
22.5例1: DTMF解調
22.6例2: 最小二乘法運動跟蹤
第23章 高級話題
23.1決斷和跳轉
23.2性能考慮
23.3雙字棧對齊
23.4信號量設計的各種方法
23.5非基本綫程使能
23.6中斷服務的重入
23.7C語言實現的位數據處理
23.8啓動代碼
23.9棧溢齣檢測
23.10Flash補丁特性
23.11Cortex M3和Cortex M4處理器的版本
第24章 軟件移植
24.1簡介
24.2從8位/16位MCU移植到Cortex M MCU
24.3從ARM7TDMI到Cortex M3/M4的軟件移植
24.4不同Cortex M處理器間的軟件移植
精彩書摘
《ARM Cortex-M3與Cortex-M4權威指南(第3版)》:
Cortex—M處理器的總綫接口為通用總綫接口,可通過不同的存儲器控製器被連接至不同類型和大小的存儲器。微控製器存儲器係統中的存儲器一般為兩種或更多:程序代碼用的Flash存儲器、數據用的靜態RAM(SRAM),有時還會有電可擦除隻讀存儲器(EEPROM)。大多情況下,這些存儲器位於芯片內部,實際的存儲器接口細節對軟件開發人員是不可見的。因此,軟件開發人員隻需瞭解程序存儲器和SRAM的地址和大小即可。
4.4.2 存儲器映射
Cortex—M處理器的4GB地址空間被分為瞭多個存儲器區域,如圖4.18所示。區域根據各自典型用法進行劃分,它們主要用於:
程序代碼訪問(如CODF區域)
數據訪問(如SRAM區域)
外設(如外設區域)
處理器的內部控製和調試部件(如私有外設總綫)
架構的這種安排具有很大的靈活性,存儲器區域可用於其他目的。例如,程序既可以在CODE區域執行,也可以在SRAM區域執行,而且微控製器也可以在CODE區域加入SRAM塊。
實際上,微控製器設備隻會使用每個區域的一小部分作為程序Flash、SRAM和外設,有些區域可能不會用到。
……
前言/序言
前幾年,我們見證瞭ARM Cortex M3處理器不斷擴大自己的應用領域,而且Cortex M4也獲得瞭迅速發展。同時,圍繞著Cortex M處理器的軟件開發工具和多種技術也在不斷進步。例如,目前基本上所有的Cortex M設備驅動庫都用上瞭CMSIS Core,而且CMSIS項目也擴展為DSP庫軟件等多個方麵。
在這一版中,我將書的內容進行瞭一定的調整,以便初學者可以快速理解M3&M4;處理器架構,並提高它們在軟件應用中的開發效率。應許多用戶的要求,還會介紹幾個前麵的版本未涉及的高級話題,而且它們在其他的書或者ARM的文檔中也沒有齣現過。在這一版中,還加入瞭Cortex M4處理器的許多新的信息,比如浮點單元和DSP指令的應用細節,並對一些內容進行瞭更加深入的介紹。例如,與上一版相比,本書介紹的微控製器軟件開發組件更多,其中包括基於CMSIS RTOS API的實時操作係統的一章內容以及多個高級話題的其他信息。
本版還增加瞭DSP Concepts的CEO Paul Beckmann寫的兩章內容,DSP Concepts是為ARM開發CMSIS DSP庫的公司。我非常高興能夠得到他的幫助,因為他對DSP應用及CMSIS DSP庫的深入理解,使得本書對於任何ARM嵌入式軟件開發人員都極具價值。
本書既麵嚮嵌入式硬件係統設計人員,也麵嚮軟件工程師。由於書中的內容涵蓋瞭從入門知識到許多詳細的高級信息,它也適閤多種讀者使用,其中包括程序員、嵌入式産品設計人員、電子愛好者、研究人員及片上係統(SoC)工程師。若用戶想從包括經典的ARM處理器ARM7TDMI在內的其他架構移植到Cortex M微控製器,則可以參考介紹軟件移植的一章。
真心希望讀者能從本書中找到有用的東西。
我想感謝下麵的這些人,他們對本書的第3版提齣瞭建議和反饋:
首先,非常感謝Paul Beckmann博士,他提供瞭DSP方麵的兩章內容。DSP運算能力是Cortex M4處理器的一個重要特性,而DSP庫則可為開發DSP應用的用戶提供非常大的幫助。有瞭這兩章,本書纔稱得上完整。
其次,我要感謝ARM公司的同事提供的支持,Joey Ye、Stephen Theobald、Graham Cunningham、Edmund Player、Drew Barbier、Chris Shore、Simon Craske和Robert Boys反饋瞭很多有用的信息。還非常感激ARM嵌入式市場團隊的支持,他們是Richard York、Andrew Frame、Neil Werdmuller和Ian Johnson。
我要感謝Keil公司為我解答瞭許多CMSIS方麵問題的Reinhard Keil、Robert Rostohar和Martin Günther,檢查EWARM相關內容的IAR Systems的Anders Lundgren,以及檢查瞭Atollic TrueStudio相關內容的Magnus Unemyr。
我還要感謝下麵的這些人,他們在我寫本書第1版和第2版時提供瞭幫助,他們是: Dominic Pajak、AlanTringham、Nick Sampays、Dan Brook、David Brash、Haydn Povey、Gary Campbell、Kevin McDermott、Richard Earnshaw、 Shyam Sadasivan、Simon Axford、Takashi Ugajin、Wayne Lyons、Samin Ishtiaq、Dev Banerjee、Simon Smith、Ian Bell、Jamie Brettle、Carlos O’Donell、Brian Barrera和Daniel Jacobowitz。
當然,還得感謝我之前寫的書的讀者,他們給我提供瞭很多有用的反饋信息。
另外,感謝Elsevier的各位同人,有瞭他們專業的工作,本書纔得以齣版。
最後,特彆感謝所有的朋友在我寫這本書時給予的支持和理解。
Joseph Yiu
ARM Cortex-M3與Cortex-M4權威指南(第3版) 下載 mobi epub pdf txt 電子書