發表於2024-12-26
本書是係統論述ARM Cortex-M0與Cortex-M0+處理器及其編程的圖書,作者Joseph Yiu是英國ARM公司的主管工程師,著有久負盛名的暢銷圖書《ARM Cortex-M3與Cortex-M4*威指南(第3版)》(清華大學齣版社)。本書適閤的讀者對象包括:嵌入式産品設計工程師、嵌入式軟件開發人員、電子愛好者以及學習嵌入式係統課程(ARM Cortex-M0與Cortex-M0+)的高年級本科生及研究生等。作者提供瞭詳實的配書工程源文件(見封麵下載地址)。
l 深度剖析係統模型、指令集以及中斷處理,以利於理解ARM Cortex-M0與Cortex-M0+的工作方式;
l 綜閤運用匯編語言和C語言實現的豐富的ARM Cortex-M0與Cortex-M0+編程案例,有助於快速動手實踐;
l 係統論述軟件的開發流程,並以常用軟件開發工具為例,介紹程序設計的實例及如何定位程序代碼問題和軟件移植等方麵的知識;
l 全麵揭秘從其他架構處理器進行軟件移植的方法,包括ARM7TDMI、ARM Cortex-M3以及8051微控製器移植的實例;
l 深入解析Cortex-M0和Cortex-M0+處理器架構特性的差異(如非特權執行等級、嚮量錶重定位);
l 細緻分析瞭Cortex-M0+處理器的優勢,比如新的單周期I/O接口、更優的能耗效率、更高的性能以及微跟蹤緩衝(MTB)特性;
l 詳盡介紹瞭軟件開發工具方麵的新內容,如Keil MDK版本5、IAR Embedded Workbench for ARM、ARM gcc、CooCox及mbed使用示例;
l 提供瞭基於CMSIS-RTOS API的Keil RTX實時操作係統的新實例;
l 提供瞭Cortex-M0和Cortex-M0+微控製器使用實例,包括Freescale Freedom闆(FRDM-KL25Z)、STM32F0 Discovery、STM32L0 Discovery和NXP LPC1114(DIP封裝)麵包闆等。
本書是ARM公司微控製器係統級設計專傢Joseph Yiu的作品。本書全麵係統論述Cortex-M0與Cortex-M0+的內核、體係結構、指令集、編譯器、程序設計及軟件移植。全書共23章,近700頁。深度剖析係統模型、指令集以及中斷處理,以利於理解ARM Cortex-M0與Cortex-M0+的工作方式;綜閤運用匯編語言和C語言實現的豐富的ARM Cortex-M0與Cortex-M0+編程案例,有助於快速動手實踐;係統論述軟件的開發流程,並以常用軟件開發工具為例,介紹程序設計的實例及如何定位程序代碼問題和軟件移植等方麵的知識;全麵揭秘從其他架構處理器進行軟件移植的方法,包括ARM7TDMI、ARM Cortex-M3以及8051微控製器移植的實例;深入解析Cortex-M0和Cortex-M0+處理器架構特性的差異(如非特權執行等級、嚮量錶重定位);細緻分析瞭Cortex-M0+處理器的優勢,比如新的單周期I/O接口、更優的能耗效率、更高的性能以及微跟蹤緩衝(MTB)特性;詳盡介紹瞭軟件開發工具方麵的新內容,如Keil MDK版本5、IAR Embedded Workbench for ARM、ARM gcc、CooCox及mbed的實例。另外,為便於讀者學習,全書提供瞭完整的案例源代碼!
Joseph Yiu 英國ARM公司資深專傢,12年半導體行業從業經曆(在ARM公司工作15年以上)。曾參與多個處理器設計項目,包括ARM Cortex-M3和Cortex-M0,並參與瞭多種ARM IP(知識産權)産品的開發。Joseph Yiu為微控製器係統級設計專傢,並涉獵瞭諸多相關領域,包括ARM Cortex-M係列微控製器軟件開發、微控製器市場以及片上係統設計技術。其他代錶性著作有《The Definitive Guide to the ARM Cortex-M3, 2nd Edition》、《The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors, 3rd Edition》(中文翻譯版均由清華大學齣版社齣版發行)。
譯者序1
推薦序3
前言5
緻謝7
術語和縮寫9
本書約定13
第1章概論
1.1歡迎來到嵌入式處理器的世界
1.1.1處理器有什麼作用
1.1.2處理器、CPU、內核、微控製器及其命名
1.1.3嵌入式係統的編程
1.1.4學習微控製器需要瞭解什麼
1.2理解處理器的類型
1.2.1處理器為什麼有很多種類
1.2.2ARM處理器傢族概述
1.2.3模糊邊界
1.2.4ARM Cortex�睲處理器係列
1.2.5ARM Cortex�睲0和Cortex�睲0+處理器簡介
1.2.6從Cortex�睲0處理器到Cortex�睲0+處理器
1.2.7Cortex�睲0和Cortex�睲0+處理器的應用
1.3微控製器內部有什麼
1.3.1微控製器內常見部件
1.3.2微控製器應用的處理器的特點
1.3.3矽片技術
1.4ARM介紹
1.4.1ARM生産芯片嗎
1.4.2ARM的産品是什麼
1.4.3芯片廠商為什麼不設計自己的處理器
1.4.4ARM生態係統有什麼特殊之處
1.5ARM處理器和ARM微控製器方麵的資源
1.5.1ARM主頁
1.5.2微控製器廠商提供的資源
1.5.3工具廠商提供的資源
1.5.4其他資源
第2章技術綜述
2.1Cortex�睲0和Cortex�睲0+處理器
2.2模塊框圖
2.3典型係統
2.4什麼是ARMv6�睲架構
2.5Cortex�睲處理器間的軟件可移植性
2.6ARM Cortex�睲0和Cortex�睲0+處理器的優勢
2.6.1低功耗和能耗效率
2.6.2高代碼密度
2.6.3低中斷等待和確定行為
2.6.4易於使用
2.6.5係統級特性和OS支持特性
2.6.6調試特性
2.6.7可配置性、靈活性和可擴展性
2.6.8軟件可移植性和可重用性
2.6.9産品選擇的多樣性
2.6.10生態係統支持
2.7Cortex�睲0和Cortex�睲0+處理器的應用
2.7.1微控製器
2.7.2傳感器
2.7.3傳感器集綫器
2.7.4電源管理IC
2.7.5ASSP和ASIC
2.7.6片上係統中的子係統
2.8為什麼要在微控製器應用中使用32位處理器
2.8.1性能
2.8.2代碼密度
2.8.3ARM架構的其他優勢
2.8.4軟件可重用性
第3章嵌入式軟件開發介紹
3.1歡迎進入嵌入式係統編程
3.2基本概念
3.2.1復位
3.2.2時鍾
3.2.3電壓
3.2.4輸入和輸齣
3.2.5嵌入式軟件程序流程介紹
3.2.6編程語言選擇
3.3ARM Cortex�睲編程介紹
3.3.1C編程數據類型
3.3.2用C訪問外設
3.3.3程序映像內有什麼
3.3.4SRAM中的數據
3.3.5微控製器啓動時會發生什麼
3.4軟件開發流程
3.5Cortex微控製器軟件接口標準
3.5.1CMSIS介紹
3.5.2CMSIS�睠ORE所做的標準化
3.5.3CMSIS�睠ORE的組織
3.5.4使用CMSIS�睠ORE
3.5.5CMSIS的優勢
3.6軟件開發的其他信息
第4章架構
4.1ARMv6�睲架構綜述
4.1.1架構的含義
4.1.2ARMv6�睲架構背景
4.2編程模型
4.2.1操作模式和狀態
4.2.2寄存器和特殊寄存器
4.2.3APSR的行為
4.3存儲器係統
4.3.1概述
4.3.2單周期I/O接口
4.3.3存儲器保護單元
4.4棧存儲操作
4.5異常和中斷
4.6嵌套嚮量中斷控製器
4.6.1靈活的中斷管理
4.6.2嵌套中斷支持
4.6.3嚮量異常入口
4.6.4中斷屏蔽
4.7係統控製塊
4.8調試係統
4.9程序映像和啓動流程
第5章指令集
5.1指令集是什麼
5.2ARM和Thumb指令集背景
5.3匯編基礎
5.3.1匯編語法一覽
5.3.2後綴的使用
5.3.3統一匯編語言(UAL)
5.4指令列錶
5.4.1處理器內傳送數據
5.4.2存儲器訪問
5.4.3棧存儲訪問
5.4.4算術運算
5.4.5邏輯運算
5.4.6移位和循環移位運算
5.4.7展開和順序反轉運算
5.4.8程序流控製
5.4.9存儲器屏障指令
5.4.10異常相關指令
5.4.11休眠模式特性相關指令
5.4.12其他指令
5.5僞指令
第6章指令使用示例
6.1概述
6.2程序控製
6.2.1if�瞭hen�瞖lse
6.2.2循環
6.2.3跳轉指令
6.2.4跳轉指令的典型用法
6.2.5函數調用和函數返迴
6.2.6跳轉錶
6.3數據訪問
6.3.1簡單數據訪問
6.3.2使用存儲器訪問指令的例子
6.4數據類型轉換
6.4.1數據大小的轉換
6.4.2大小端轉換
6.5數據處理
6.5.164位/128位加法
6.5.264位/128位減法
6.5.3整數除法
6.5.4無符號整數開方根
6.5.5位和位域計算
第7章存儲器係統
7.1微控製器中的存儲器係統
7.2Cortex�睲0和Cortex�睲0+處理器中的總綫係統
7.3存儲器映射
7.3.1概述
7.3.2係統級設計
7.4程序存儲器、Bootloader和存儲器重映射
7.4.1程序存儲器和Bootloader
7.4.2存儲器映射
7.5數據存儲器
7.6小端和大端支持
7.7數據類型
7.8存儲器屬性和存儲器訪問權限
7.9硬件行為對編程的影響
7.9.1數據對齊
7.9.2訪問非法地址
7.9.3多加載和存儲指令的使用
7.9.4等待狀態
第8章異常和中斷
8.1異常和中斷的含義
8.2Cortex�睲0和Cortex�睲0+處理器內的異常類型
8.2.1概述
8.2.2不可屏蔽中斷
8.2.3HardFault
8.2.4SVC
8.2.5可掛起的係統調用
8.2.6係統節拍
8.2.7中斷
8.3NVIC簡介
8.4異常優先級定義
8.5嚮量錶
8.6異常流程概述
8.6.1接受異常
8.6.2壓棧和齣棧
8.6.3異常返迴指令
8.6.4末尾連鎖
8.6.5延遲到達
8.7EXC_RETURN
8.8用於中斷控製的NVIC控製寄存器
8.8.1NVIC控製寄存器概述
8.8.2中斷使能和清除使能
8.8.3中斷掛起和清除掛起
8.8.4中斷優先級
8.9異常屏蔽寄存器(PRIMASK)
8.10中斷輸入和掛起行為
8.10.1簡單中斷處理
8.10.2簡單的脈衝中斷處理
8.10.3中斷掛起狀態在得到服務前取消
8.10.4外設在確認中斷請求時清除掛起狀態
8.10.5ISR完成後中斷請求保持為高
8.10.6進入ISR前産生瞭多個中斷請求脈衝
8.10.7在ISR執行期間産生瞭中斷請求脈衝
8.10.8已禁止中斷的中斷請求確認
8.11異常入口流程
8.11.1壓棧
8.11.2取齣嚮量並更新PC
8.11.3更新寄存器
8.12異常退齣流程
8.12.1寄存器齣棧
8.12.2從返迴地址取指並執行
8.13中斷等待
第9章係統控製和低功耗特性
9.1係統控製寄存器簡介
9.2SCB中的寄存器
9.2.1SCB中的寄存器列錶
9.2.2CPU ID寄存器
9.2.3用於係統異常管理的控製寄存器
9.2.4嚮量錶偏移寄存器
9.2.5應用中斷和復位控製寄存器
9.2.6係統控製寄存器
9.2.7配置和控製寄存器
9.2.8係統處理控製和狀態寄存器
9.3使用自復位特性
9.4使用嚮量錶重定位特性
9.5低功耗特性
9.5.1概述
9.5.2休眠模式
9.5.3等待事件和等待中斷
9.5.4喚醒條件
9.5.5退齣時休眠特性
9.5.6喚醒中斷控製器
第10章操作係統支持特性
10.1支持OS的特性概述
10.2嵌入式係統的操作係統介紹
10.3SysTick定時器
10.3.1SysTick寄存器
10.3.2設置SysTick
10.3.3SysTick用於時間測量
10.3.4將SysTick用作單發定時器
10.4進程棧和PSP
10.5SVCall異常
10.6PendSV
10.7高級話題: 在編程中使用SVC和PendSV
10.7.1使用SVC異常
10.7.2使用PendSV異常
10.8高級話題: 實際的上下文切換
第11章錯誤處理
11.1錯誤異常概述
11.2錯誤是如何産生的
11.3分析錯誤
11.4意外切換至ARM狀態
11.5實際應用中的錯誤處理
11.6軟件開發期間的錯誤處理
11.7鎖定
11.7.1鎖定的原因
11.7.2鎖定期間發生瞭什麼
11.8避免鎖定
11.9和ARMv7�睲架構中錯誤處理的對比
第12章存儲器保護單元
12.1MPU是什麼
12.2MPU適用的情形
12.3技術介紹
12.4MPU寄存器
12.4.1MPU類型寄存器
12.4.2MPU控製寄存器
12.4.3MPU區域編號寄存器
12.4.4MPU區域基地址寄存器
12.4.5MPU區域基本屬性和大小寄存器
12.5設置MPU
12.6存儲器屏障和MPU配置
12.7使用子區域禁止
12.7.1允許高效的存儲器劃分
12.7.2減少所需的區域總數
12.8使用MPU時的注意事項
12.8.1程序代碼
12.8.2數據存儲器
12.9和Cortex�睲3/M4/M7處理器的MPU間的差異
第13章調試特性
13.1軟件開發和調試特性
13.2調試接口
13.2.1JTAG和串行綫調試通信協議
13.2.2Cortex�睲處理器和CoreSight調試架構
13.2.3調試接口的設計考慮
13.3調試特性一覽
13.4調試係統
13.5暫停模式和調試事件
13.6利用MTB實現指令跟蹤
第5章指令集
5.1指令集是什麼
所有的處理器在執行所需操作時,都要執行相應的指令序列,每條指令都定義瞭一個簡單操作,例如簡單的ALU運算、對存儲器係統的數據訪問以及程序跳轉操作等。
對於處理器而言,指令是以二進製代碼的形式齣現的,並且需要由內部硬件(指令解析器)進行解析,然後解析後的指令信息纔會被轉到執行階段。簡單處理器設計最少也要支持以下類型的指令:
�r 數據處理(加法、減法等算術運算,AND、OR等邏輯運算);
�r 存儲器訪問指令;
�r 程序流控製指令(跳轉、條件跳轉以及函數調用)。
另外,ARM Cortex�睲0和Cortex�睲0+處理器中還存在以下用途的指令:
�r 異常和OS支持;
�r 訪問特殊寄存器;
�r 休眠操作;
�r 存儲器屏障。
ARM Cortex�睲處理器支持的指令集名為Thumb,而Cortex�睲0和Cortex�睲0+處理器則隻支持其中的一個子集(56條指令),這些指令多數為16位寬,隻有6個是32位的。
錶5.1列齣瞭Cortex�睲0/M0+處理器支持的基本的16位Thumb指令。
錶5.1Cortex�睲0和Cortex�睲0+處理器支持的16位Thumb指令
……
前言
從2011年開始,嵌入式係統技術有瞭很大的變化,當時本書的第一版剛好齣版。2012年,ARM發布瞭Cortex�睲0+處理器,並在2014年發布瞭Cortex�睲7。今天, Cortex�睲處理器應用廣泛,其中包括多種微控製器、混閤信號以及無綫通信芯片。
除瞭處理器設計,嵌入式軟件開發技術也有瞭一定的進步,隨著ARM Cortex�睲微控製器的廣泛應用,微控製器軟件開發人員在開發方麵也越發成熟。同時,隨著開發組件的優化,人們也在繼續改進電池壽命以及能耗效率。
有瞭這些變化,微控製器用戶需要快速適應新的技術,本書的這一版也有瞭許多新信息和內容的提升。除瞭和Cortex�睲0+處理器有關的信息外,還介紹瞭使用多種常見開發組件的例子。例如,本書詳細描述瞭微控製器低功耗特性的使用,並在一個簡單的應用中使用瞭RTOS。
由於物聯網(IoT)受到瞭越來越多的關注,且正在成為主流,越來越多的人都開始學習嵌入式編程。另外,許多高校在教學方麵,也從老式的8位和16位微控製器轉嚮瞭ARM Cortex�睲等32位處理器。因此,本書中的許多部分都進行瞭重新編寫,並且還加入瞭許多基本的例子,以滿足初學者、學生或業餘愛好者的需求。
當然,專業嵌入式軟件開發人員、研究人員或半導體産品設計人員等許多讀者都希望看到一些更加深入的信息,為瞭滿足這些人的需求,本書還增加瞭不少技術細節以及高級應用示例。
希望你能從本書中學到東西,並在下一個項目中使用Cortex�睲處理器時找到樂趣。
學習資源下載地址: http://book
清華開發者書庫:ARM Cortex-M0與Cortex-M0+權威指南(第2版) 下載 mobi epub pdf txt 電子書 格式
清華開發者書庫:ARM Cortex-M0與Cortex-M0+權威指南(第2版) 下載 mobi pdf epub txt 電子書 格式 2024
清華開發者書庫:ARM Cortex-M0與Cortex-M0+權威指南(第2版) 下載 mobi epub pdf 電子書好
評分紙質不錯 字跡清楚
評分good
評分東西不錯,書是正版,快遞速度快。
評分紙質不錯 字跡清楚
評分紙質不錯 字跡清楚
評分有封皮
評分good
評分此用戶未填寫評價內容
清華開發者書庫:ARM Cortex-M0與Cortex-M0+權威指南(第2版) mobi epub pdf txt 電子書 格式下載 2024