3dwoo大學簡體電腦書店
ARM Cortex-M0 全可編程SoC原理及實現——面向處理器、協議、外設、編程和操
( 簡體 字)
作者:何賓類別:1. -> 電腦組織與體系結構 -> 嵌入式系統 -> Cortex
出版社:清華大學出版社ARM Cortex-M0 全可編程SoC原理及實現——面向處理器、協議、外設、編程和操 3dWoo書號: 46268
詢問書籍請說出此書號!
有庫存
NT售價: 395
出版日:3/1/2017
頁數:478
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302457329 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章全可編程SoC設計導論

1.1SoC基礎知識

1.1.1SoC的概念

1.1.2SoC與MCU及CPU的比較

1.1.3典型的商用SoC器件

1.2SoC設計流程

1.3SoC體系架構

1.4全可編程SoC技術

1.4.1基于軟核的全可編程SoC

1.4.2基于硬核的全可編程SoC

1.5全可編程SoC設計流程

第2章CortexM0CPU結構

2.1ARM處理器類型

2.2CortexM系列處理器概述

2.2.1CortexM系列處理器的特點

2.2.2CortexM系列處理器的性能參數

2.3CortexM0處理器性能和結構

2.3.1CortexM0處理器的性能

2.3.2CortexM0處理器的結構

2.4CortexM0處理器寄存器組

2.4.1通用寄存器

2.4.2堆棧指針

2.4.3程序計數器

2.4.4鏈接寄存器

2.4.5組合程序狀態寄存器

2.4.6中斷屏蔽特殊寄存器

2.4.7特殊寄存器

2.5CortexM0存儲器空間映射

2.6CortexM0程序鏡像原理及生成方法

2.7CortexM0的端及分配

2.8CortexM0處理器異常及處理

2.8.1異常原理

2.8.2異常優先級

2.8.3向量表

2.8.4異常類型

第3章CortexM0指令集

3.1Thumb指令集

3.2CortexM0匯編語言格式

3.3寄存器訪問指令:MOVE

3.4存儲器訪問指令:LOAD

3.5存儲器訪問指令:STORE

3.6多數據訪問指令:LDM和STM

3.7堆棧訪問指令:PUSH和POP

3.8算術運算指令

3.8.1加法指令

3.8.2減法指令

3.8.3乘法指令

3.8.4比較指令

3.9邏輯操作指令

3.10移位操作指令

3.10.1右移指令

3.10.2左移指令

3.11反序操作指令

3.12擴展操作指令

3.13程序流控制指令

3.14存儲器屏蔽指令

3.15異常相關指令

3.16休眠相關指令

3.17其他指令

3.18數據插入和對齊操作

第4章CortexM0低功耗特性

4.1低功耗要求

4.2CortexM0低功耗特性及優勢

4.2.1CortexM0低功耗特性

4.2.2CortexM0低功耗結構

4.3CortexM0休眠模式

4.4喚醒中斷控制器

4.5降低功耗的其他方法

第5章AHBLite總線結構分析

5.1總線及分類

5.1.1總線的概念

5.1.2總線分類

5.2ARMAMBA系統總線

5.3AMBA3AHBLite總線

5.3.1AHBLite概述

5.3.2AHBLite總線操作

5.4AHBLite總線結構

5.4.1全局信號

5.4.2AHBLite主設備接口

5.4.3AHBLite從設備接口

5.4.4地址譯碼器和多路復用器

5.5AHBLite總線時序

5.5.1無等待基本讀傳輸

5.5.2有等待基本讀傳輸

5.5.3無等待基本寫傳輸

5.5.4有等待基本寫傳輸

5.6硬件實現

第6章CortexM0匯編語言編程基礎

6.1KeilMDK開發套件

6.1.1下載MDK開發套件

6.1.2安裝MDK開發套件

6.1.3MDK程序處理流程

6.2CortexM0匯編語言程序設計

6.2.1建立新設計工程

6.2.2工程參數設置

6.2.3添加匯編文件

6.2.4匯編語言語法

6.3.lst文件分析

6.4.map文件分析

6.5.hex文件分析

6.6軟件仿真和調試

6.6.1查看CortexM0寄存器內容

6.6.2查看CortexM0存儲器內容

6.6.3查看監視窗口的內容

6.7匯編語言其他常用語法介紹

6.7.1標識符的命名規則

6.7.2變量

6.7.3常數

6.7.4EQU命令

