嵌入式系統設計與應用——基於ARM Cortex-A8和Linux(第2版)(微課視頻版

嵌入式系統設計與應用——基於ARM Cortex-A8和Linux(第2版)(微課視頻版

作者: 王劍 劉鵬 李波 蔡明文
出版社: 清華大學
出版在: 2020-09-01
ISBN-13: 9787302552666
ISBN-10: 7302552665





內容描述


《嵌入式系統設計與應用——基於ARM Cortex-A8和Linux(第2版)(微課視頻版)》選擇當前嵌入式系統領域具有代表性的ARM Cortex-A8處理器和嵌入式Linux操作系統作為分析對象,從嵌入式系統的發展歷史和特點出發,對Cortex-A8嵌入式處理器的體系結構、存儲系統、中斷系統、ARM指令集和S5PV210微處理器進行詳細介紹。在此基礎上,闡述ARM-Linux內核、Linux文件系統、Linux移植及調試方法、驅動程序的設計等內容;選擇Qt圖形界面程序和SQLite數據庫這兩個有代表性的嵌入式應用軟件進行介紹; 介紹傳統嵌入式系統的設計方法和引入了“協同設計”概念的嵌入式系統設計方法,並介紹三個嵌入式系統應用案例以增強讀者的理解。
《嵌入式系統設計與應用——基於ARM Cortex-A8和Linux(第2版)(微課視頻版)》可以作為高等學校電腦、電子、電信類專業的教材,也可以作為嵌入式開發相關人員的參考用書。


目錄大綱


目錄

第1章嵌入式系統概述

1.1嵌入式系統簡介

1.1.1嵌入式系統的產生

1.1.2嵌入式系統的定義、特點和分類

1.1.3嵌入式系統的典型組成

1.2嵌入式微處理器

1.2.1嵌入式微處理器簡介

1.2.2主流嵌入式微處理器

1.3嵌入式操作系統

1.3.1嵌入式Linux

1.3.2Windows CE

1.3.3Android

1.3.4μC/OSⅡ

1.3.5VxWorks

1.4嵌入式系統的應用領域和發展趨勢

1.4.1嵌入式系統的應用領域

1.4.2嵌入式系統的發展趨勢

1.5本章小結

習題

第2章ARM處理器體系結構

2.1ARM處理器概述

2.1.1ARM處理器簡介

2.1.2ARM體系結構發展

2.1.3ARM處理器系列主要產品

2.1.4ARM開發工具簡介

2.2CortexA8處理器架構

2.3CortexA8處理器工作模式和狀態

2.3.1CortexA8處理器工作模式

2.3.2CortexA8處理器狀態

2.4CortexA8存儲器管理

2.4.1ARM的基本數據類型

2.4.2浮點數據類型

2.4.3大/小端存儲模式

2.4.4寄存器組

2.4.5CortexA8存儲系統

2.5CortexA8異常處理

2.5.1異常向量和優先級

2.5.2異常響應過程

2.5.3異常返回過程

2.5.4CortexA8處理器S5PC100中斷機制

2.6本章小結

習題

第3章ARM指令集

3.1ARM指令集概述

3.1.1指令格式

3.1.2指令的條件碼

3.2ARM指令的尋址方式

3.2.1立即尋址

3.2.2寄存器尋址

3.2.3寄存器間接尋址

3.2.4寄存器移位尋址

3.2.5變址尋址

3.2.6多寄存器尋址

3.2.7相對尋址

3.2.8堆棧尋址

3.2.9塊復制尋址

3.3ARM指令集簡介

3.3.1跳轉指令

3.3.2數據處理指令

3.3.3程序狀態寄存器處理指令

3.3.4加載/存儲指令

3.3.5協處理器指令

3.3.6異常產生指令

3.4Thumb指令集簡介

3.5ARM匯編語言編程簡介

3.5.1偽操作

3.5.2偽指令

3.5.3匯編語句格式

3.5.4匯編語言的程序結構

3.6C語言與匯編語言的混合編程

3.6.1C程序中內嵌匯編

3.6.2匯編中訪問C語言程序變量

3.6.3ARM中的匯編和C語言相互調用

3.7本章小結

習題

第4章S5PV210微處理器與接口

4.1基於S5PV210微處理器的硬件平臺體系結構

4.1.1S5PV210處理器簡介

4.1.2S5PV210內部各模塊介紹

4.2存儲系統

4.2.1S5PV210的地址空間

4.2.2S5PV210啟動流程

4.3時鐘系統

4.3.1S5PV210時鐘概述

4.3.2S5PV210的時鐘結構

4.4GPIO接口

4.4.1GPIO概述

4.4.2GPIO寄存器

4.4.3GPIO操作步驟

4.4.4一個LED燈的例子

4.5串行通信接口

4.5.1串行通信方式

4.5.2RS232C串行接口

4.5.3S5PV210的異步串行通信

4.5.4S5PV210的UART寄存器

4.5.5UART通信示例

4.6A/D轉換器

4.7本章小結

習題

第5章ARMLinux內核

5.1ARMLinux概述

5.1.1GNU/Linux操作系統的基本體系結構

5.1.2ARMLinux內核版本及特點

5.1.3ARMLinux內核的主要架構及功能

5.1.4Linux內核源碼目錄結構

5.2ARMLinux進程管理

5.2.1進程的表示和切換

5.2.2進程、線程和內核線程

5.2.3進程描述符task_struct的幾個特殊字段

5.2.4do_fork()函數

5.2.5進程的創建

5.2.6線程和內核線程的創建

5.2.7進程的執行——exec函數族

5.2.8進程的終止

5.2.9進程的調度

5.3ARMLinux內存管理

5.3.1ARMLinux內存管理概述

5.3.2ARMLinux虛擬存儲空間及分佈

5.3.3進程空間描述

5.3.4物理內存管理

5.3.5基於slab分配器的管理技術

5.3.6內核非連續內存分配(vmalloc) 

5.3.7頁面回收簡述

5.4ARM_Linux模塊

5.4.1LKM的編寫和編譯

5.4.2LKM版本差異比較

5.4.3模塊的加載與卸載

5.4.4工具集moduleinittools

5.5ARMLinux中斷管理

5.5.1ARM_Linux中斷的基本概念

5.5.2內核異常向量表的初始化

5.5.3Linux中斷處理

5.5.4內核版本2.6.38後的中斷處理系統的一些改變——通用中斷
子系統

5.6ARMLinux系統調用

5.7本章小結

習題

第6章嵌入式Linux文件系統

6.1Linux文件系統基礎

6.1.1概述

6.1.2ext2文件系統

6.1.3ext3和ext4文件系統

6.2嵌入式文件系統

6.2.1概述

6.2.2JFFS2嵌入式文件系統

6.3YAFFS與YAFFS2文件系統簡介

6.3.1YAFFS文件系統

6.3.2YAFFS2文件系統簡介

6.4根文件系統

6.4.1根文件系統概述

6.4.2根文件系統的製作工具——BusyBox

6.4.3YAFFS2文件系統的創建

6.5本章小結

習題

第7章嵌入式Linux系統移植及調試

7.1BootLoader基本概念與典型結構

7.1.1BootLoader基本概念

7.1.2BootLoader的操作模式

7.1.3BootLoader的典型結構

7.1.4常見的BootLoader 

7.2UBoot

7.2.1UBoot概述

7.2.2UBoot啟動的一般流程

7.2.3UBoot環境變量

7.2.4UBoot命令

7.3交叉開發環境的建立

7.4交叉編譯工具鏈

7.4.1交叉編譯工具鏈概述

7.4.2工具鏈的構建方法

7.4.3交叉編譯工具鏈的主要工具

7.4.4Makefile

7.5嵌入式Linux系統移植過程

7.5.1UBoot移植

7.5.2內核的配置、編譯和移植

7.6GDB調試器

7.7遠程調試

7.7.1遠程調試工具的構成

7.7.2通信協議——RSP

7.7.3遠程調試的實現方法及設置

7.7.4遠程調試應用實例方法

7.8內核調試

7.8.1printk()

7.8.2KDB

7.8.3Kprobes

7.8.4KGDB

7.9本章小結

習題

第8章設備驅動程序設計

8.1設備驅動程序開發概述

8.1.1Linux設備驅動程序分類

8.1.2驅動程序的處理過程

8.1.3設備驅動程序框架

8.1.4驅動程序的加載

8.2內核設備模型

8.2.1設備模型功能

8.2.2sysfs

8.2.3sysfs的實現機制kobject

8.2.4設備模型的組織——platform總線

8.3字符設備驅動設計框架

8.3.1字符設備的重要數據結構

8.3.2字符設備驅動框架

8.4GPIO驅動概述

8.4.1gpiolib關鍵數據結構

8.4.2GPIO的申請和註冊

8.5I2C總線驅動設計

8.5.1I2C總線概述

8.5.2I2C驅動程序框架

8.5.3關鍵數據結構

8.5.4I2C核心接口函數

8.5.5I2C設備驅動的通用方法

8.6塊設備驅動程序設計概述

8.6.1塊設備驅動整體框架

8.6.2關鍵數據結構

8.6.3塊設備的請求隊列操作

8.7嵌入式網絡設備驅動設計

8.7.1網絡設備驅動程序框架

8.7.2網絡設備驅動程序關鍵數據結構

8.7.3網絡設備驅動程序設計方法概述

8.8網絡設備驅動程序示例——網卡DM9000驅動程序分析

8.9本章小結

習題

第9章Qt圖形界面應用程序開發基礎

9.1Qt簡介

9.2Qt 5概述

9.2.1Qt 5簡介

9.2.2通過“幫助”菜單瞭解Qt 5的組成——模塊

9.2.3Linux下Qt開發環境的安裝與集成

9.2.4Qt Creator功能和特性

9.3信號和插槽機制

9.4Qt程序設計

9.4.1helloworld程序

9.4.2多窗口應用程序

9.5Qt數據庫應用

9.5.1數據庫驅動

9.5.2Qt與SQLite數據庫的連接

9.5.3SQL模型

9.6本章小結

習題

第10章SQLite數據庫

10.1SQLite數據庫概述

10.1.1基於Linux平臺的嵌入式數據庫概述

10.1.2SQLite的特點

10.1.3SQLite的體系結構

10.2SQLite安裝

10.3SQLite的常用命令

10.4SQLite的數據類型

10.5SQLite的API函數

10.5.1核心C API函數

10.5.2擴充C API函數

10.6SQLite數據庫管理工具

10.7本章小結

習題

第11章嵌入式系統的開發設計案例

11.1嵌入式系統設計方法介紹

11.1.1傳統的嵌入式系統設計方法

11.1.2“協同設計”概念的嵌入式系統設計方法

11.2基於ARM的嵌入式Web服務器設計實例

11.2.1系統環境搭建

11.2.2Web服務器原理

11.2.3嵌入式Web服務器設計

11.3物聯網網關設計實例

11.3.1背景介紹——環境監測系統平臺整體架構

11.3.2網關節點硬件設計方案

11.3.3系統軟件設計

11.3.4數據庫建設

11.4智能無人值守實驗室監控系統設計實例

11.4.1系統總體框架

11.4.2學生選課預約

11.4.3門禁系統

11.4.4ZigBee網絡的網絡拓撲及路由協議

11.4.5Qt的使用

11.5本章小結

參考文獻




相關書籍

Linux 實戰寶典

作者 大竹龍史 山本道子 鄧雪姣譯

2020-09-01

CMake Best Practices: Discover proven techniques for creating and maintaining programming projects with CMake

作者 Berner Dominik Gilor Mustafa Kemal

2020-09-01

Visible Light Communications: Modulation and Signal Processing (IEEE Series on Digital & Mobile Communication)

作者 Zhaocheng Wang Qi Wang Wei Huang Zhengyuan Xu

2020-09-01