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

歡迎光臨中圖網(wǎng) 請 | 注冊
> >>
嵌入式Linux設(shè)備驅(qū)動程序開發(fā)指南(原書第2版)

包郵 嵌入式Linux設(shè)備驅(qū)動程序開發(fā)指南(原書第2版)

出版社:機(jī)械工業(yè)出版社出版時(shí)間:2021-07-01
開本: 16開 頁數(shù): 552
中 圖 價(jià):¥109.7(6.9折) 定價(jià)  ¥159.0 登錄后可看到會員價(jià)
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

嵌入式Linux設(shè)備驅(qū)動程序開發(fā)指南(原書第2版) 版權(quán)信息

嵌入式Linux設(shè)備驅(qū)動程序開發(fā)指南(原書第2版) 本書特色

適讀人群 :嵌入式系統(tǒng)和Linux應(yīng)用程序的開發(fā)人員,以及相關(guān)專業(yè)的學(xué)生和愛好者1.本書基于三種主流開發(fā)板(包括Raspberry Pi 3 Model B)編寫了近30個(gè)驅(qū)動程序的實(shí)驗(yàn),幫助讀者學(xué)習(xí)和掌握在嵌入式Linux系統(tǒng)中開發(fā)驅(qū)動程序的技巧和方法,這些驅(qū)動程序支持NXP i.MX7D、Microchip SAMA5D2和Broadcom BCM2837微處理器。 2.本書作者在嵌入式系統(tǒng)方面有超過15年的豐富工程實(shí)踐經(jīng)驗(yàn),他通過技術(shù)研討會、實(shí)踐講習(xí)班和本書的方式,將他在嵌入式Linux與Linux設(shè)備驅(qū)動程序開發(fā)的技巧和方法傳播和分享。本書中文版譯者也是相關(guān)領(lǐng)域的專家和愛好者,通過他們的專業(yè)翻譯,也讓讀者原汁原味地理解和體會該書的精華。 3.本書配套的開發(fā)工具和實(shí)驗(yàn)代碼都可以從網(wǎng)上獲得,或者通過書中作者提供的訪問鏈接下載,方便讀者閱讀實(shí)踐。

嵌入式Linux設(shè)備驅(qū)動程序開發(fā)指南(原書第2版) 內(nèi)容簡介

嵌入式微處理器功能強(qiáng)大、節(jié)能和低成本與嵌入式Linux系統(tǒng)的靈活性結(jié)合,促使業(yè)界許多公司基于嵌入式微處理器開發(fā)出了很多新產(chǎn)品。本書教讀者基于設(shè)備樹嵌入式Linux系統(tǒng)如何開發(fā)設(shè)備驅(qū)動程序。讀者將學(xué)習(xí)編寫不同類型的Linux驅(qū)動程序,以及與內(nèi)核和用戶空間交互的應(yīng)用程序程序接口(API)和方法。本書以實(shí)戰(zhàn)為核心,闡述了Linux內(nèi)核基礎(chǔ)知識,將編寫大約30個(gè)驅(qū)動程序并移植到三種不同的微處理器上。本書在實(shí)驗(yàn)部分中基于NXP i.MX7D、Microchip SAMA5D2和Broadcom BCM2837三種不同微處理器詳細(xì)闡述了驅(qū)動程序的開發(fā)的實(shí)現(xiàn),讀者可參考實(shí)驗(yàn)部分選擇開發(fā)和測試自己的驅(qū)動程序。在閱讀本書之前,建議讀者先購買一個(gè)基于這些微處理器之一的開發(fā)板,板上至少應(yīng)有一個(gè)SPI和I2C控制器,例如Raspberry Pi3模型B板。

嵌入式Linux設(shè)備驅(qū)動程序開發(fā)指南(原書第2版) 目錄