6.7.5IMPORT/EXTERN命令

6.7.6子程序調用

6.7.7宏定義和使用

第7章CortexM0DesignStart架構

7.1獲取CortexM0DesignStart

7.2CortexM0DesignStart頂層符號

7.2.1中斷

7.2.2狀態輸出

7.2.3事件信號

7.3AHBLite接口

7.4將CortexM0DesignStart集成到系統的方法

第8章XILINXArtix7FPGA結構

8.1Artix7器件邏輯資源

8.2可配置邏輯塊

8.2.1可配置邏輯塊概述

8.2.2查找表

8.2.3多路復用器

8.2.4進位邏輯

8.2.5存儲元素

8.2.6分布式RAM(只有SLICEM)

8.2.7只讀存儲器(ROM)

8.2.8移位寄存器(只有SLICEM)

8.3時鐘資源和時鐘管理單元

8.3.17系列FPGA時鐘資源

8.3.27系列內部時鐘結構

8.3.37系列FPGA時鐘管理模塊

8.4塊存儲器資源

8.5專用的DSP模塊

8.6輸入/輸出塊

8.6.1I/O特性概述

8.6.2Artix7中的I/O列和類型

8.6.3I/O電氣資源

8.6.4I/O邏輯資源

8.7XADC模塊

8.8吉比特收發器

8.9PCIE模塊

8.10配置模塊

8.11互連資源

第9章CortexM0嵌入式系統設計與實現

9.1設計目標

9.2CortexM0SoC系統的構建

9.2.1啟動Vivado2016集成開發環境

9.2.2創建新的設計工程

9.2.3添加CortexM0處理器源文件

9.2.4添加系統主時鐘IP核

9.3設計文件修改和分析

9.3.1AHB總線地址譯碼器

9.3.2AHB總線從設備多路復用器

9.3.3AHB片上存儲器外設

9.3.4AHBLED外設

9.3.5AHBLITE_SYS頂層文件

9.4程序代碼的編寫

9.4.1建立新設計工程

9.4.2工程參數設置

9.4.3添加和編譯匯編文件

9.4.4分析HEX文件與匯編文件的關系

9.4.5添加HEX文件到當前工程

9.5RTL詳細描述和分析

9.6仿真原理和行為級仿真

9.6.1仿真實現的不同功能

9.6.2Vivado所支持的仿真工具

9.6.3行為級仿真實現

9.6.4添加信號并仿真

9.6.5仿真結果分析

9.7設計綜合和分析

9.7.1綜合過程的關鍵問題

9.7.2設計綜合選項

9.7.3Vivado支持的屬性

9.7.4執行設計綜合

9.7.5查看綜合報告

9.8創建實現約束

9.8.1實現約束的原理

9.8.2I/O規劃器功能

9.8.3引腳位置約束的實現

9.9設計實現和分析

9.9.1實現過程原理

9.9.2設計實現選項

9.9.3設計實現

9.9.4查看布局布線后的結果

9.9.5查看實現后的報告

9.9.6功耗分析

9.9.7靜態時序分析

9.10實現后時序仿真

9.11生成編程文件

9.12下載比特流文件到FPGA

9.13生成并下載外部存儲器文件

第10章7段數碼管控制器設計與實現

10.1設計目標

10.2打開前面的設計工程

10.3添加并分析7段數碼管控制器源文件

10.3.1添加7段數碼管控制器源文件

10.3.2分析7段數碼管控制器源文件

10.4修改并分析頂層設計文件

10.5編寫程序代碼

10.5.1建立新設計工程

10.5.2工程參數設置

10.5.3添加和編譯匯編文件

10.5.4添加HEX文件到當前工程

10.6設計綜合

10.7添加約束條件

10.8設計實現

10.9下載比特流文件

10.10系統在線調試原理

10.11系統在線調試實現

10.11.1建立新的調試工程

10.11.2添加調試網絡

10.11.3在線測試分析

第11章中斷系統設計與實現

11.1設計目標

11.2中斷控制器原理

11.2.1NVIC特點

11.2.2NVIC映射

11.2.3NVIC寄存器

11.3進入和退出異常句柄的過程

11.3.1進入中斷句柄的過程

11.3.2退出中斷句柄的過程

11.4打開前面的設計工程

11.5添加并分析按鍵消抖模塊源文件

11.5.1添加按鍵消抖模塊源文件

11.5.2分析按鍵消抖模塊源文件

