注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合ARM Cortex-M0權(quán)威指南

ARM Cortex-M0權(quán)威指南

ARM Cortex-M0權(quán)威指南

定 價(jià):¥69.00

作 者: 姚文詳(Joseph Yiu)著 吳常玉 ,魏軍 譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 計(jì)算機(jī)/網(wǎng)絡(luò) 計(jì)算機(jī)體系結(jié)構(gòu)

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787302330042 出版時(shí)間: 2013-09-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 464 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《ARM Cortex-M0權(quán)威指南》是全球首本系統(tǒng)論述ARM Cortex-M0處理器及其編程的圖書(shū)。本書(shū)既有ARM Cortex-M0處理器內(nèi)核、體系結(jié)構(gòu)及其應(yīng)用的詳盡論述,也有指令集、編譯器、軟件開(kāi)發(fā)的基本論述,甚至也涵蓋如何定位程序代碼中的錯(cuò)誤和軟件移植等方面的知識(shí)?!禔RM Cortex-M0權(quán)威指南》適合的讀者對(duì)象包括:嵌入式產(chǎn)品設(shè)計(jì)工程師、嵌入式軟件開(kāi)發(fā)人員、電子愛(ài)好者以及學(xué)習(xí)嵌入式系統(tǒng)課程(ARM Cortex-M0)的高年級(jí)本科生及研究生等。

作者簡(jiǎn)介

  Joseph Yiu,英國(guó)ARM公司資深專(zhuān)家,12年半導(dǎo)體行業(yè)從業(yè)經(jīng)歷(在ARM公司工作10年之余)。曾參與多個(gè)處理器設(shè)計(jì)項(xiàng)目,包括ARM Cortex-M3和Cortex-M0,并參與了多種ARM IP(知識(shí)產(chǎn)權(quán))產(chǎn)品的開(kāi)發(fā)。Joseph Yiu為微控制器系統(tǒng)級(jí)設(shè)計(jì)專(zhuān)家,并涉獵了諸多相關(guān)領(lǐng)域,包括ARM Cortex-M系列微控制器軟件開(kāi)發(fā)、微控制器市場(chǎng)以及片上系統(tǒng)設(shè)計(jì)技術(shù)。其他代表性著作有《The Definitive Guide to the ARM Cortex-M3, 2nd Edition》、《The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors, 3rd Edition》(中文翻譯版即將由清華大學(xué)出版社出版發(fā)行)。

圖書(shū)目錄

