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