ARM Cortex-M0全可程式SoC原理及實現

ARM Cortex-M0全可程式SoC原理及實現

《ARM Cortex-M0全可程式SoC原理及實現》是2017年3月清華大學出版社出版的圖書,作者是何賓。

基本介紹

  • 中文名:ARM Cortex-M0全可程式SoC原理及實現
  • 作者:何賓
  • ISBN:9787302457329
  • 定價:79元
  • 出版社:清華大學出版社
  • 出版時間:2017年3月
內容簡介,圖書目錄,

內容簡介

本書以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語言的參考用書。

圖書目錄

第1章全可程式SoC設計導論
1.1SoC基礎知識
1.1.1SoC的概念
1.1.2SoC與MCU及CPU的比較
1.1.3典型的商用SoC器件
1.3SoC體系架構
1.4全可程式SoC技術
1.4.1基於軟核的全可程式SoC
1.4.2基於硬核的全可程式SoC
1.5全可程式SoC設計流程
第2章CortexM0 CPU結構
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.2堆疊指針
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.5降低功耗的其他方法
第5章AHBLite匯流排結構分析
5.1匯流排及分類
5.1.1匯流排的概念
5.1.2匯流排分類
5.2ARM AMBA系統匯流排
5.3AMBA3 AHB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.1Keil MDK開發套件
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M0 DesignStart架構
7.1獲取CortexM0 DesignStart
7.2CortexM0 DesignStart頂層符號
7.2.1中斷
7.2.2狀態輸出
7.2.3事件信號
7.3AHBLite接口
7.4將CortexM0 DesignStart集成到系統的方法
第8章XILINX Artix7 FPGA結構
8.1Artix7器件邏輯資源
8.2可配置邏輯塊
8.2.1可配置邏輯塊概述
8.2.2查找表
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M0 SoC系統的構建
9.2.1啟動Vivado 2016集成開發環境
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.4AHB LED外設
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.2非易失性存儲器
15.3系統設計目標
15.3.1硬體構建目標
15.3.2軟體編程目標
15.4DDR3 SDRAM控制器設計原理
15.4.1DDR3 SDRAM存儲器結構
15.4.2DDR3 SDRAM控制器結構
15.4.3DDR3 SDRAM的讀寫訪問時序
15.5DDR3 SDRAM控制器系統設計與實現
15.5.1打開前面的設計工程
15.5.2設計DDR3 SDRAM存儲器控制器
15.5.3修改系統設計檔案
15.5.4編寫程式代碼
15.5.5設計綜合
15.5.6設計實現
15.5.7下載比特流檔案
第16章CortexM0 C語言編程基礎
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.8堆疊管理
18.6.9用戶定時器
18.6.10中斷函式

熱門詞條

聯絡我們