譯者序
前言
作者簡介
第1章 構(gòu)建系統(tǒng)1
1.1 引導(dǎo)加載程序1
1.2 Linux內(nèi)核3
1.3 系統(tǒng)調(diào)用接口和C運(yùn)行時(shí)庫6
1.4 系統(tǒng)共享庫7
1.5 根文件系統(tǒng)8
1.6 Linux啟動過程9
1.7 構(gòu)建嵌入式Linux系統(tǒng)10
1.8 設(shè)置以太網(wǎng)通信11
1.9 為NXP i.MX7D處理器構(gòu)建嵌入式Linux系統(tǒng)11
1.9.1 簡介12
1.9.2 主機(jī)軟件包12
1.9.3 設(shè)置repo工具13
1.9.4 Yocto工程的安裝和映像構(gòu)建13
1.9.5 Yocto 之外的工作15
1.9.6 構(gòu)建Linux內(nèi)核18
1.9.7 安裝TFTP服務(wù)器20
1.9.8 安裝NFS服務(wù)器20
1.9.9 設(shè)置U-Boot環(huán)境變量21
1.10 為Microchip SAMA5D2處理器構(gòu)建嵌入式Linux系統(tǒng)21
1.10.1 簡介22
1.10.2 主機(jī)軟件包22
1.10.3 Yocto工程的安裝和映像構(gòu)建22
1.10.4 Yocto 之外的工作25
1.10.5 構(gòu)建Linux內(nèi)核25
1.10.6 安裝TFTP服務(wù)器27
1.10.7 安裝NFS服務(wù)器27
1.10.8 設(shè)置U-Boot環(huán)境變量28
1.11 為Broadcom BCM2837處理器構(gòu)建Linux嵌入式系統(tǒng)28
1.11.1 Raspbian28
1.11.2 構(gòu)建Linux內(nèi)核29
1.11.3 將文件復(fù)制到Raspberry Pi31
1.12 使用Eclipse33
1.12.1 用于內(nèi)核源碼的Eclipse配置33
1.12.2 用于開發(fā)Linux驅(qū)動程序的Eclipse配置38
第2章 Linux設(shè)備與驅(qū)動模型42
2.1 總線核心驅(qū)動42
2.2 總線控制器驅(qū)動45
2.3 設(shè)備驅(qū)動45
2.4 設(shè)備樹簡介46
第3章 *簡驅(qū)動程序50
3.1 許可證51
3.2 實(shí)驗(yàn)3-1:“helloworld”模塊51
3.3 代碼清單3-1:helloworld_imx.c52
3.4 代碼清單3-2:Makefile52
3.5 helloworld_imx.ko演示53
3.6 實(shí)驗(yàn)3-2:“帶參數(shù)的helloworld”模塊53
3.7 代碼清單3-3:helloworld_imx_with_parameters.c54
3.8 helloworld_imx_with_parameters.ko演示54
3.9 實(shí)驗(yàn)3-3:“helloworld計(jì)時(shí)”模塊55
3.10 代碼清單3-4:helloworld_imx_with_timing.c55
3.11 helloworld_imx_with_timing.ko演示56
第4章 字符設(shè)備驅(qū)動57
4.1 實(shí)驗(yàn)4-1:“helloworld字符設(shè)備”模塊59
4.2 代碼清單4-1:helloworld_imx_char_driver.c63
4.3 代碼清單4-2:Makefile65
4.4 代碼清單 4-3:ioctl_test.c65
4.5 helloworld_imx_char_driver.ko演示66
4.6 將模塊添加到內(nèi)核構(gòu)建66
4.7 使用設(shè)備文件系統(tǒng)創(chuàng)建設(shè)備文件67
4.8 實(shí)驗(yàn)4-2:“class字符設(shè)備”模塊68
4.9 代碼清單4-4:helloworld_imx_class_driver.c70
4.10 helloworld_imx_class_driver.ko演示72
4.11 雜項(xiàng)字符設(shè)備驅(qū)動72
4.12 實(shí)驗(yàn)4-3:“雜項(xiàng)字符設(shè)備”模塊73
4.13 代碼清單4-5:misc_imx_driver.c74
4.14 misc_imx_driver.ko演示75
第5章 平臺設(shè)備驅(qū)動76
5.1 實(shí)驗(yàn)5-1:“平臺設(shè)備”模塊78
5.2 代碼清單5-1:hellokeys_imx.c81
5.3 hellokeys_imx.ko演示82
5.4 操作硬件的文檔82
5.5 硬件命名約定83
5.6 引腳控制器84
5.7 引腳控制子系統(tǒng)86
5.8 設(shè)備樹引腳控制器綁定92
5.9 GPIO 控制器驅(qū)動96
5.10 GPIO描述符使用者接口98
5.10.1 獲取和釋放GPIO98
5.10.2 使用GPIO99
5.10.3 GPIO映射到中斷99
5.10.4 GPIO設(shè)備樹100
5.11 在內(nèi)核和用戶態(tài)之間交換數(shù)據(jù)100
5.12 MMIO(內(nèi)存映射I/O)設(shè)備訪問101
5.13 實(shí)驗(yàn)5-2:“RGB LED平臺設(shè)備”模塊103
5.13.1 i.MX7D處理器的硬件描述103
5.13.2 SAMA5D2處理器的硬件描述105
5.13.3 BCM2837處理器的硬件描述107
5.13.4 i.MX7D處理器的設(shè)備樹107
5.13.5 SAMA5D2處理器的設(shè)備樹111
5.13.6 BCM2837處理器的設(shè)備樹114
5.13.7 “RGB LED平臺設(shè)備”模塊的代碼描述115
5.14 代碼清單5-2:ledRGB_sam_platform.c119
5.15 ledRGB_sam_platform.ko演示124
5.16 平臺驅(qū)動資源124
5.17 Linux LED類126
5.18 實(shí)驗(yàn)5-3:“RGB LED類”模塊128
5.18.1 i.MX7D、SAMA5D2和BCM2837處理器的設(shè)備樹128
5.18.2 “RGB LED類”模塊的代碼描述130
5.19 代碼清單5.3:ledRGB_sam_class_platform.c134
5.20 ledRGB_sam_class_platform.ko演示137
5.21 用戶態(tài)中的平臺設(shè)備驅(qū)動137
5.22 用戶定義的I/O:UIO139
5.22.1 UIO如何運(yùn)轉(zhuǎn)140
5.22.2 內(nèi)核中的UIO API141
5.23 實(shí)驗(yàn)5-4:“LED UIO平臺”模塊142
5.23.1 i.MX7D、SAMA5D2和BCM2837處理器的設(shè)備樹143
5.23.2 “LED UIO平臺”模塊的代碼描述144
5.24 代碼清單5-4:led_sam_UIO_platform.c146
5.25 代碼清單5-5:UIO_app.c148
5.26 led_sam_UIO_platform.ko及UIO_app演示150
第6章 I2C從端驅(qū)動151
6.1 Linux I2C 子系統(tǒng)152
6.2 編寫I2C 從端驅(qū)動155
6.2.1 注冊I2C從端驅(qū)動155
6.2.2 在設(shè)備樹中聲明I2C設(shè)備157
6.3 實(shí)驗(yàn)6-1:“I2C I/O 擴(kuò)展設(shè)備”模塊159
6.3.1 i.MX7D處理器的硬件描述159
6.3.2 SAMA5D2 處理器的硬件描述159
6.3.3 BCM2837處理器的硬件描述160
6.3.4 i.MX7D處理器的設(shè)備樹161
6.3.5 SAMA5D2處理器的設(shè)備樹162
6.3.6 BCM2837處理器的設(shè)備樹163
6.3.7 “I2C I/O擴(kuò)展設(shè)備”模塊的代碼描述164
6.4 代碼清單6-1:io_imx_expander.c167
6.5 io_imx_expander.ko演示170
6.6 sysfs文件系統(tǒng)171
6.7 實(shí)驗(yàn)6-2:“I2C多顯LED”模塊174
6.7.1 i.MX7D處理器的硬件描述175
6.7.2 SAMA5D2處理器的硬件描述176
6.7.3 BCM2837處理器的硬件描述176
6.7.4 i.MX7D處理器的設(shè)備樹177
6.7.5 SAMA5D2處理器的設(shè)備樹178
6.7.6 BCM2837處理器的設(shè)備樹180
6.7.7 ACPI和設(shè)備樹的統(tǒng)一設(shè)備屬性接口181
6.7.8 “I2C多顯LED”模塊的代碼描述182
6.8 代碼清單6-2:ltc3206_imx_led_class.c186
6.9 ltc3206_imx_led_class.ko演示192
第7章 處理設(shè)備驅(qū)動中的中斷194
7.1 GPIO控制器在Linux內(nèi)核的中斷域196
7.2 設(shè)備樹中斷處理203
7.3 在Linux設(shè)備驅(qū)動中申請中斷206
7.4 實(shí)驗(yàn)7-1:“按鈕中斷設(shè)備”模塊207
7.4.1 i.MX7D處理器的硬件描述208
7.4.2 SAMA5D2處理器的硬件描述208
7.4.3 BCM2837處理器的硬件描述208
7.4.4 i.MX7D 處理器的設(shè)備樹208
7.4.5 SAMA5D2 處理器的設(shè)備樹209
7.4.6 BCM2837 處理器的設(shè)備樹210
7.4.7 “按鈕中斷設(shè)備”模塊的代碼描述211
7.5 代碼清單7-1:int_imx_key.c213
7.6 int_imx_key.ko演示215
7.7 延遲工作215
7.7.1 軟中斷216
7.7.2 tasklet217
7.7.3 定時(shí)器218
7.7.4 線程化的中斷221
7.7.5 工作隊(duì)列223
7.8 內(nèi)核中的鎖226
7.8.1 鎖和單處理器內(nèi)核227
7.8.2 在中斷和進(jìn)程上下文之間共享自旋鎖227
7.8.3 在用戶上下文使用鎖227
7.9 內(nèi)核中的睡眠228
7.10 實(shí)驗(yàn)7-2:“睡眠設(shè)備”模塊229
7.10.1 i.MX7D處理器的設(shè)備樹230
7.10.2 SAMA5D2處理器的設(shè)備樹231
7.10.3 BCM2837處理器的設(shè)備樹232
7.10.4 “睡眠設(shè)備”模塊的代碼描述233
7.11 代碼清單7-2:int_imx_key_wait.c236
7.12 int_imx_key_wait.ko演示239
7.13 內(nèi)核線程239
7.14 實(shí)驗(yàn)7-3:“keyled類”模塊240
7.14.1 i.MX7D處理器的硬件描述240
7.14.2 SAMA5D2處理器的硬件描述241
7.14.3 BCM2837處理器的硬件描述241
7.14.4 i.MX7D 處理器的設(shè)備樹242
7.14.5 SAMA5D2處理器的設(shè)備樹245
7.14.6 BCM2837處理器的設(shè)備樹247
7.14.7 “keyled類”模塊的代碼描述249
7.15 代碼清單7-3:keyled_imx_class.c255
7.16 keyled_imx_class.ko演示264
第8章 在Linux驅(qū)動中分配內(nèi)存266
8.1 查詢ARM的MMU轉(zhuǎn)換表267
8.2 Linux地址的類型271
8.3 用戶進(jìn)程的虛擬地址到物理地址的映射273
8.4 內(nèi)核的虛擬地址到物理地址的映射273
8.5 內(nèi)核內(nèi)存分配器275
8.5.1 頁面分配器275
8.5.2 頁面分配器接口275
8.5.3 SLAB分配器276
8.5.4 SLAB分配器接口278
8.5.5 kmalloc內(nèi)存分配器279
8.6 實(shí)驗(yàn)8-1:“鏈表內(nèi)存分配”模塊280
8.7 代碼清單8-1:linkedlist_imx_platform.c283
8.8 linkedlist_imx_platform.ko演示287
第9章 在Linux設(shè)備驅(qū)動中使用DMA288
9.1 緩存一致性288
9.2 Linux DMA引擎API289
9.3 實(shí)驗(yàn)9-1:“流式DMA”模塊295
9.4 代碼清單9-1:sdma_imx_m2m.c302
9.5 sdma_imx_m2m.ko演示 306
9.6 DMA分散/聚集映射306
9.7 實(shí)驗(yàn)9-2:“分散/聚集DMA設(shè)備”模塊 307
9.8 代碼清單9-2:sdma_imx_sg_m2m.c310
9.9 sdma_imx_sg_m2m.ko演示 315
9.10 用戶態(tài)DMA315
9.11 實(shí)驗(yàn)9-3:“用戶態(tài)DMA”模塊317
9.12 代碼清單9-3:sdma_imx_mmap.c319
9.13 代碼清單9-4:sdma.c323
9.14 sdma_imx_mmap.ko演示324
第10章 輸入子系統(tǒng)設(shè)備驅(qū)動框架325
10.1 輸入子系統(tǒng)驅(qū)動程序326
10.2 實(shí)驗(yàn)10-1:“輸入子系統(tǒng)加速度計(jì)”模塊327
10.2.1 設(shè)備樹329
10.2.2 使用I2C交互的輸入框架330
10.2.3 使用輸入設(shè)備的輸入框架331
10.3 代碼清單10-1:i2c_imx_accel.c334
10.4 i2c_imx_accel.ko演示336
10.5 在Linux中使用SPI337
10.6 Linux的SPI子系統(tǒng)339
10.7 編寫SPI從設(shè)備驅(qū)動程序 342
10.7.1 注冊SPI從設(shè)備驅(qū)動程序 342
10.7.2 在設(shè)備樹中聲明SPI設(shè)備343
10.8 實(shí)驗(yàn)10-2:“SPI加速度計(jì)輸入設(shè)備”模塊346
10.8.1 i.MX7D 處理器的硬件描述347
10.8.2 SAMA5D2處理器的硬件描述 347
10.8.3 BCM2837處理器的硬件描述 348
10.8.4 i.MX7D處理器的設(shè)備樹348
10.8.5 SAMA5D2處理器的設(shè)備樹 349
10.8.6 BCM2837處理器的設(shè)

