中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
嵌入式LINUX驅動開發實踐

包郵 嵌入式LINUX驅動開發實踐

出版社:清華大學出版社出版時間:2024-01-01
開本: 其他 頁數: 368
中 圖 價:¥63.3(7.1折) 定價  ¥89.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

嵌入式LINUX驅動開發實踐 版權信息

嵌入式LINUX驅動開發實踐 本書特色

嵌入式開發的涉及面很廣,必須集中某個知識點學透相關知識,才能從事這方面的基本開發工作,然后在工作中不斷提高。那應該如何進行學習呢?筆者的經驗是分兩大塊來學,分別是主機端的驅動和設備端的系統構建。
本書內容經過精心設計,使用Linux虛擬機來學習驅動開發,并使用QEMU軟件模擬一個開發板來學習設備端系統的構建,降低讀者學習成本和入門門檻。

嵌入式LINUX驅動開發實踐 內容簡介

人們日常生活中打交道*多的就是嵌入式系統,目前廣泛使用的手機、MP3播放器、智能家用電器、無人機、自動駕駛汽車、機器人等都用到了嵌入式系統,嵌入式系統的開發占整個計算機系統開發的比重也越來越大。本書詳細講解嵌入式Linux驅動開發和設備端系統構建,并配套全書實例源代碼和作者QQ答疑服務。 《嵌入式Linux驅動開發實踐》共分12章,內容包括嵌入式系統概述、搭建Linux安全開發環境、必會的嵌入式開發應用層技術、內核模塊開發、字符設備驅動、驅動模塊的并發控制、塊設備驅動、Linux平臺驅動、基于AArch64的內核和文件系統、設備樹、I2C驅動實戰、SPI驅動實戰。 《嵌入式Linux驅動開發實踐》適合作為嵌入式Linux驅動開發初學者的入門書,以及嵌入式Linux開發人員的參考書,也適合作為高等院校電子、通信、自動化、計算機等專業“嵌入式操作系統”課程的教材和教學參考書。

嵌入式LINUX驅動開發實踐 目錄