11.6修改并分析頂層設計文件

11.7編寫程序代碼

11.7.1建立新設計工程

11.7.2工程參數設置

11.7.3軟件初始化中斷

11.7.4添加和編譯匯編文件

11.7.5添加HEX文件到當前工程

11.8設計綜合

11.9添加約束條件

11.10設計實現

11.11下載比特流文件

第12章定時器設計與實現

12.1設計目標

12.2打開前面的設計工程

12.3添加并分析定時器模塊源文件

12.3.1定時器模塊設計原理

12.3.2添加定時器源文件

12.3.3分析定時器源文件

12.4修改并分析頂層設計文件

12.5編寫程序代碼

12.5.1建立新設計工程

12.5.2工程參數設置

12.5.3添加和編譯匯編文件

12.5.4添加HEX文件到當前工程

12.6設計綜合

12.7設計實現

12.8下載比特流文件

第13章UART串口控制器設計與實現

13.1設計目標

13.2串行通信基礎

13.2.1串行和并行通信之間的比較

13.2.2串行通信的類型

13.3通用異步收發數據格式和編碼

13.3.1數據格式

13.3.2字符編碼規則

13.4UART串口控制器的實現原理

13.4.1UART發送器

13.4.2UART接收器

13.4.3發送器/接收器FIFO

13.5打開前面的設計工程

13.6添加并分析UART模塊源文件

13.6.1添加UART模塊源文件

13.6.2分析UART模塊源文件

13.7修改并分析頂層設計文件

13.8編寫程序代碼

13.8.1建立新設計工程

13.8.2工程參數設置

13.8.3添加和編譯匯編文件

13.8.4添加HEX文件到當前工程

13.9設計綜合

13.10添加約束條件

13.11設計實現

13.12下載比特流文件

第14章VGA控制器設計與實現

14.1設計目標

14.2VGA工作原理

14.2.1VGA連接器

14.2.2CRT原理

14.2.3VGA接口信號

14.2.4VGA時序

14.3VGA顯示硬件實現原理

14.3.1VGA圖像緩沖區

14.3.2VGA控制臺

14.3.3VGA控制器存儲器空間

14.4打開前面的設計工程

14.5添加并分析VGA模塊源文件

14.5.1添加VGA模塊源文件

14.5.2分析VGA模塊源文件

14.6修改其他設計

14.6.1添加并分析頂層設計文件

14.6.2修改時鐘生成器輸出頻率

14.6.3修改波特率時鐘

14.7編寫程序代碼

14.7.1建立新設計工程

14.7.2工程參數設置

14.7.3添加和編譯匯編文件

14.7.4添加HEX文件到當前工程

14.8設計綜合

14.9添加約束條件

14.10設計實現

14.11下載比特流文件

第15章DDR3存儲器系統設計與實現

15.1計算機搭載的存儲器設備

15.2存儲器類型

15.2.1易失性存儲器

15.2.2非易失性存儲器

15.3系統設計目標

15.3.1硬件構建目標

15.3.2軟件編程目標

15.4DDR3SDRAM控制器設計原理

15.4.1DDR3SDRAM存儲器結構

15.4.2DDR3SDRAM控制器結構

15.4.3DDR3SDRAM的讀寫訪問時序

15.5DDR3SDRAM控制器系統設計與實現

15.5.1打開前面的設計工程

15.5.2設計DDR3SDRAM存儲器控制器

15.5.3修改系統設計文件

15.5.4編寫程序代碼

15.5.5設計綜合

15.5.6設計實現

15.5.7下載比特流文件

第16章CortexM0C語言編程基礎

16.1C語言處理流程

16.2C語言鏡像文件內容和存儲

16.2.1C語言鏡像文件的內容

16.2.2C語言鏡像文件的存儲位置

16.3啟動代碼的分析

16.4C語言中數據的存儲空間

16.5C語言數據類型及實現

16.5.1C語言支持的數據類型

16.5.2數據類型修飾符

16.6C語言編程CortexM0

16.6.1定義中斷向量表

16.6.2定義堆和堆棧

16.6.3讀寫外設寄存器

16.6.4匯編調用C函數

16.6.5C語言調用匯編語言

16.6.6C語言嵌入匯編語言

16.7C語言驅動的設計和實現

16.7.1打開前面的設計工程

16.7.2建立新的軟件設計工程

16.7.3軟件工程參數設置

16.7.4創建并添加匯編文件