展開全部

嵌入式Linux設(shè)備驅(qū)動程序開發(fā)指南(原書第2版) 作者簡介

Alberto Liberty是Arrow Electronics的現(xiàn)場應(yīng)用工程師,在嵌入式系統(tǒng)方面有超過15年的經(jīng)驗(yàn)。在過去的幾年里,他一直在Arrow公司支持高端處理器和FPGA產(chǎn)品。Alberto也是Linux愛好者,在過去的幾年里,他舉辦了多場關(guān)于嵌入式Linux與Linux設(shè)備驅(qū)動程序的技術(shù)研討會和實(shí)踐講習(xí)班。Alberto的專業(yè)技能還包括多媒體芯片(SoC)和嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)。他目前居住在西班牙馬德里,他大的愛好是和女兒一起在馬德里市中心散步,他還喜歡閱讀電影雜志和觀看科幻電影。

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網(wǎng)
在線客服
主站蜘蛛池模板: 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 小型气象站_车载气象站_便携气象站-山东风途物联网 | 致胜管家软件服务【在线免费体验】 | 搜活动房网—活动房_集装箱活动房_集成房屋_活动房屋 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 郑州巴特熔体泵有限公司专业的熔体泵,熔体齿轮泵与换网器生产厂家 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 苗木价格-苗木批发-沭阳苗木基地-沭阳花木-长之鸿园林苗木场 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 上海小程序开发-小程序制作-上海小程序定制开发公司-微信商城小程序-上海咏熠 | 微水泥_硅藻泥_艺术涂料_艺术漆_艺术漆加盟-青岛泥之韵环保壁材 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | DDoS安全防护官网-领先的DDoS安全防护服务商 | 釜溪印象网络 - Powered by Discuz! | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 电力测功机,电涡流测功机,磁粉制动器,南通远辰曳引机测试台 | 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 喷涂流水线,涂装流水线,喷漆流水线-山东天意设备科技有限公司 | 康明斯发电机,上柴柴油发电机,玉柴柴油发电机组_海南重康电力官网 | 高硼硅玻璃|水位计玻璃板|光学三棱镜-邯郸奥维玻璃科技有限公司 高温高压釜(氢化反应釜)百科 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 洛阳装修公司-洛阳整装一站式品牌-福尚云宅装饰 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 截齿|煤截齿|采煤机截齿|掘进机截齿|旋挖截齿-山东卓力截齿厂家报价 | 余姚生活网_余姚论坛_余姚市综合门户网站 | 山东风淋室_201/304不锈钢风淋室净化设备厂家-盛之源风淋室厂家 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 |