0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

米爾科技LINUX設(shè)備驅(qū)動(dòng)程序教程

米爾科技 ? 來源:米爾科技 ? 作者:米爾科技 ? 2019-11-25 09:10 ? 次閱讀

內(nèi)容簡(jiǎn)介

本書是經(jīng)典著作《Linux設(shè)備驅(qū)動(dòng)程序》的第三版。如果您希望在Linux操作系統(tǒng)上支持計(jì)算機(jī)外部設(shè)備,或者在Linux上運(yùn)行新的硬件,或者只是希望一般性地了解Linux內(nèi)核的編程,就一定要閱讀本書。本書描述了如何針對(duì)各種設(shè)備編寫驅(qū)動(dòng)程序,而在過去,這些內(nèi)容僅僅以口頭形式交流,或者零星出現(xiàn)在神秘的代碼注釋中。
本書的作者均是Linux社區(qū)的領(lǐng)導(dǎo)者。JonathanCorbet雖不是專職的內(nèi)核代碼貢獻(xiàn)者,但他是備受關(guān)注的LWN.net新聞及信息網(wǎng)站的執(zhí)行編輯。AlessandroRubini是一名Linux代碼貢獻(xiàn)者,也是活躍的意大利Linux社區(qū)的靈魂人物。GregKroah-Hartman是目前內(nèi)核中USB、PCI和驅(qū)動(dòng)程序核心子系統(tǒng)(本書均有講述)的維護(hù)者。
本書的這個(gè)版本已針對(duì)Linux內(nèi)核的2.6.10版本徹底更新過了。內(nèi)核的這個(gè)版本針對(duì)常見任務(wù)完成了合理化設(shè)計(jì)及相應(yīng)的簡(jiǎn)化,如即插即用、利用sysfs文件系統(tǒng)和用戶空間交互,以及標(biāo)準(zhǔn)總線上的多設(shè)備管理等等。
要閱讀并理解本書,您不必首先成為內(nèi)核黑客;只要您理解C語言并具有Unix系統(tǒng)調(diào)用的一些背景知識(shí)即可。您將學(xué)到如何為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)接口編寫驅(qū)動(dòng)程序。為此,本書提供了完整的示例程序,您不需要特殊的硬件即可編譯和運(yùn)行這些示例程序。本書還在單獨(dú)的章節(jié)中講述了PCI、USB和tty(終端)子系統(tǒng)。對(duì)期望了解操作系統(tǒng)內(nèi)部工作原理的讀者來講,本書也深入闡述了地址空間、異步事件以及I/O等方面的內(nèi)容。
本書涵蓋的主題包括:
●完整的字符、塊、tty(終端)及網(wǎng)絡(luò)驅(qū)動(dòng)程序
●驅(qū)動(dòng)程序的調(diào)試
●中斷
●計(jì)時(shí)問題
●并發(fā)、鎖定和對(duì)稱多處理器系統(tǒng)(SMP)
●內(nèi)存管理和DMA
●驅(qū)動(dòng)程序模型和sysfs
●熱插拔設(shè)備

●對(duì)常見總線的描述,包括SCSI、PCI、USB和IEEE1394(火線)。

目錄

前言
第一章設(shè)備驅(qū)動(dòng)程序簡(jiǎn)介
設(shè)備驅(qū)動(dòng)程序的作用
內(nèi)核功能劃分
設(shè)備和模塊的分類
安全問題
版本編號(hào)
許可證條款
加入內(nèi)核開發(fā)社團(tuán)

本書概要

第二章構(gòu)造和運(yùn)行模塊
設(shè)置測(cè)試系統(tǒng)
HelloWorld模塊
核心模塊與應(yīng)用程序的對(duì)比
編譯和裝載
內(nèi)核符號(hào)表
預(yù)備知識(shí)
初始化和關(guān)閉
模塊參數(shù)
在用戶空間編寫驅(qū)動(dòng)程序
快速參考


第三章字符設(shè)備驅(qū)動(dòng)程序
scull的設(shè)計(jì)
主設(shè)備號(hào)和次設(shè)備號(hào)
一些重要的數(shù)據(jù)結(jié)構(gòu)
字符設(shè)備的注冊(cè)
open和release
scull的內(nèi)存使用
read和write
試試新設(shè)備
快速參考


第四章調(diào)試技術(shù)
內(nèi)核中的調(diào)試支持
通過打印調(diào)試
通過查詢調(diào)試
通過監(jiān)視調(diào)試
調(diào)試系統(tǒng)故障
調(diào)試器和相關(guān)工具

第五章并發(fā)和競(jìng)態(tài)
scull的缺陷
并發(fā)及其管理
信號(hào)量和互斥體
completion
自旋鎖
鎖陷阱
除了鎖之外的辦法
快速參考