16.7.5創建并添加頭文件

16.7.6創建并添加C文件

16.7.7添加HEX文件到當前工程

16.7.8設計綜合

16.7.9設計實現

16.7.10下載比特流文件

16.8C語言重定向及實現

16.8.1打開前面的設計工程

16.8.2打開前面的軟件設計工程

16.8.3修改啟動引導文件

16.8.4導入并修改retarget.c文件

16.8.5修改C設計文件

16.8.6添加HEX文件到當前工程

16.8.7設計綜合

16.8.8設計實現

16.8.9下載比特流文件

第17章CMSIS和驅動程序開發

17.1引入CMSIS的必要性

17.2CMSIS的優勢

17.3CMSIS的框架

17.4使用CMSIS訪問不同資源

17.4.1訪問NVIC

17.4.2訪問特殊寄存器

17.4.3訪問特殊指令

17.4.4訪問系統

17.5軟件驅動程序的設計

17.5.1軟件驅動程序的功能

17.5.2AHB外設驅動設計

17.6動態圖形交互系統設計

17.6.1動態圖形交互硬件平臺

17.6.2觸摸屏顯示控制方法

17.6.3觸摸屏觸摸控制方法

17.6.4打開前面的設計工程

17.6.5觸摸屏控制器模塊的設計實現

17.6.6修改頂層設計文件

17.6.7C語言程序的設計和實現

17.6.8設計綜合

17.6.9添加約束條件

17.6.10設計實現

17.6.11下載比特流文件

第18章RTX操作系統原理及應用

18.1RTOS的優勢

18.2操作系統的概念

18.3操作系統支持特性

18.3.1SysTick定時器

18.3.2堆棧指針

18.3.3SVC

18.3.4PendSV

18.4RTX內核架構的特點

18.5RTX的具體實現過程

18.5.1實現目標

18.5.2打開前面的工程

18.5.3修改工程屬性設置

18.5.4修改啟動代碼

18.5.5導入RTX_Config.c文件

18.5.6修改main.c文件

18.5.7軟件調試和測試

18.6RTX內核功能

18.6.1定時器滴答中斷

18.6.2系統任務管理器

18.6.3任務管理

18.6.4空閑任務

18.6.5系統資源

18.6.6任務調度策略

18.6.7優先級倒置

18.6.8堆棧管理

18.6.9用戶定時器

18.6.10中斷函數

