嵌入式系統(tǒng)原理與應用——基于Linux和ARM
定 價:69 元
當前圖書已被 32 所學校薦購過!
查看明細
- 作者:蔣建春
- 出版時間:2022/9/1
- ISBN:9787121442810
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP316.85;TP332.021
- 頁碼:380
- 紙張:
- 版次:01
- 開本:16開
本書基于典型的ARM處理器和Linux嵌入式系統(tǒng)講解嵌入式系統(tǒng)基本原理、軟件架構和應用設計等相關知識;陂L期的嵌入式系統(tǒng)開發(fā)和教學經(jīng)驗,作者從嵌入式系統(tǒng)研發(fā)初學者角度出發(fā),以掌握嵌入式系統(tǒng)設計需要的基礎知識、軟件架構、設計方法等為目標,將嵌入式系統(tǒng)的基礎與原理、軟件架構、實踐編程方法和嵌入式系統(tǒng)實際應用開發(fā)結合起來,形成一套完整的嵌入式系統(tǒng)原理、設計與開發(fā)的教學內(nèi)容。本書結構合理、層次清晰,易于理解和學習,主要內(nèi)容包括:嵌入式系統(tǒng)基礎,Linux操作系統(tǒng)基礎與內(nèi)核,Linux驅動程序結構、開發(fā)與典型驅動程序開發(fā)實例,Linux系統(tǒng)移植與應用程序開發(fā)實例等。本書可供高等學校計算機、電子工程、自動化與控制類等專業(yè)的本科高年級學生作為教學參考書使用,也可供人工智能、機器人、智能網(wǎng)聯(lián)汽車等相關專業(yè)方向的碩士研究生參考。
蔣建春,教授/博士。汽車智能網(wǎng)聯(lián)技術重慶市高校工程研究中心 車聯(lián)網(wǎng)與智能交通研究所所長,重慶市學術技術帶頭人、芬蘭坦佩雷理工大學訪問學者,重慶市物聯(lián)網(wǎng)產(chǎn)業(yè)協(xié)會委員會專家,成渝地區(qū)雙城經(jīng)濟圈科技創(chuàng)新聯(lián)盟專家,重慶智能網(wǎng)聯(lián)汽車技術創(chuàng)新聯(lián)盟專家。
目 錄
第1章 嵌入式系統(tǒng)基礎 (1)
1.1 嵌入式系統(tǒng)概述 (1)
1.1.1 嵌入式系統(tǒng)基本概念 (1)
1.1.2 嵌入式系統(tǒng)的分類 (4)
1.1.3 嵌入式系統(tǒng)的現(xiàn)狀和趨勢 (9)
1.2 嵌入式系統(tǒng)基礎知識 (11)
1.2.1 嵌入式系統(tǒng)基本組成 (12)
1.2.2 嵌入式處理器概述 (13)
1.2.3 嵌入式操作系統(tǒng)概述 (15)
1.3 嵌入式可執(zhí)行代碼生成流程與代碼結構 (20)
1.3.1 嵌入式可執(zhí)行代碼生成流程 (20)
1.3.2 嵌入式軟件代碼結構 (22)
1.4 嵌入式軟件交叉開發(fā)模式 (26)
1.4.1 交叉開發(fā)模式概述 (26)
1.4.2 調(diào)試通信端口與協(xié)議 (27)
作業(yè) (30)
第2章 ARM處理器體系架構 (31)
2.1 嵌入式處理器基礎 (31)
2.1.1 處理器的結構 (31)
2.1.2 處理器指令執(zhí)行過程 (32)
2.1.3 微處理器的體系結構 (34)
2.2 ARM體系架構與編程模型 (37)
2.2.1 ARM處理器體系架構概述 (37)
2.2.2 ARM編程模型 (40)
2.3 ARM處理器內(nèi)存管理 (46)
2.3.1 內(nèi)存映射 (46)
2.3.2 集成外設寄存器訪問方法 (48)
2.4 ARM異常處理 (50)
2.4.1 ARM處理器異常類型 (50)
2.4.2 ARM處理器對異常的響應 (51)
2.4.3 ARM系統(tǒng)的中斷編程機制 (53)
作業(yè) (57)
第3章 Linux操作系統(tǒng)基礎知識 (58)
3.1 操作系統(tǒng)基礎知識 (58)
3.1.1 操作系統(tǒng)主要功能 (59)
3.1.2 嵌入式操作系統(tǒng)基本概念 (60)
3.2 嵌入式Linux簡介 (69)
3.2.1 Linux內(nèi)核版本與分類 (69)
3.2.2 Linux系統(tǒng)結構 (71)
3.2.3 嵌入式Linux特點 (72)
3.3 Linux文件系統(tǒng) (73)
3.3.1 Linux文件系統(tǒng)基本作用 (73)
3.3.2 Linux常見文件系統(tǒng)簡介 (73)
3.3.3 Linux文件系統(tǒng)框架 (76)
3.3.4 Linux文件操作函數(shù) (78)
3.4 Linux模塊機制 (82)
3.4.1 Linux模塊概述 (82)
3.4.2 Linux模塊代碼結構 (83)
3.4.3 模塊加載 (84)
3.4.4 模塊卸載 (85)
作業(yè) (86)
第4章 ARM體系結構的Linux內(nèi)核 (87)
4.1 ARM-Linux內(nèi)核簡介 (87)
4.1.1 ARM-Linux內(nèi)核和普通Linux內(nèi)核的區(qū)別 (87)
4.1.2 ARM-Linux代碼結構與內(nèi)核組成 (88)
4.2 ARM-Linux進程管理與調(diào)度 (91)
4.2.1 進程的表示和生命周期 (91)
4.2.2 Linux進程創(chuàng)建、執(zhí)行和銷毀 (97)
4.2.3 Linux進程調(diào)度 (101)
4.3 ARM-Linux內(nèi)存管理 (105)
4.3.1 內(nèi)存管理基本概念 (105)
4.3.2 ARM-Linux存儲機制 (107)
4.3.3 虛擬內(nèi)存管理 (109)
4.4 ARM-Linux虛擬文件系統(tǒng) (111)
4.4.1 虛擬文件系統(tǒng)介紹 (111)
4.4.2 虛擬文件系統(tǒng)數(shù)據(jù)結構 (112)
4.4.3 基于虛擬文件系統(tǒng)的文件I/O操作 (118)
4.5 ARM-Linux進程間通信 (121)
4.5.1 進程間通信的目的 (121)
4.5.2 進程間通信的方式 (121)
作業(yè) (130)
第5章 Linux設備驅動程序結構 (131)
5.1 Linux設備驅動程序簡介 (131)
5.1.1 Linux設備分類 (131)
5.1.2 設備文件與設備號 (133)
5.1.3 Linux設備驅動程序代碼分布與特點 (134)
5.2 Linux內(nèi)核設備模型 (135)
5.2.1 設備模型建立的目的 (135)
5.2.2 設備拓撲結構 (135)
5.2.3 設備模型 (136)
5.3 Linux設備驅動程序結構 (139)
5.3.1 Linux設備驅動程序分層思想 (139)
5.3.2 Linux總線設備驅動程序注冊與注銷 (140)
5.3.3 設備打開與關閉 (144)
5.3.4 設備操作函數(shù) (145)
5.3.5 設備中斷與輪詢處理 (147)
5.4 platform總線與設備管理 (151)
5.4.1 platform總線的定義 (151)
5.4.2 platform總線設備重要數(shù)據(jù)結構與函數(shù) (153)
5.4.3 platform總線設備驅動程序實例 (158)
5.5 設備樹 (160)
5.5.1 設備樹的基本概念及作用 (160)
5.5.2 DTS、DTB和DTC (161)
5.5.3 DTS語法 (162)
5.5.4 設備與驅動程序的匹配 (170)
作業(yè) (173)
第6章 字符設備驅動程序與應用實例 (174)
6.1 字符設備驅動程序結構分析 (174)
6.1.1 字符設備驅動程序框架 (174)
6.1.2 字符設備驅動程序組成 (175)
6.2 GPIO設備驅動程序實例—LED驅動程序 (185)
6.2.1 寄存器地址映射 (186)
6.2.2 修改設備樹文件 (187)
6.2.3 LED驅動程序實例分析 (188)
6.3 基于platform總線的UART驅動程序實例 (195)
6.3.1 UART工作原理 (195)
6.3.2 Linux UART驅動程序結構分析 (196)
6.3.3 I.MX6U UART驅動程序分析 (202)
作業(yè) (211)
第7章 塊設備驅動程序與應用實例 (212)
7.1 塊設備驅動程序框架 (212)
7.1.1 塊設備數(shù)據(jù)交換方式 (212)
7.1.2 塊設備讀寫請求 (214)
7.2 塊設備驅動程序數(shù)據(jù)結構與函數(shù) (216)
7.2.1 gendisk數(shù)據(jù)結構與操作 (217)
7.2.2 request數(shù)據(jù)結構與操作 (220)
7.2.3 request_queue數(shù)據(jù)結構與操作 (223)
7.2.4 bio數(shù)據(jù)結構與操作 (226)
7.3 塊設備管理與操作 (229)
7.3.1 塊設備的注冊與注銷 (229)
7.3.2 塊設備初始化與卸載 (230)
7.3.3 塊設備操作 (232)
7.4 RAM驅動程序實例 (234)
7.4.1 SDRAM簡介 (234)
7.4.2 基于請求隊列的RAM驅動程序實例 (235)
作業(yè) (241)
第8章 網(wǎng)絡設備驅動程序與應用實例 (242)
8.1 Linux網(wǎng)絡設備驅動程序框架 (242)
8.1.1 網(wǎng)絡設備驅動程序框架 (242)
8.1.2 網(wǎng)絡設備驅動程序重要數(shù)據(jù)結構 (243)
8.1.3 網(wǎng)絡設備管理 (254)
8.1.4 網(wǎng)絡設備數(shù)據(jù)收發(fā) (264)
8.2 I.MX6ULL以太網(wǎng)驅動程序實例分析 (269)
8.2.1 I.MX6ULL網(wǎng)絡外設設備樹 (269)
8.2.2 I.MX6ULL網(wǎng)絡驅動程序源碼簡析 (272)
8.2.3 fec_netdev_ops操作集 (280)
作業(yè) (285)
第9章 Linux移植與系統(tǒng)啟動 (286)
9.1 Linux系統(tǒng)啟動與U-Boot (287)
9.1.1 Bootloader的選擇 (287)
9.1.2 U-Boot編譯流程分析 (289)
9.1.3 I.MX6 U-Boot啟動流程 (294)
9.2 Linux內(nèi)核裁剪 (298)
9.2.1 內(nèi)核配置過程分析 (298)
9.2.2 內(nèi)核編譯過程分析 (302)
9.2.3 內(nèi)核啟動過程分析 (305)
9.2.4 內(nèi)核移植過程 (319)
9.3 Linux根文件系統(tǒng)移植 (323)
9.3.1 根文件系統(tǒng)概述 (323)
9.3.2 編譯Busybox構建根文件系統(tǒng) (326)
9.3.3 根文件系統(tǒng)的啟動過程分析 (335)
作業(yè) (336)
第10章 Linux應用編程與實例 (337)
10.1 程序、進程與線程 (337)
10.1.1 程序和進程 (337)
10.1.2 進程和線程 (338)
10.2 線程管理 (339)
10.2.1 線程創(chuàng)建 (339)
10.2.2 線程管理 (342)
10.2.3 一個實例 (344)
10.3 C-V2X OBU應用編程實例 (345)
10.3.1 C-V2X OBU功能分析與軟件架構 (345)
10.3.2 應用程序設計 (349)
10.3.3 V2X消息接收線程 (353)
10.3.4 防撞預警線程 (357)
10.3.5 V2N通信線程 (360)
作業(yè) (367)
參考文獻 (368)