第六章高級(jí)字符驅(qū)動(dòng)程序操作
ioctl
阻塞型I/O
poll和select
異步通知
定位設(shè)備
設(shè)備文件的訪問控制
快速參考

第七章時(shí)間、延遲及延緩操作
度量時(shí)間差
獲取當(dāng)前時(shí)間
延遲執(zhí)行
內(nèi)核定時(shí)器
tasklet
工作隊(duì)列
快速參考

第八章分配內(nèi)存
kmalloc函數(shù)的內(nèi)幕
后備高速緩存
get_free_page和相關(guān)函數(shù)
vmalloc及其輔助函數(shù)
per-CPU變量
獲取大的緩沖區(qū)
快速參考

第九章與硬件通信
I/O端口和I/O內(nèi)存
使用I/O端口
I/O端口示例
使用I/O內(nèi)存
快速參考

第十章中斷處理
準(zhǔn)備并口
安裝中斷處理例程
實(shí)現(xiàn)中斷處理例程
頂半部和底半部
中斷共享
中斷驅(qū)動(dòng)的I/O
快速參考

第十一章內(nèi)核的數(shù)據(jù)類型
使用標(biāo)準(zhǔn)C語言類型
為數(shù)據(jù)項(xiàng)分配確定的空間大小
接口特定的類型
其他有關(guān)移植性的問題
鏈表
快速參考

第十二章PCI驅(qū)動(dòng)程序
PCI接口
ISA回顧
PC/104和PC/104+
其他的PC總線
SBus
NuBus
外部總線
快速參考

第十三章USB驅(qū)動(dòng)程序
USB設(shè)備基礎(chǔ)
USB和Sysfs
USBurb
編寫USB驅(qū)動(dòng)程序
不使用urb的USB傳輸
快速參考

第十四章Linux設(shè)備模型
kobject、kset和子系統(tǒng)
低層sysfs操作
熱插拔事件的產(chǎn)生
總線、設(shè)備和驅(qū)動(dòng)程序

各環(huán)節(jié)的整合
熱插拔
處理固件
快速索引

第十五章內(nèi)存映射和DMA
Linux的內(nèi)存管理
mmap設(shè)備操作
執(zhí)行直接I/O訪問
直接內(nèi)存訪問
快速參考

第十六章塊設(shè)備驅(qū)動(dòng)程序
注冊(cè)
塊設(shè)備操作
請(qǐng)求處理
其他一些細(xì)節(jié)
快速參考

第十七章網(wǎng)絡(luò)驅(qū)動(dòng)程序
snull設(shè)計(jì)
連接到內(nèi)核
net_device結(jié)構(gòu)細(xì)節(jié)
打開和關(guān)閉
數(shù)據(jù)包傳輸
數(shù)據(jù)包的接收
中斷處理例程
不使用接收中斷
鏈路狀態(tài)的改變
套接字緩沖區(qū)
MAC地址解析
定制ioctl命令
統(tǒng)計(jì)信息
組播
其他知識(shí)點(diǎn)詳解
快速參考