第 1 章 嵌入式系統概述 1
1.1 嵌入式系統 1
1.2 Linux操作系統 2
1.3 Linux作為嵌入式操作系統的優勢 2
1.4 嵌入式系統的開發流程 4
1.5 嵌入式Linux系統的體系結構 5
1.5.1 嵌入式處理器 5
1.5.2 嵌入式外圍硬件設備 5
1.5.3 嵌入式操作系統 6
1.5.4 設備驅動 6
1.5.5 嵌入式應用軟件 6
1.6 嵌入式Linux系統的設計與實現 6
1.7 Linux操作系統內核 7
1.7.1 Linux內核的組成 7
1.7.2 Linux內核各部分的工作機制 8
1.8 Linux設備驅動程序 12
1.8.1 Linux設備驅動概述 12
1.8.2 設備驅動的功能 13
1.8.3 設備的分類 13
1.8.4 驅動的分類 14
1.8.5 設備驅動與內核的關系 16
1.8.6 設備驅動的結構 17
1.8.7 設備驅動的設計和實現步驟 19
第 2 章 搭建Linux驅動開發環境 22
2.1 準備虛擬機環境 22
2.1.1 在VMware下安裝Linux 22
2.1.2 開啟登錄時的root賬號 25
2.1.3 關閉內核自動更新 27
2.1.4 解決Ubuntu上的vi方向鍵問題 27
2.1.5 關閉防火墻 27
2.1.6 配置安裝源 28
2.1.7 安裝網絡工具包 28
2.1.8 安裝基本開發工具 29
2.1.9 啟用SSH 29
2.1.10 做個快照 30
2.1.11 連接虛擬機Linux 31
2.1.12 和虛擬機互傳文件 42
2.2 安裝編譯工具 42
2.3 使用VS Code開發內核驅動程序 43
2.4 使用Visual C 2017開發應用程序 48
第 3 章 嵌入式開發必會應用層技術 51
3.1 Linux啟動過程 51
3.2 圖形模式與命令模式的切換方式 53
3.3 在文件中搜索 53
3.4 Linux關機和重啟 54
3.5 開機自啟動 55
3.6 查看Ubuntu的內核版本 56
3.7 查看Ubuntu操作系統的版本 57
3.8 配置文件的區別 57
3.9 讓/etc/profile文件修改后立即生效 58
3.10 測試Web服務器的性能 59
3.10.1 架設Web服務器Apache 59
3.10.2 在Windows下測試Web服務器的性能 60
3.10.3 在Linux下測試Web服務器的性能 61
3.11 Linux中的文件權限 66
3.12 環境變量的獲取和設置 66
3.13 解析命令行參數函數 69
第 4 章 內核模塊開發 70
4.1 Linux內核概述 70
4.2 內核模塊簡介 71
4.2.1 何為內核模塊 71
4.2.2 增加內核功能的兩種方法 72
4.2.3 使用模塊的優缺點 72
4.2.4 常用的模塊操作命令 72
4.2.5 Linux內核程序結構 73
第 5 章 字符設備驅動 76
5.1 Linux設備框架 76
5.2 字符設備的概念 77
5.3 字符設備驅動 80
5.3.1 file_operations結構體 80
5.3.2 字符設備驅動開發步驟 82
5.3.3 設備號的分配 85
5.4 驅動開發的常用函數 86
5.4.1 copy_from_user函數 86
5.4.2 copy_to_user函數 87
5.4.3 printk函數 88
5.4.4 register_chrdev函數 89
5.4.5 register_chrdev_region函數 91
5.4.6 alloc_chrdev_region函數 91
5.4.7 cdev_init函數 91
5.4.8 cdev_alloc函數 92
5.4.9 cdev_add函數 93
5.4.10 cdev_del函數 95
5.4.11 宏class_create 95
5.4.12 device_create函數 96
5.4.13 device_del函數 96
5.4.14 unregister_chrdev函數 97
5.4.15 實戰字符設備驅動 97
5.5 字符設備的ioctl接口 106
5.5.1 什么是ioctl接口 106
5.5.2 為什么要引入ioctl接口 106
5.5.3 ioctl如何使用 106
5.5.4 定義命令 107
5.5.5 ioctl的基本應用 109
5.5.6 ioctl處理結構體 112
5.6 Linux虛擬驅動框架設計 114
5.7 虛擬LED驅動的實現 116
第 6 章 驅動模塊的并發控制 122
6.1 嵌入式Linux系統的空間組成 122
6.1.1 操作系統內核 122
6.1.2 操作系統的空間組成及模式 123
6.1.3 用戶空間訪問內核空間及模式切換 123
6.2 進程的基本概念 124
6.2.1 進程和線程的定義 124
6.2.2 進程的類型 125
6.2.3 進程的內存結構 125
6.2.4 多任務機制 126
6.2.5 進程與程序 126
6.2.6 進程標識符 127
6.2.7 線程標識符 129
6.2.8 線程組及其標識符TGID 129
6.2.9 進程描述符 131
6.2.10 會話、進程組以及控制終端 138
6.3 PID的管理 139
6.3.1 PID散列表 140
6.3.2 PID命名空間 140
6.3.3 局部ID和全局ID 142
6.3.4 進程PID結構 143
6.3.5 pid_link哈希表存儲 143
6.4 進程切換分析 145
6.4.1 進程的模式和分類 145
6.4.2 進程的5種基本狀態 146
6.4.3 進程的切換過程分析 147
6.5 內核進程和線程管理編程 148
6.5.1 獲得進程PID結構體 148
6.5.2 從命名空間下的PID找到對應的PID結構體 149
6.5.3 獲取進程的進程號 150
6.5.4 改變PID結構體的count字段 151
6.5.5 獲取進程描述符信息 152
6.5.6 釋放進程所占用的Cache空間 153
6.5.7 喚醒進程 154
6.5.8 創建一個新的內核線程 156
6.5.9 終止指定進程 158
6.5.10 結束當前正在執行的進程 159
6.6 并發控制的基本概念 160
6.6.1 什么是并發 160
6.6.2 臨界資源與臨界區 160
6.6.3 原子操作 160
6.6.4 并發控制的內容 161
6.6.5 為何要并發控制 161
6.7 設備驅動的并發控制機制 162
6.7.1 并發控制的基礎操作 162
6.7.2 自旋鎖 164
6.7.3 信號量 165
6.7.4 其他的并發控制機制 166
6.7.5 驅動并發控制的設計方法 167
6.8 內核同步編程 170
6.8.1 設置原子類型的變量并讀取 170
6.8.2 遞增遞減原子變量值 171
6.8.3 初始化信號量 172
6.8.4 獲取信號量并減1(不可中斷) 173
6.8.5 獲取信號量并減1(可中斷) 174
6.8.6 在指定的時間內獲取信號量 175
6.8.7 釋放信號量 176
第 7 章 塊設備驅動 178
7.1 塊設備的概念 178
7.1.1 什么是塊設備 178
7.1.2 常用的塊設備 178
7.1.3 塊設備和字符設備的區別 179
7.1.4 塊設備相關的幾個單位 180
7.1.5 塊設備的訪問 181
7.2 塊設備驅動程序的概念 182
7.2.1 什么是塊設備驅動程序 182
7.2.2 為什么需要了解塊設備驅動 182
7.2.3 塊設備驅動的組成部分 183
7.2.4 塊設備驅動框架 184
7.3 塊設備驅動的關鍵數據結構 187
7.3.1 通用硬盤結構gendisk 187
7.3.2 塊設備對象結構block_device 188
7.3.3 bio結構 189
7.3.4 請求隊列request_queue結構 189
7.3.5 請求結構request 190
7.3.6 磁盤操作結構block_device_operations 191
7.4 塊設備驅動中的I/O請求處理函數 192
7.4.1 使用請求隊列處理I/O請求 192
7.4.2 不使用請求隊列處理I/O請求 192
7.5 塊設備驅動編寫的步驟 193
7.6 重要函數 193
7.6.1 注冊 193
7.6.2 塊設備操作 194
7.7 實戰案例:用RAM模擬一個塊設備 195
第 8 章 Linux平臺驅動 203
8.1 平臺設備驅動模型 203
8.1.1 驅動的分隔與分離 203
8.1.2 驅動的分層 205
8.1.3 基本概念 205
8.1.4 什么是platform總線 206
8.2 platform驅動 209
8.2.1 platform_driver結構體 209
8.2.2 platform主要函數 211
8.2.3 platform驅動框架 212
8.2.4 platform_device的注冊過程 214
8.3 platform設備 215
8.4 實現platform驅動 218
第 9 章 基于AArch64的內核和文件系統 229
9.1 認識QEMU 230
9.1.1 QEMU是什么 230
9.1.2 QEMU的兩種執行模式 231
9.1.3 QEMU的用途 231
9.1.4 使用QEMU虛擬機的幾種選擇 231
9.2 不編譯運行AArch64程序 232
9.2.1 準備一個現成的AArch64程序 233
9.2.2 安裝Linux版的QEMU 233
9.2.3 下載交叉編譯器 238
9.2.4 讓AArch64程序運行起來 238
9.3 編譯運行AArch64程序 240
9.4 制作簡易文件系統 244
9.4.1 BusyBox簡介 245
9.4.2 編譯/安裝BusyBox 246
9.4.3 制作根文件系統的映像文件 249
9.5 非嵌入式方式啟動內核 250
9.5.1 BusyBox啟動過程簡要分析 254
9.5.2 在新內核系統中運行C程序 256
9.6 基本功能的完善 257
9.6.1 掛載proc支持ifconfig 257
9.6.2 掛載sysfs支持lspci 259
9.6.3 實現文件系統可寫 264
9.7 QEMU用戶網絡模式 265
9.7.1 不使用-net選項 265
9.7.2 使用-net選項 269
9.8 QEMU橋接網絡模式 270
9.8.1 網橋的概念 270
9.8.2 TUN/TAP的工作原理 270
9.8.3 帶TAP的QEMU系統架構 272
9.8.4 brctl的簡單用法 273
9.8.5 三個網絡配置選項 275
9.8.6 實戰橋接模式網絡 277
9.8.7 手工命令創建TAP網卡 282
9.8.8 使用qemu-ifup 284
9.9 QEMU運行國產操作系統 285
9.9.1 安裝Windows版的QEMU 286
9.9.2 UEFI固件下載 286
9.9.3 安裝麒麟操作系統 287
9.9.4 運行麒麟系統 289
第 10 章 設備樹 291
10.1 設備樹的概念 291
10.1.1 什么是設備樹 291
10.1.2 設備樹的起源 292
10.1.3 Linux內核對硬件的描述方式 294
10.1.4 設備樹和內核的關系 295
10.2 DTS文件和DTSI文件 295
10.3 DTB文件和DTC文件 296
10.4 設備樹框架 297
10.4.1 布局與節點 298
10.4.2 節點名 299
10.4.3 引用 300
10.4.4 cpus節點 301
10.5 屬性 302
10.5.1 兼容性屬性 303
10.5.2 model屬性 305
10.5.3 status屬性 305
10.5.4 #address-cells和#size-cells 305
10.5.5 reg屬性 306
10.5.6 ranges屬性 307
10.5.7 name屬性 308
10.5.8 device_type屬性 308
10.5.9 address屬性 308
10.5.10 interrupts屬性 309
10.6 設備樹操作常用API 311
10.6.1 device_node 311
10.6.2 查找節點API 312
10.6.3 提取通用屬性API 312
10.6.4 提取addr屬性API 313
10.6.5 提取resource屬性API 314
10.6.6 提取GPIO屬性API 315
10.6.7 提取irq屬性API 315
10.6.8 從設備樹中提取MAC地址 315
10.7 編寫設備樹并編譯 315
第 11 章 I2C驅動實戰 317
11.1 I2C的基本概念 317
11.1.1 總線的定義 317
11.1.2 什么是I2C 318
11.1.3 I2C總線 318
11.1.4 I2C總線規范 318
11.1.5 I2C總線的特點 319
11.2 I2C驅動實戰 320
第 12 章 SPI驅動實戰 334
12.1 SPI概述 334
12.1.1 什么是SPI 334
12.1.2 SPI工作模式 337
12.1.3 SPI傳輸機制 338
12.1.4 I2C和SPI的對比 340
12.2 SPI驅動軟件架構 340
12.2.1 SPI通用設備驅動程序 341
12.2.2 SPI控制器驅動程序 342
12.2.3 SPI協議驅動程序 342
12.2.4 隊列化 343
12.3 SPI虛擬驅動實戰 343
展開全部