譯者序
推薦序
前言
致謝
本書(shū)約定
縮寫(xiě)術(shù)語(yǔ)
第1章 緒論
1.1為什么要選擇Cortex?M0
1.1.1能耗效率
1.1.2代碼密度
1.1.3易于使用
1.2Cortex?M0處理器的應(yīng)用
1.3ARM和ARM處理器的背景
1.4Cortex?M0處理器說(shuō)明和ARM體系結(jié)構(gòu)
1.5ARM處理器和ARM生態(tài)系統(tǒng)
1.6開(kāi)始使用Cortex?M0處理器
1.7本書(shū)的結(jié)構(gòu)和資源
第2章 Cortex?M0技術(shù)綜述
2.1Cortex?M0處理器簡(jiǎn)介
2.2ARM Cortex?M0處理器的特性
2.2.1系統(tǒng)特性
2.2.2應(yīng)用特性
2.2.3調(diào)試特性
2.2.4其他特性
2.3Cortex?M0處理器的優(yōu)勢(shì)
2.3.1能耗效率
2.3.28位和16位架構(gòu)的局限性
2.3.3易于使用,軟件可移植
2.3.4選擇多樣化
2.4低功耗應(yīng)用
2.4.1門(mén)數(shù)量低
2.4.2高效率
2.4.3低功耗特性
2.4.4邏輯單元提升
2.5Cortex?M0的軟件可移植性
第3章 體系結(jié)構(gòu)
3.1概述
3.2系統(tǒng)模型
3.2.1操作模式和狀態(tài)
3.2.2寄存器和特殊寄存器
3.2.3R0?R12
3.2.4R13,棧指針(SP)
3.2.5R14,鏈接寄存器(LR)
3.2.6R15,程序計(jì)數(shù)器(PC)
3.2.7xPSR,組合程序狀態(tài)寄存器
3.2.8應(yīng)用程序狀態(tài)寄存器(APSR)的行為
3.2.9PRIMASK: 中斷屏蔽特殊寄存器
3.2.10CONTROL: 特殊寄存器
3.3存儲(chǔ)器系統(tǒng)
3.4棧空間操作
3.5異常和中斷
3.6嵌套向量中斷控制器(NVIC)
3.6.1靈活的中斷管理
3.6.2支持嵌套中斷
3.6.3向量化的異常入口
3.6.4中斷屏蔽
3.7系統(tǒng)控制塊(SCB)
調(diào)試系統(tǒng)
3.8程序映像和啟動(dòng)流程
第4章 Cortex?M0編程入門(mén)
4.1嵌入式系統(tǒng)編程入門(mén)
4.1.1微控制器是如何啟動(dòng)的
4.1.2嵌入式程序設(shè)計(jì)
4.2輸入和輸出
4.3開(kāi)發(fā)流程
4.4C編程和匯編編程
4.5什么是程序映像
4.5.1向量表
4.5.2C啟動(dòng)代碼
4.5.3程序代碼
4.5.4C庫(kù)代碼
4.5.5RAM中的數(shù)據(jù)
4.6C編程: 數(shù)據(jù)類(lèi)型
4.7用C語(yǔ)言操作外設(shè)
4.8Cortex微控制器軟件接口標(biāo)準(zhǔn)(CMSIS)
4.8.1CMSIS介紹
4.8.2CMSIS中有什么是標(biāo)準(zhǔn)化的
4.8.3CMSIS的組織結(jié)構(gòu)
4.8.4使用CMSIS
4.9CMSIS的優(yōu)勢(shì)
第5章 指令集
5.1ARM和Thumb指令集的背景
5.2匯編基礎(chǔ)
5.2.1匯編語(yǔ)法一覽
5.2.2后綴的使用
5.2.3Thumb代碼和統(tǒng)一匯編語(yǔ)言(UAL)
5.2.4指令列表
5.2.5處理器內(nèi)移動(dòng)數(shù)據(jù)
5.2.6存儲(chǔ)器訪問(wèn)
5.2.7??臻g訪問(wèn)
5.2.8算術(shù)運(yùn)算
5.2.9邏輯運(yùn)算
5.2.10移位和循環(huán)操作
5.2.11展開(kāi)和順序反轉(zhuǎn)操作
5.2.12程序流控制
5.2.13存儲(chǔ)器屏障指令
5.2.14異常相關(guān)指令
5.2.15休眠模式特性相關(guān)指令
5.2.16其他指令
5.3偽指令
第6章 指令集使用實(shí)例
6.1概述
6.2程序控制
6.2.1If?Else
6.2.2循環(huán)
6.2.3進(jìn)一步了解跳轉(zhuǎn)指令
6.2.4跳轉(zhuǎn)條件的典型用法
6.2.5函數(shù)調(diào)用和函數(shù)返回
6.2.6跳轉(zhuǎn)表
6.3數(shù)據(jù)訪問(wèn)
6.3.1簡(jiǎn)單數(shù)據(jù)訪問(wèn)
6.3.2使用存儲(chǔ)器訪問(wèn)指令的例子
6.4數(shù)據(jù)類(lèi)型轉(zhuǎn)換
6.4.1數(shù)據(jù)大小的轉(zhuǎn)換
6.4.2大小端轉(zhuǎn)換
6.5數(shù)據(jù)處理
6.5.164位/128位加法
6.5.264位/128位減法
6.5.3整數(shù)除法
6.5.4無(wú)符號(hào)整數(shù)開(kāi)方根
6.5.5位和位域運(yùn)算
第7章 存儲(chǔ)器系統(tǒng)
7.1概述
7.2存儲(chǔ)器映射
7.3程序存儲(chǔ)器,Boot Loader和存儲(chǔ)器重映射
7.4數(shù)據(jù)存儲(chǔ)器
7.5支持小端和大端
7.5.1數(shù)據(jù)類(lèi)型
7.5.2硬件行為對(duì)編程的影響
7.5.3數(shù)據(jù)對(duì)齊
7.5.4訪問(wèn)非法地址
7.5.5多寄存器加載和存儲(chǔ)指令的使用
7.6存儲(chǔ)器屬性
第8章 異常和中斷
8.1什么是異常和中斷
8.2Cortex?M0處理器的異常類(lèi)型
8.2.1不可屏蔽中斷(NMI)
8.2.2硬件錯(cuò)誤
8.2.3SVC(請(qǐng)求管理調(diào)用)
8.2.4PendSV(可掛起的系統(tǒng)調(diào)用)
8.2.5系統(tǒng)節(jié)拍
8.2.6中斷
8.3異常優(yōu)先級(jí)定義
8.4向量表
8.5異常流程概述
8.5.1接受異常請(qǐng)求
8.5.2壓棧和出棧
8.5.3異常返回指令
8.5.4末尾連鎖
8.5.5延遲到達(dá)
8.6EXC_RETURN
8.7異常入口流程的細(xì)節(jié)
8.7.1壓棧
8.7.2取出向量并更新PC
8.7.3寄存器更新
8.8異常退出流程的細(xì)節(jié)
8.8.1寄存器出棧
8.8.2從返回地址取值并執(zhí)行
第9章 中斷控制和系統(tǒng)控制
9.1NVIC和系統(tǒng)控制塊特性
9.2中斷使能和清除使能
9.3中斷掛起和清除掛起
9.4中斷優(yōu)先級(jí)
9.5中斷控制的通用匯編代碼
9.5.1使能和禁止中斷
9.5.2設(shè)置和清除中斷掛起狀態(tài)
9.5.3設(shè)置中斷優(yōu)先級(jí)
9.6異常屏蔽寄存器(PRIMASK)
9.7中斷輸入和掛起行為
簡(jiǎn)單的中斷處理
9.8中斷等待
9.9系統(tǒng)異常的控制寄存器
9.10系統(tǒng)控制寄存器
9.10.1CPU ID基址寄存器
9.10.2應(yīng)用中斷和復(fù)位控制寄存器
9.10.3配置和控制寄存器
第10章 支持操作系統(tǒng)的特性
10.1支持操作系統(tǒng)的特性概述
為什么要使用嵌入式操作系統(tǒng)
10.2SysTick定時(shí)器
10.3SysTick寄存器
10.3.1設(shè)置SysTick
10.3.2SysTick用于時(shí)間測(cè)量
10.4進(jìn)程棧和進(jìn)程棧指針
10.5SVC
10.6PendSV
第11章 低功耗特性
11.1低功耗嵌入式系統(tǒng)概述
11.2Cortex?M0處理器的低功耗優(yōu)勢(shì)
11.3低功耗特性概述
11.4休眠模式
11.5等待事件(WFE)和等待中斷(WFI)
11.5.1等待事件(WFE)
11.5.2等待中斷(WFI)
11.5.3喚醒條件
11.6退出休眠特性
11.7喚醒中斷控制器
第12章 錯(cuò)誤處理
12.1錯(cuò)誤異常概述
錯(cuò)誤是怎么發(fā)生的
12.2分析錯(cuò)誤
12.3意外切換至ARM狀態(tài)
12.4實(shí)際應(yīng)用中的錯(cuò)誤處理
12.5鎖定
12.5.1鎖定的原因
12.5.2鎖定期間發(fā)生了什么
12.6防止鎖定
第13章 調(diào)試特性
13.1軟件開(kāi)發(fā)和調(diào)試特性
13.2調(diào)試特性一覽
13.3調(diào)試接口
13.4暫停模式和調(diào)試事件
13.5調(diào)試系統(tǒng)
第14章 Keil MDK入門(mén)
14.1Keil MDK介紹
14.2使用Keil MDK的
第一步
14.2.1創(chuàng)建Blinky工程
14.2.2創(chuàng)建工程代碼
14.2.3工程設(shè)置
14.2.4編譯和建立程序
14.2.5使用調(diào)試器
14.3其他的工程配置
14.3.1目標(biāo),源文件組
14.3.2編譯器和代碼生成選項(xiàng)
14.3.3模擬器
14.3.4在RAM中運(yùn)行
14.4定制Keil中的啟動(dòng)代碼
14.5使用Keil中的分散加載特性
第15章 簡(jiǎn)單應(yīng)用程序開(kāi)發(fā)
15.1使用CMSIS
15.2將SysTick用作單發(fā)定時(shí)器
15.3UART示例
15.3.1簡(jiǎn)單的輸入和輸出
15.3.2重定向
15.3.3開(kāi)發(fā)自己的輸入和輸出函數(shù)
15.4簡(jiǎn)單中斷編程
15.4.1中斷編程概述
15.4.2度盤(pán)控制接口實(shí)例
15.4.3中斷控制函數(shù)
15.5CMSIS的不同版本
第16章 匯編工程和C與匯編混合工程
16.1用匯編開(kāi)發(fā)工程
16.2匯編編程的建議規(guī)則
16.3匯編函數(shù)的結(jié)構(gòu)
16.4簡(jiǎn)單的匯編工程實(shí)例
16.5為變量分配數(shù)據(jù)空間
16.6用匯編實(shí)現(xiàn)UART
16.7其他的文字輸出函數(shù)
復(fù)雜的跳轉(zhuǎn)處理
16.8混合語(yǔ)言工程
16.8.1在匯編中調(diào)用C函數(shù)
16.8.2在C代碼中調(diào)用匯編函數(shù)
16.9嵌入?yún)R編
16.10使用特殊指令
16.11習(xí)語(yǔ)識(shí)別
第17章 在編程中使用低功耗特性
17.1概述
17.2Cortex?M0處理器的休眠模式回顧
17.3在程序中使用WFE和WFI
17.4使用掛起發(fā)送事件特性
17.5使用退出休眠特性
17.6喚醒中斷控制器(WIC)特性
17.7事件通信接口
17.8開(kāi)發(fā)低功耗應(yīng)用程序
17.9LPC111x的低功耗特性使用示例
第18章 使用SVC、PendSV和Keil RTX Kernel
18.1概述
18.2使用SVC異常
18.3使用PendSV異常
18.4使用嵌入式OS
18.5Keil RTX實(shí)時(shí)內(nèi)核
18.6OS啟動(dòng)流程
18.6.1簡(jiǎn)單的OS實(shí)例
18.6.2任務(wù)間通信
18.6.3事件通信
18.6.4互斥體
18.6.5信號(hào)量
18.6.6信箱消息
18.6.7周期時(shí)間間隔
18.6.8其他的RTX特性
18.6.9應(yīng)用程序?qū)嵗?br />第19章 ARM RealView開(kāi)發(fā)組件入門(mén)
19.1概述
19.2簡(jiǎn)單的應(yīng)用程序?qū)嵗?br />19.3使用分散加載文件
19.4用C實(shí)現(xiàn)的含有向量表的實(shí)例
19.5在RVDS中使用MicroLIB
19.6在RVDS中使用匯編進(jìn)行應(yīng)用程序開(kāi)發(fā)
19.7Flash編程
19.8使用RealView調(diào)試器進(jìn)行調(diào)試
19.9使用RealView調(diào)試器的串行線調(diào)試
19.10RVDS中的重定向
第20章 GNU C編譯器入門(mén)
20.1概述
20.2典型的開(kāi)發(fā)流程
20.3簡(jiǎn)單的C程序開(kāi)發(fā)
20.4CodeSourcery通用啟動(dòng)代碼
20.5使用用戶(hù)定義的向量表
20.6在gcc中使用Printf
20.7內(nèi)聯(lián)匯編
20.8gcc中的SVC實(shí)例
20.9硬件錯(cuò)誤異常實(shí)例
20.10Flash編程和調(diào)試
第21章 軟件移植
21.1概述
21.2ARM處理器
21.3ARM7TDMI和Cortex?M0之間的差異
21.3.1操作模式
21.3.2寄存器
21.3.3指令集
21.3.4中斷
21.4從ARM7TDMI向Cortex?M0移植軟件
21.4.1啟動(dòng)代碼和向量表
21.4.2中斷
21.4.3C程序代碼
21.4.4匯編代碼
21.4.5原子操作
21.4.6優(yōu)化
21.5Cortex?M1和Cortex?M0之間的差異
21.5.1指令集
21.5.2NVIC
21.5.3系統(tǒng)級(jí)特性
21.6在Cortex?M0和Cortex?M1之間移植軟件
21.7Cortex?M3和Cortex?M0之間的差異
21.7.1系統(tǒng)模型
21.7.2NVIC和異常
21.7.3指令集
21.7.4系統(tǒng)級(jí)特性
21.7.5調(diào)試特性
21.8在Cortex?M0和Cortex?M3之間移植軟件
21.9在Cortex?M0和Cortex?M4處理器之間移植軟件
21.10從8位機(jī)/16位機(jī)往Cortex?M0移植程序
21.10.1通用改動(dòng)
21.10.2存儲(chǔ)器需求
21.10.38位機(jī)和16位機(jī)不再適用的優(yōu)化
21.10.4實(shí)例: 從8051移植到ARM Cortex?M0
第22章 Cortex?M0產(chǎn)品
22.1概述
22.2微控制器產(chǎn)品和專(zhuān)用標(biāo)準(zhǔn)產(chǎn)品(ASSP)
22.2.1NXP Cortex?M0微控制器
22.2.2NuMicro微控制器
22.2.3Mocha?1 ARM Cortex?M0可配置陣列
22.2.4Melfas MCS?7000系列觸摸屏控制器
22.3編譯器和軟件開(kāi)發(fā)組件
22.3.1Keil微控制器開(kāi)發(fā)套件(MDK)
22.3.2TASKING VX?Toolset for ARM
22.3.3IAR Embedded Workbench for ARM
22.3.4CrossWorks for ARM
22.3.5Red Suite
22.3.6LabVIEW C代碼生成器
22.4開(kāi)發(fā)板
22.4.1LPCXpresso
22.4.2IAR的LPC1114入門(mén)套件
22.4.3LPC1114 Cortex?M0模塊
22.4.4Keil Cortex?M0開(kāi)發(fā)板
附錄ACortex?M0指令集
附錄BCortex?M0異常類(lèi)型快速參考
B.1異常類(lèi)型
B.2異常壓棧后的棧內(nèi)容
附錄C軟件接口標(biāo)準(zhǔn)(CMSIS)快速參考
C.1數(shù)據(jù)類(lèi)型
C.2異常枚舉
C.3NVIC操作函數(shù)
C.4系統(tǒng)和SysTick操作函數(shù)
C.5內(nèi)核寄存器操作函數(shù)
C.6特殊指令操作函數(shù)
附錄DNVIC、SCB以及SysTick寄存器快速參考
D.1NVIC寄存器一覽
D.2中斷設(shè)置使能寄存器(NVIC->ISER)
D.3中斷清除使能寄存器(NVIC->ICER)
D.4中斷設(shè)置掛起寄存器(NVIC->ISPR)
D.5中斷清除掛起寄存器(NVIC->ICPR)
D.6中斷優(yōu)先級(jí)寄存器(NVIC->IRP[0]到NVIC->IRP[7])
D.7SCB寄存器一覽
D.8CPU ID基地址寄存器(SCB->CPUID)
D.9中斷控制狀態(tài)寄存器(SCB->ICSR)
D.10應(yīng)用中斷和控制狀態(tài)寄存器(SCB->AIRCR)
D.11系統(tǒng)控制寄存器(SCB->SCR)
D.12配置控制寄存器(SCB->CCR)
D.13系統(tǒng)處理優(yōu)先級(jí)寄存器2(SCB->SHR[0])
D.14系統(tǒng)處理優(yōu)先級(jí)寄存器3(SCB->SHR[1])
D.15系統(tǒng)處理控制和狀態(tài)寄存器
D.16SysTick寄存器一覽
D.17SysTick控制和狀態(tài)寄存器(SysTick->CTRL)
D.18SysTick重裝載值寄存器(SysTick->LOAD)
D.19SysTick當(dāng)前值寄存器(SysTick->VAL)
D.20SysTick校準(zhǔn)值寄存器(SysTick->CALIB)
附錄E調(diào)試寄存器快速參考
E.1概述
E.2內(nèi)核調(diào)試寄存器
E.3斷點(diǎn)單元
E.4數(shù)據(jù)監(jiān)視點(diǎn)單元
E.5ROM表寄存器
附錄F調(diào)試接頭分配
F.110針Cortex調(diào)試連接頭
F.220針Cortex調(diào)試+ETM接頭
F.3老式的20針I(yè)DC接頭排列
附錄GCodeSourcery G++ Lite的鏈接器腳本
附錄H實(shí)例代碼文件
H.1system_LPC11xx.c
H.2system_LPC11xx.h
H.3LPC11xx.hs
H.4uart_test.s
H.5RTX_config.c
附錄I疑難解答
I.1程序不運(yùn)行/啟動(dòng)
I.1.1向量表丟失或位置錯(cuò)誤
I.1.2使用了錯(cuò)誤的C啟動(dòng)代碼
I.1.3復(fù)位向量中的值錯(cuò)誤
I.1.4程序映像沒(méi)有正確地編程到Flash中
I.1.5錯(cuò)誤的工具鏈配置
I.1.6錯(cuò)誤的棧指針初始值
I.1.7錯(cuò)誤的大小端設(shè)置
I.2程序啟動(dòng),卻進(jìn)入了硬件錯(cuò)誤
I.2.1非法存儲(chǔ)器訪問(wèn)
I.2.2非對(duì)齊數(shù)據(jù)訪問(wèn)
I.2.3從總線返回錯(cuò)誤
I.2.4異常處理中的棧被破壞
I.2.5程序在某些C函數(shù)中崩潰
I.2.6意外地試圖切換至ARM狀態(tài)
I.2.7在錯(cuò)誤的優(yōu)先級(jí)上執(zhí)行SVC
I.3休眠問(wèn)題
I.3.1執(zhí)行WFE不進(jìn)入休眠
I.3.2退出休眠過(guò)早地引起休眠
I.3.3中斷已經(jīng)在掛起態(tài)時(shí)SEVONPEND不工作
I.3.4由于休眠模式可能禁止了某些時(shí)鐘,處理器無(wú)法喚醒
I.3.5競(jìng)態(tài)
I.4中斷問(wèn)題
I.4.1執(zhí)行了多余的中斷處理
I.4.2執(zhí)行了額外的SysTick處理
I.4.3在中斷處理中禁止中斷
I.4.4錯(cuò)誤的中斷返回指令
I.4.5異常優(yōu)先級(jí)設(shè)置的數(shù)值
I.5其他問(wèn)題
I.5.1錯(cuò)誤的SVC參數(shù)傳遞方法
I.5.2調(diào)試連接受到I/O設(shè)置或低功耗模式的影響
I.5.3調(diào)試協(xié)議選擇
I.5.4使用事件輸出作為脈沖I/O
附錄J實(shí)用參考文檔

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)