本書以ARM公司免費開放的CortexM0 DesignStart處理器 IP核為基礎,以CortexM0處理器架構、AMBA規范、外設、匯編語言、C語言、CMSIS、驅動程序開發以及RTX操作系統為主線,詳細介紹了通過Xilinx Vivado以及Keil μVision5集成開發環境構建CortexM0全可編程嵌入式系統的硬件和軟件設計方法。
全書共分18章,主要內容包括: 全可編程SoC設計導論、CortexM0 CPU結構、CortexM0指令集、CortexM0低功耗特性、AHBLite總線結構分析、CortexM0匯編語言編程基礎、CortexM0 DesignStart架構、Xilinx Artix7 FPGA結構、CortexM0嵌入式系統設計與實現、7段數碼管控制器設計與實現、中斷系統設計與實現、定時器設計與實現、UART串口控制器設計與實現、VGA控制器設計與實現、DDR3存儲器系統設計與實現、CortexM0 C語言編程基礎、CMSIS和驅動程序開發、RTX操作系統原理及應用。
本書可作為講授ARM CortexM0嵌入式系統課程以及CortexM0可編程SoC系統設計課程的教學參考用書,也可作為學習Xilinx Vivado集成開發環境和Verilog HDL語言的參考用書。
在當今社會中,嵌入式系統的應用越來越廣泛,例如以智能手機為代表的嵌入式系統應用已經融入人們的日常生活中。英國ARM公司作為全球知名的嵌入式處理器IP核供應商,其所提供的CortexM、CortexR和CortexA三大系列處理器IP核以及基于這些IP核所構建的生態系統,已經成為當今嵌入式系統設計和應用的基礎。
由于保護知識產權的需要,一直以來ARM公司對其處理器設計技術進行嚴格保密,這使得掌握Cortex處理器架構并熟練高效應用Cortex處理器變得異常困難。此外,ARM Cortex處理器架構和指令集也比較復雜。這些因素都使得一個嵌入式系統設計人員很難從處理器架構、接口、外設、編程語言和操作系統等方面全面徹底掌握嵌入式系統設計知識。
近年來,國內很多高校都相繼開設了嵌入式系統相關的課程。但是,由于前面所提到的諸多因素,在市面上已經出版的ARM嵌入式系統教材并沒有全面系統地從處理器架構、AMBA規范、接口、外設、編程語言和操作系統等方面全方位系統地對設計嵌入式系統所需要的知識進行解讀,這給ARM嵌入式系統技術在國內教育界的普及推廣造成很大困難。目前,國內嵌入式系統課程的教學大都局限在APP開發,API函數調用的層面,與工業界對培養高素質嵌入式人才的要求有相當大的差距。
去年,ARM公司做了一件讓中國教育界非常高興的事情,它提供了免費開放的CortexM0 DesignStart內核等效RTL級設計代碼,可用于中國高校的嵌入式系統課程教學。通過ARM大學計劃經理陳瑋先生的幫助,本書作者得到了這個免費開放的CortexM0 DesignStart內核RTL級等效設計代碼。通過這個免費開放的CortexM0 DesignStart IP核以及Xilinx的Vivado 2016.1集成開發環境,作者在Xilinx最新的7系列FPGA內構建了CortexM0嵌入式系統硬件,同時,通過Keil μVision5集成開發環境為該嵌入式系統硬件開發了軟件應用程序。
與傳統采用專用CortexM處理器介紹嵌入式系統設計的教學模式相比,采用在FPGA內構建CortexM0嵌入式系統的方法可以為嵌入式系統課程的教學帶來以下好處:
(1) 當采用開放的CortexM0內核構建嵌入式系統時,教師和學生可以清楚地理解CortexM0的運行機制,包括處理器架構、指令集、存儲器空間映射和中斷機制。
(2) 通過對AHBLite規范的詳細介紹和說明,教師和學生可以清楚地知道在一個芯片內將CortexM0嵌入式處理器與外設模塊和存儲器系統連接的方法。
(3) 通過使用Verilog HDL對實現特定功能外設的寄存器傳輸級RTL描述,教師和學生可以清楚地理解軟件寄存器與硬件邏輯行為之間的關系,也就是將軟件命令轉換成硬件邏輯行為的方法。
(4) 通過為所定制的CortexM0嵌入式系統硬件編寫軟件應用,教師和學生可以徹底理解和掌握軟件和硬件協同設計、協同仿真和協同調試的方法。
(5) 基于開放的CortexM0 DesignStart IP核,教師和學生可以從硬件底層逐步完成嵌入式系統的構建,以深入理解和全面掌握嵌入式系統的設計流程。
正是由于這種方法在未來嵌入式系統課程教學中有著無可比擬的巨大優勢,使得作者可以從處理器架構、指令集、AHBLite規范、匯編語言、C語言、外設、CMSIS和驅動,以及操作系統等幾個方面,全方位地對嵌入式系統的構建方法進行介紹,以期解決目前國內高校嵌入式系統課程教學所面臨的困境,并且為學習更高層次的嵌入式系統設計和應用拋磚引玉。
本書的最大特色就是將嵌入式系統的設計理論和實踐深度融合,通過典型且完整的設計案例多角度全方位地解讀嵌入式系統的設計方法。為了方便老師的教學和學生的自學,本書提供了教學課件和設計實例的完整代碼,以及公開的視頻教學資源,這些資源的獲取方式詳見書中的學習說明。
本書的編寫得到了ARM大學計劃經理陳瑋先生的大力支持和幫助,他為本書申請了免費開放的CortexM0 DesignStart IP核設計資源以及教學資源。此外,Xilinx公司的FAE對作者設計案例時遇到的問題進行了耐心細致的回答。作者的研究生李寶隆編寫了本書第1章的內容,張艷輝編寫了本書第2章的內容,作者的本科生湯宗美編寫并整理了本書的配套教學課件,王中正對本書的部分設計案例進行了驗證。此外,在本書編寫期間,平涼職業技術學院的惠小軍和唐海天老師進行了相關內容的學習,并幫助作者編寫了第17章和第18章的內容。他們的支持和幫助是作者高質量按時完成該書的重要保證,在此一并向他們表示感謝。
在本書出版的過程中,也得到了清華大學出版社各位編輯的幫助和指導,在此也表示深深的謝意。由于編者水平有限,編寫時間倉促,書中難免有疏漏之處,敬請讀者批評指正。
作者
2017年1月于北京

pagetop