嵌入式LINUX驅動開發實踐 作者簡介

朱文偉,名校計算機專業統招碩士,20多年C\C 、Java開發經驗。主導開發過密碼、圖形、人工智能等產品。精通Linux、Windows系統開發及數據庫開發技術。著有圖書:
《高性能Linux網絡編程核心技術揭秘》《Linux C/C 服務器開發實踐》《Qt 6.x從入門到精通》《PyQt 5從入門到精通》《Linux C與C 一線開發實踐》《Visual C 2017從入門到精通》《Windows C/C 加密解密實戰》《密碼學原理與Java實現》《OpenCV 4.5計算機視覺開發實戰(基于VC )》《OpenCV 4.5計算機視覺開發實戰:基于Python》。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | 钢格板_钢格栅_格栅板_钢格栅板 - 安平县鑫拓钢格栅板厂家 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 无刷电机_直流无刷电机_行星减速机-佛山市藤尺机电设备有限公司 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 吹田功率计-长创耐压测试仪-深圳市新朗普电子科技有限公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | EPDM密封胶条-EPDM密封垫片-EPDM生产厂家 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 非小号行情 - 专业的区块链、数字藏品行情APP、金色财经官网 | 好物生环保网、环保论坛 - 环保人的学习交流平台 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 山东艾德实业有限公司 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 春腾云财 - 为企业提供专业财税咨询、代理记账服务 | 考勤系统_考勤管理系统_网络考勤软件_政企|集团|工厂复杂考勤工时统计排班管理系统_天时考勤 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 灌装封尾机_胶水灌装机_软管灌装封尾机_无锡和博自动化机械制造有限公司 | 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 中药超微粉碎机(中药细胞级微粉碎)-百科 | 合肥升降机-合肥升降货梯-安徽升降平台「厂家直销」-安徽鼎升自动化科技有限公司 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 工业铝型材-铝合金电机壳-铝排-气动执行器-山东永恒能源集团有限公司 | 尊享蟹太太美味,大闸蟹礼卡|礼券|礼盒在线预订-蟹太太官网 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) |