嵌入式系統(tǒng)原理與應(yīng)用——基于Linux和ARM
定 價(jià):69 元
當(dāng)前圖書(shū)已被 32 所學(xué)校薦購(gòu)過(guò)!
查看明細(xì)
- 作者:蔣建春
- 出版時(shí)間:2022/9/1
- ISBN:9787121442810
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP316.85;TP332.021
- 頁(yè)碼:380
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)基于典型的ARM處理器和Linux嵌入式系統(tǒng)講解嵌入式系統(tǒng)基本原理、軟件架構(gòu)和應(yīng)用設(shè)計(jì)等相關(guān)知識(shí);陂L(zhǎng)期的嵌入式系統(tǒng)開(kāi)發(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)用開(kāi)發(fā)結(jié)合起來(lái),形成一套完整的嵌入式系統(tǒng)原理、設(shè)計(jì)與開(kāi)發(fā)的教學(xué)內(nèi)容。本書(shū)結(jié)構(gòu)合理、層次清晰,易于理解和學(xué)習(xí),主要內(nèi)容包括:嵌入式系統(tǒng)基礎(chǔ),Linux操作系統(tǒng)基礎(chǔ)與內(nèi)核,Linux驅(qū)動(dòng)程序結(jié)構(gòu)、開(kāi)發(fā)與典型驅(qū)動(dòng)程序開(kāi)發(fā)實(shí)例,Linux系統(tǒng)移植與應(yīng)用程序開(kāi)發(fā)實(shí)例等。本書(shū)可供高等學(xué)校計(jì)算機(jī)、電子工程、自動(dòng)化與控制類(lèi)等專(zhuān)業(yè)的本科高年級(jí)學(xué)生作為教學(xué)參考書(shū)使用,也可供人工智能、機(jī)器人、智能網(wǎng)聯(lián)汽車(chē)等相關(guān)專(zhuān)業(yè)方向的碩士研究生參考。
蔣建春,教授/博士。汽車(chē)智能網(wǎng)聯(lián)技術(shù)重慶市高校工程研究中心 車(chē)聯(lián)網(wǎng)與智能交通研究所所長(zhǎng),重慶市學(xué)術(shù)技術(shù)帶頭人、芬蘭坦佩雷理工大學(xué)訪(fǎng)問(wèn)學(xué)者,重慶市物聯(lián)網(wǎng)產(chǎn)業(yè)協(xié)會(huì)委員會(huì)專(zhuān)家,成渝地區(qū)雙城經(jīng)濟(jì)圈科技創(chuàng)新聯(lián)盟專(zhuān)家,重慶智能網(wǎng)聯(lián)汽車(chē)技術(shù)創(chuàng)新聯(lián)盟專(zhuān)家。
目 錄
第1章 嵌入式系統(tǒng)基礎(chǔ) (1)
1.1 嵌入式系統(tǒng)概述 (1)
1.1.1 嵌入式系統(tǒng)基本概念 (1)
1.1.2 嵌入式系統(tǒng)的分類(lèi) (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 嵌入式軟件交叉開(kāi)發(fā)模式 (26)
1.4.1 交叉開(kāi)發(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í)行過(guò)程 (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è)寄存器訪(fǎng)問(wèn)方法 (48)
2.4 ARM異常處理 (50)
2.4.1 ARM處理器異常類(lèi)型 (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)核版本與分類(lè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常見(jiàn)文件系統(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í)行和銷(xiāo)毀 (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è)備分類(lèi) (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總線(xiàn)設(shè)備驅(qū)動(dòng)程序注冊(cè)與注銷(xiāo) (140)
5.3.3 設(shè)備打開(kāi)與關(guān)閉 (144)
5.3.4 設(shè)備操作函數(shù) (145)
5.3.5 設(shè)備中斷與輪詢(xún)處理 (147)
5.4 platform總線(xiàn)與設(shè)備管理 (151)
5.4.1 platform總線(xiàn)的定義 (151)
5.4.2 platform總線(xiàn)設(shè)備重要數(shù)據(jù)結(jié)構(gòu)與函數(shù) (153)
5.4.3 platform總線(xiàn)設(shè)備驅(qū)動(dòng)程序?qū)嵗?(158)
5.5 設(shè)備樹(shù) (160)
5.5.1 設(shè)備樹(shù)的基本概念及作用 (160)
5.5.2 DTS、DTB和DTC (161)
5.5.3 DTS語(yǔ)法 (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è)備樹(shù)文件 (187)
6.2.3 LED驅(qū)動(dòng)程序?qū)嵗治?(188)
6.3 基于platform總線(xiàn)的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è)備讀寫(xiě)請(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è)與注銷(xiāo) (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è)備樹(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)核配置過(guò)程分析 (298)
9.2.2 內(nèi)核編譯過(guò)程分析 (302)
9.2.3 內(nèi)核啟動(dòng)過(guò)程分析 (305)
9.2.4 內(nèi)核移植過(guò)程 (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)過(guò)程分析 (335)
作業(yè) (336)
第10章 Linux應(yīng)用編程與實(shí)例 (337)
10.1 程序、進(jìn)程與線(xiàn)程 (337)
10.1.1 程序和進(jìn)程 (337)
10.1.2 進(jìn)程和線(xiàn)程 (338)
10.2 線(xiàn)程管理 (339)
10.2.1 線(xiàn)程創(chuàng)建 (339)
10.2.2 線(xiàn)程管理 (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消息接收線(xiàn)程 (353)
10.3.4 防撞預(yù)警線(xiàn)程 (357)
10.3.5 V2N通信線(xiàn)程 (360)
作業(yè) (367)
參考文獻(xiàn) (368)