第十八章TTY驅(qū)動(dòng)程序
小型TTY驅(qū)動(dòng)程序
tty_driver函數(shù)指針
TTY線路設(shè)置
ioctls
proc和sysfs對(duì)TTY設(shè)備的處理
tty_driver結(jié)構(gòu)詳解
tty_operations結(jié)構(gòu)詳解
tty_struct結(jié)構(gòu)詳解
快速參考
參考書目


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209496
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35334
  • 米爾科技
    +關(guān)注

    關(guān)注

    5

    文章

    227

    瀏覽量

    20969
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    linux驅(qū)動(dòng)程序的主要流程和功能

    驅(qū)動(dòng)程序是用于控制和管理硬件設(shè)備的軟件模塊,它主要負(fù)責(zé)與設(shè)備進(jìn)行交互,通過操作設(shè)備的寄存器和接口,實(shí)現(xiàn)對(duì)硬件的控制和訪問。在Linux系統(tǒng)中
    的頭像 發(fā)表于 12-08 14:56 ?2493次閱讀

    linux設(shè)備驅(qū)動(dòng)程序pdf(第三版)

    linux設(shè)備驅(qū)動(dòng)程序是經(jīng)典著作《Linux 設(shè)備驅(qū)動(dòng)程序》的第三版。該版本已針對(duì)
    發(fā)表于 09-10 11:42 ?0次下載

    Linux設(shè)備驅(qū)動(dòng)程序開發(fā)

    本文主要講述的是Linux設(shè)備驅(qū)動(dòng)程序開發(fā)。
    發(fā)表于 04-22 16:37 ?41次下載

    基于Linux操作系統(tǒng)的設(shè)備驅(qū)動(dòng)程序開發(fā)

    本文介紹了Linux 系統(tǒng)的特點(diǎn),闡述了在Linux 操作系統(tǒng)下,對(duì)系統(tǒng)硬件的訪問和開發(fā)驅(qū)動(dòng)程序的方法,說明了設(shè)備驅(qū)動(dòng)程序的結(jié)構(gòu)和編寫過程。
    發(fā)表于 09-02 17:11 ?20次下載

    Linux設(shè)備驅(qū)動(dòng)程序的編寫

    本站提供的Linux設(shè)備驅(qū)動(dòng)程序的編寫資料,希望對(duì)你的學(xué)習(xí)有幫助。 世界各地都有人在鉆研Linux內(nèi)核,大多是在寫設(shè)備
    發(fā)表于 05-25 16:24 ?108次下載

    LINUX設(shè)備驅(qū)動(dòng)程序

    LINUX設(shè)備驅(qū)動(dòng)程序又名LDD,不想再強(qiáng)調(diào)這本書的重要性了,因?yàn)樾袠I(yè)內(nèi)的人都知道!2000年版次
    發(fā)表于 11-03 17:32 ?0次下載

    第9章 Linux驅(qū)動(dòng)程序設(shè)計(jì)

    9.1 Linux 設(shè)備驅(qū)動(dòng)程序 9.2 Linux經(jīng)典Hello world驅(qū)動(dòng)程序 9.3 Li
    發(fā)表于 04-11 14:56 ?3次下載

    Linux字符設(shè)備驅(qū)動(dòng)程序的實(shí)現(xiàn)

    一、Linux device driver 的概念 系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核和應(yīng)用程序之間的接口,設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口。設(shè)備
    發(fā)表于 10-21 09:54 ?0次下載

    Linux系統(tǒng)網(wǎng)絡(luò)驅(qū)動(dòng)程序的編寫

    驅(qū)動(dòng)程序編寫 一.Linux系統(tǒng)設(shè)備驅(qū)動(dòng)程序概述 1.1 Linux設(shè)備
    發(fā)表于 11-07 10:40 ?0次下載

    嵌入式Linux設(shè)備驅(qū)動(dòng)程序開發(fā)基礎(chǔ)知識(shí)總結(jié)免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是嵌入式Linux設(shè)備驅(qū)動(dòng)程序開發(fā)基礎(chǔ)知識(shí)總結(jié)免費(fèi)下載 嵌入式Linux設(shè)備
    發(fā)表于 10-23 16:10 ?13次下載

    Linux設(shè)備驅(qū)動(dòng)程序的平臺(tái)驅(qū)動(dòng)程序和字符驅(qū)動(dòng)程序介紹

    了解Linux設(shè)備驅(qū)動(dòng)程序的基礎(chǔ)知識(shí),重點(diǎn)介紹平臺(tái)驅(qū)動(dòng)程序和字符驅(qū)動(dòng)程序。 提出了簡(jiǎn)單的平臺(tái)驅(qū)動(dòng)程序
    的頭像 發(fā)表于 11-27 06:32 ?4308次閱讀

    如何為Linux編寫用戶空間設(shè)備驅(qū)動(dòng)程序

    了解如何為Linux編寫用戶空間設(shè)備驅(qū)動(dòng)程序。 用戶空間驅(qū)動(dòng)程序為某些設(shè)備提供內(nèi)核空間驅(qū)動(dòng)程序
    的頭像 發(fā)表于 11-22 07:04 ?3761次閱讀

    ADIS1613x Linux設(shè)備驅(qū)動(dòng)程序

    ADIS1613x Linux設(shè)備驅(qū)動(dòng)程序
    發(fā)表于 03-22 14:37 ?7次下載
    ADIS1613x <b class='flag-5'>Linux</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>驅(qū)動(dòng)程序</b>

    linux驅(qū)動(dòng)程序如何加載進(jìn)內(nèi)核

    Linux系統(tǒng)中,驅(qū)動(dòng)程序是內(nèi)核與硬件設(shè)備之間的橋梁。它們?cè)试S內(nèi)核與硬件設(shè)備進(jìn)行通信,從而實(shí)現(xiàn)對(duì)硬件設(shè)備的控制和管理。
    的頭像 發(fā)表于 08-30 15:02 ?473次閱讀

    Linux設(shè)備驅(qū)動(dòng)程序分類有哪些

    Linux設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)與硬件設(shè)備之間的橋梁,負(fù)責(zé)實(shí)現(xiàn)硬件設(shè)備與操作系統(tǒng)之間的通信和控制。Lin
    的頭像 發(fā)表于 08-30 15:11 ?567次閱讀