新聞中心
隨著科技的發(fā)展,計(jì)算機(jī)操作系統(tǒng)也在不斷地演化和完善。Linux作為一個(gè)免費(fèi)開(kāi)源的操作系統(tǒng),越來(lái)越受到人們的青睞。為了滿(mǎn)足不同用戶(hù)的需求,Linux系統(tǒng)提供了各種不同的驅(qū)動(dòng)程序,其中字符設(shè)備驅(qū)動(dòng)程序是其中一種。本文將為大家介紹如何編譯Linux字符設(shè)備驅(qū)動(dòng)程序。

為于田等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及于田網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、于田網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
一、環(huán)境準(zhǔn)備
需要準(zhǔn)備好以下工具和環(huán)境:
1. Linux操作系統(tǒng);
2. 安裝好編譯工具鏈(gcc、make);
3. Linux內(nèi)核源碼;
4. Linux驅(qū)動(dòng)程序源碼。
在進(jìn)行編譯之前,需要確保以上環(huán)境準(zhǔn)備工作已經(jīng)完成。
二、內(nèi)核模塊編譯
內(nèi)核模塊是Linux內(nèi)核中運(yùn)行的一段代碼,它可以動(dòng)態(tài)添加或者移除。字符設(shè)備驅(qū)動(dòng)程序通常是內(nèi)核模塊中的一個(gè)。因此,要編譯一個(gè)字符設(shè)備驅(qū)動(dòng)程序,首先需要編譯內(nèi)核模塊。
以下是內(nèi)核模塊的編譯步驟:
1. 進(jìn)入內(nèi)核源碼目錄,執(zhí)行make modules_prepare命令,以確保內(nèi)核源碼能夠被編譯。該命令會(huì)創(chuàng)建一些目錄和符號(hào)鏈接,以便于內(nèi)核模塊的編譯。
2. 進(jìn)入內(nèi)核模塊的源碼目錄,執(zhí)行make命令即可編譯內(nèi)核模塊。如果編譯成功,會(huì)生成一個(gè).ko文件,即內(nèi)核模塊。
3. 在編譯過(guò)程中,可能會(huì)遇到一些錯(cuò)誤,需要根據(jù)錯(cuò)誤提示進(jìn)行修復(fù)。常見(jiàn)的錯(cuò)誤包括頭文件找不到、鏈接錯(cuò)誤等。
三、設(shè)備文件和用戶(hù)空間程序編譯
為了使用內(nèi)核模塊,需要編寫(xiě)一個(gè)用戶(hù)空間程序,以及設(shè)備文件。設(shè)備文件可以看做是用戶(hù)空間程序和內(nèi)核模塊之間的一座橋梁,用戶(hù)空間程序通過(guò)打開(kāi)設(shè)備文件與內(nèi)核模塊通訊。
以下是設(shè)備文件和用戶(hù)空間程序的編譯步驟:
1. 創(chuàng)建設(shè)備文件:
mknod /dev/device_name c major_number minor_number
其中,device_name是設(shè)備文件的名稱(chēng),major_number是內(nèi)核模塊的主設(shè)備號(hào),minor_number是內(nèi)核模塊的次設(shè)備號(hào)。
2. 編寫(xiě)用戶(hù)空間程序:
#include
#include
#include
#include
#include “device_ioctl.h”
int mn()
{
int fd;
int temp = 0;
fd = open(“/dev/device_name”, O_RDWR);
if(fd
{
printf(“open device error\n”);
return -1;
}
ioctl(fd, DEVICE_IOCTL_SET, &temp);
close(fd);
return 0;
}
其中,DEVICE_IOCTL_SET是內(nèi)核模塊中的ioctl命令,用來(lái)通知內(nèi)核模塊執(zhí)行某些功能。
3. 編譯用戶(hù)空間程序:
gcc -o user_app user_app.c
4. 在編譯過(guò)程中,可能會(huì)遇到一些錯(cuò)誤,需要根據(jù)錯(cuò)誤提示進(jìn)行修復(fù)。常見(jiàn)的錯(cuò)誤包括頭文件找不到、鏈接錯(cuò)誤等。
四、模塊加載和卸載
在完成內(nèi)核模塊、設(shè)備文件和用戶(hù)空間程序的編譯之后,就可以將內(nèi)核模塊加載到內(nèi)核中,讓設(shè)備文件和用戶(hù)空間程序使用了。
以下是模塊加載和卸載的步驟:
1. 加載內(nèi)核模塊:
inod module_name.ko
2. 卸載內(nèi)核模塊:
rmmod module_name.ko
在加載和卸載內(nèi)核模塊的過(guò)程中,可能會(huì)遇到一些錯(cuò)誤,需要根據(jù)錯(cuò)誤提示進(jìn)行修復(fù)。常見(jiàn)的錯(cuò)誤包括模塊已經(jīng)加載或者卸載、模塊依賴(lài)錯(cuò)誤等。
相關(guān)問(wèn)題拓展閱讀:
- Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)入門(mén)與編程實(shí)踐的目錄
Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)入門(mén)與編程實(shí)踐的目錄
第1章嵌入式Linux系統(tǒng)開(kāi)發(fā)概述
1.1嵌入式系統(tǒng)概述
1.1.1你身邊的嵌入式系統(tǒng)
1.1.2什么是嵌入式系統(tǒng)
1.1.3嵌入式系統(tǒng)的發(fā)展
1.1.4嵌入式系統(tǒng)市場(chǎng)規(guī)模
1.1.5嵌入式系統(tǒng)發(fā)展趨勢(shì)和面臨的挑戰(zhàn)
1.2嵌入式操作系統(tǒng)
1.2.1嵌入式操作系統(tǒng)的特昌蘆點(diǎn)
1.2.2嵌入式操作系統(tǒng)發(fā)展概述
1.2.3Linux操作系統(tǒng)特點(diǎn)
1.2.4嵌入式Linux系統(tǒng)的特點(diǎn)
1.2.5國(guó)外嵌入式Linux發(fā)展現(xiàn)狀
1.2.6國(guó)內(nèi)嵌入式Linux發(fā)展現(xiàn)狀
1.3ARM處理器平臺(tái)介紹
1.3.1嵌入式處理器特點(diǎn)與分類(lèi)
1.3.2ARM處理器介紹
1.3.3ARM體系結(jié)構(gòu)
1.4嵌入式Linux的體系結(jié)構(gòu)分析
1.4.1嵌入式系統(tǒng)的體系結(jié)構(gòu)
1.4.2硬件抽象層的Linux
1.5基本編輯器vi的使用
1.5.1進(jìn)入和退出vi
1.5.2vi的基本編輯命令
1.5.3vi的高級(jí)編輯命令
1.6高級(jí)編輯器Emacs的使用
1.6.1Emacs的啟動(dòng)與退出
1.6.2Emacs的基本操作
1.6.3Emacs的高級(jí)命令
1.7編譯器GCC的使用
1.7.1GCC簡(jiǎn)介
1.7.2GCC的編譯過(guò)程
1.7.3GCC的常用模式
7.4GCC的常用選項(xiàng)
1.7.5GCC的警告功能
1.8調(diào)試器GDB的使用
1.8.1GDB的調(diào)試過(guò)程
1.8.2GDB的基本命令
1.8.3GDB的高級(jí)命令
1.9Make工程陸迅枯管理器
1.9.1Make管理器簡(jiǎn)介
1.9.2Makefile的描述規(guī)則
1.9.3一個(gè)簡(jiǎn)單示例
1.9.4Make如何工作
1.9.5指定變量
1.9.6自動(dòng)推導(dǎo)規(guī)則
1.9.7另類(lèi)風(fēng)格的Makefile
1.9.8清除工作目錄過(guò)程文件
1.10本章小結(jié)
第2章嵌入式Linux內(nèi)核分析與移植
2.1Linux內(nèi)核版本
2.1.1日新月異的Linux內(nèi)核版本
2.1.2Linux2.4內(nèi)核特性
2.1.3Linux2.6內(nèi)核針對(duì)嵌入式系統(tǒng)的改進(jìn)
2.2Linux操作系統(tǒng)內(nèi)核結(jié)構(gòu)分析
2.2.1Linux核心源程序的文件組織結(jié)構(gòu)
2.2.2Linux的內(nèi)核組成
2.2.3Linux內(nèi)核進(jìn)程管理工作機(jī)制
2.2.4Linux內(nèi)存管理工作機(jī)制
2.2.5Linux虛擬文件系統(tǒng)工作機(jī)制
2.2.6進(jìn)程間通信
2.3搭建嵌入式Linux系統(tǒng)開(kāi)發(fā)環(huán)境
2.3.1嵌入式平臺(tái)介紹
2.3.2嵌入式Linux系統(tǒng)的組成及設(shè)計(jì)步驟
2.3.3嵌入式Linux開(kāi)發(fā)工具鏈
2.4Linux內(nèi)核配置基礎(chǔ)
2.4.1Linux內(nèi)核所支持的配置方式
2.4.2makemenuconfig配置方法
2.4.3Linux2.4內(nèi)核配置文件config .in介紹
2.4.4Linux2.6內(nèi)核Kconfig文件的用法
2.4.5Kconfig文件配置實(shí)例
2.5Linux內(nèi)核配置選項(xiàng)
2.5.1Generalsetup
2.5.2Loadablemodulesupport
2.5.rocessortypeandfeatures
2.5.4Networkingsupport
2.5.5DeviceDrivers
2.6Linux內(nèi)核編譯基礎(chǔ)
2.6.1Linux內(nèi)核編譯基本步驟
2.6.2Rules.make文件用法
2.6.3Makefile配置文件的用法
2.6.4配置、編譯Linux內(nèi)核命令說(shuō)明
2.6.5Linux內(nèi)核配置編譯實(shí)例
2.7Linux內(nèi)核移植
2.7.1Bootloader簡(jiǎn)介
2.7.2引導(dǎo)程序原理
2.7.3內(nèi)核移植及代碼分析
2.7.4VIVI結(jié)構(gòu)分析
2.7.5VIVI移植實(shí)現(xiàn)
2.8本章小結(jié)
第3章Linux設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)概述
3.1Linux系統(tǒng)設(shè)備概述
3.1.1字符設(shè)備
3.1.2塊設(shè)備
3.1.3網(wǎng)絡(luò)設(shè)備
3.1.4Linux設(shè)備驅(qū)動(dòng)程序的共性
3.2設(shè)備驅(qū)動(dòng)程序的概念
3.3設(shè)備驅(qū)動(dòng)程序與內(nèi)核的接口
3.4內(nèi)核為驅(qū)動(dòng)程序提供的支持
3.4.1內(nèi)存分配函數(shù)
3.4.2DMA
3.4.3I/O端口
3.4.4打印函數(shù)
3.5主要數(shù)據(jù)結(jié)構(gòu)
3.5.1structdevicestruct
3.5.2structfileoperations
3.5.3structinode
3.6模塊化的概念
3.7內(nèi)存管理問(wèn)題
3.7.1Linux內(nèi)核對(duì)內(nèi)存的管理方早洞法
3.7.2kmalloc()和kfree()
3.7.3面向頁(yè)的分配技術(shù)
3.7.4vmalloc()和相關(guān)函數(shù)
3.8中斷響應(yīng)和處理
3.8.1中斷處理機(jī)制
3.8.2中斷處理的數(shù)據(jù)結(jié)構(gòu)
3.8.3中斷處理中的3個(gè)重要概念
3.8.4申請(qǐng)和釋放中斷
3.8.5自動(dòng)檢測(cè)中斷號(hào)
3.8.6快/慢速中斷處理
3.8.7實(shí)現(xiàn)中斷處理程序
3.8.8驅(qū)動(dòng)程序下半部的設(shè)計(jì)
3.8.9安裝共享的處理程序
3.9I/O端口
3.10DMA處理
3.11時(shí)間流
3.11.1時(shí)鐘的申請(qǐng)與釋放
3.11.2實(shí)現(xiàn)延遲
3.11.3任務(wù)隊(duì)列
3.12編寫(xiě)、編譯和調(diào)試
3.13本章小結(jié)
第4章Linux字符設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
4.1Linux字符設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)
4.2字符設(shè)備驅(qū)動(dòng)的相似點(diǎn)
4.3主設(shè)備號(hào)和次設(shè)備號(hào)
4.4字符設(shè)備驅(qū)動(dòng)程序的組成
4.5字符驅(qū)動(dòng)程序模型
4.6可靠性機(jī)制
4.7文件操作
4.8字符設(shè)備驅(qū)動(dòng)程序中用到的主要數(shù)據(jù)結(jié)構(gòu)
4.9字符設(shè)備的注冊(cè)和注銷(xiāo)
4.10使用內(nèi)存和讀寫(xiě)I/O端口
4.11字符設(shè)備驅(qū)動(dòng)程序中用到的主要函數(shù)
4.12chardevxxx設(shè)備的驅(qū)動(dòng)程序設(shè)計(jì)
4.13Linux2.6內(nèi)核下的字符設(shè)備驅(qū)動(dòng)介紹
4.13.1cdev結(jié)構(gòu)體
4.13.2分配和釋放設(shè)備號(hào)
4.13.3file_operations結(jié)構(gòu)體
4.13.4字符設(shè)備驅(qū)動(dòng)模塊加載與卸載函數(shù)
4.13.5字符設(shè)備驅(qū)動(dòng)的file_operations結(jié)構(gòu)體中成員
4.14globalmem設(shè)備驅(qū)動(dòng)
4.14.1頭文件、宏及設(shè)備結(jié)構(gòu)體
4.14.2加載與卸載設(shè)備驅(qū)動(dòng)
4.14.3讀寫(xiě)函數(shù)
4.14.4seek函數(shù)
4.14.5globalmem的ioctl()函數(shù)
4.14.6ioctl()命令
4.14.7預(yù)定義命令
4.14.8使用文件私有數(shù)據(jù)
4.14.9globalmem驅(qū)動(dòng)在用戶(hù)空間的驗(yàn)證
4.15本章小結(jié)
第5章基于DSP的PCI圖像采集卡驅(qū)動(dòng)程序
5.1PCI總線(xiàn)介紹
5.1.1PCI總線(xiàn)概述
5.1.2PCI局部總線(xiàn)概述
5.1.CI局部總線(xiàn)的特點(diǎn)
5.1.4PCI總線(xiàn)信號(hào)
5.1.5PCI總線(xiàn)命令
5.1.6PCI總線(xiàn)配置空間
5.1.7PCI總線(xiàn)配置過(guò)程
5.1.8PCI總線(xiàn)的傳輸控制
5.2DSP圖像卡的PCI接口設(shè)計(jì)
5.2.1系統(tǒng)結(jié)構(gòu)介紹
5.2.2PCI2023的基本特點(diǎn)
5.2.CI2023芯片的功能單元
5.2.4PCI2023配置流程
5.2.5PCI總線(xiàn)與DSP的接口實(shí)現(xiàn)
5.2.6串行E2PROM的初始化
5.3DSP圖像卡驅(qū)動(dòng)程序?qū)嵗治?/p>
5.3.1主要的數(shù)據(jù)結(jié)構(gòu)
5.3.2驅(qū)動(dòng)程序流程
5.3.3初始化設(shè)備模塊
5.3.4打開(kāi)設(shè)備模塊
5.3.5數(shù)據(jù)讀寫(xiě)和控制信息模塊
5.3.6中斷處理模塊
5.3.7釋放設(shè)備模塊
5.3.8卸載設(shè)備模塊
5.4本章小結(jié)
第6章音頻接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序
6.1嵌入式音頻系統(tǒng)簡(jiǎn)介
6.1.1S3C2410微處理器簡(jiǎn)介
6.1.2S3C2410微處理器的結(jié)構(gòu)框圖及其特性
6.1.3系統(tǒng)設(shè)計(jì)概述
6.1.4系統(tǒng)時(shí)鐘電路
6.1.5S3C2410存儲(chǔ)控制器介紹
6.1.6SDRAM電路
6.1.7Flash緩沖電路設(shè)計(jì)
6.1.8NORFlash電路
6.1.9NANDFlash接口電路
6.1.10IIS數(shù)字音頻電路
6.1.11串口電路
6.1.12JTAG接口電路
6.1.13LCD和觸摸屏接口電路
6.2UDA1341TS芯片設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)
6.2.1UDA1341TS芯片介紹
6.2.2驅(qū)動(dòng)程序中file_operations數(shù)據(jù)結(jié)構(gòu)
6.2.3驅(qū)動(dòng)程序的加載和卸載
6.3SOUND驅(qū)動(dòng)的實(shí)現(xiàn)
6.3.1SOUND設(shè)備的打開(kāi)和釋放
6.3.2定義SOUND設(shè)備的讀寫(xiě)函數(shù)
6.3.3SOUND設(shè)備的控制操作處理
6.3.4SOUND設(shè)備驅(qū)動(dòng)程序的其他部分
6.3.5Mixer驅(qū)動(dòng)的實(shí)現(xiàn)
6.4本章小結(jié)
第7章顯示設(shè)備接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序
7.1嵌入式顯示系統(tǒng)簡(jiǎn)介
7.2顯示驅(qū)動(dòng)的基礎(chǔ)與原理
7.2.1時(shí)序信號(hào)
7.2.2TFTLCD的驅(qū)動(dòng)技術(shù)
7.2.3TFTLCD驅(qū)動(dòng)電路
7.2.4像素值的屬性
7.2.5像素深度、像素值與顏色的映射關(guān)系
7.2.6像素值與顯示內(nèi)存的映射關(guān)系
7.2.7調(diào)色板的原理
7.2.8調(diào)色板的作用
7.2.9彩色LCD顯示驅(qū)動(dòng)的原理
7.3軟、硬件平臺(tái)簡(jiǎn)介
7.3.1硬件開(kāi)發(fā)平臺(tái)
7.3.2軟件平臺(tái)
7.3.3軟件開(kāi)發(fā)環(huán)境
7.4基于PXA255的顯示功能的硬件實(shí)現(xiàn)
7.4.1PXA255處理器介紹
7.4.2PXA255的LCD控制器的特點(diǎn)
7.4.3LCD控制器的使用
7.4.4LCD控制寄存器配置
7.4.5設(shè)定DMA通道
7.4.6Sony彩屏的特性
7.4.7LCD與處理器的硬件連接方案
7.5顯示驅(qū)動(dòng)開(kāi)發(fā)介紹
7.5.1顯示驅(qū)動(dòng)與字符設(shè)備的關(guān)系
7.5.2顯示驅(qū)動(dòng)的發(fā)展
7.5.3當(dāng)前顯示驅(qū)動(dòng)的不足
7.6基于PXA255的顯示驅(qū)動(dòng)的實(shí)現(xiàn)
7.6.1顯示驅(qū)動(dòng)的系統(tǒng)分析
7.6.2驅(qū)動(dòng)上層文件的功能
7.6.3驅(qū)動(dòng)底層文件的功能
7.6.4驅(qū)動(dòng)程序底層文件實(shí)現(xiàn)的基礎(chǔ)
7.7基于PXA255的顯示功能的軟件方案
7.7.1上層文件的實(shí)現(xiàn)
7.7.2底層文件的實(shí)現(xiàn)方案
7.7.3驅(qū)動(dòng)底層文件的實(shí)現(xiàn)
7.7.4針對(duì)XScale架構(gòu)中其余處理器的移植
7.8本章小結(jié)
第8章ARMLinux塊設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
8.1塊設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)概述
8.1.1塊設(shè)備特點(diǎn)
8.1.2塊設(shè)備基于緩沖區(qū)的數(shù)據(jù)交換
8.1.3塊設(shè)備讀寫(xiě)請(qǐng)求
8.1.4塊設(shè)備驅(qū)動(dòng)程序模型
8.1.5基于內(nèi)存的塊設(shè)備驅(qū)動(dòng)程序
8.2Linux塊設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
8.2.1block_device_operations結(jié)構(gòu)體
8.2.2gendisk結(jié)構(gòu)體
8.2.3request與bio結(jié)構(gòu)體
8.3塊設(shè)備驅(qū)動(dòng)主要函數(shù)
8.3.1塊設(shè)備驅(qū)動(dòng)程序的注冊(cè)與注銷(xiāo)
8.3.2Linux塊設(shè)備驅(qū)動(dòng)模塊加載與卸載
8.3.3塊設(shè)備的打開(kāi)與釋放
8.3.4塊設(shè)備驅(qū)動(dòng)的ioctl函數(shù)
8.3.5塊設(shè)備驅(qū)動(dòng)I/O請(qǐng)求處理
8.4RAMDISK驅(qū)動(dòng)開(kāi)發(fā)實(shí)例
8.4.1RAMDISK的硬件原理
8.4.2RAMDISK驅(qū)動(dòng)模塊加載與卸載
8.4.3RAMDISK設(shè)備驅(qū)動(dòng)block_device_operations及成員函數(shù)
8.5IDE硬盤(pán)設(shè)備驅(qū)動(dòng)開(kāi)發(fā)實(shí)例
8.5.1IDE硬盤(pán)設(shè)備原理
8.5.2IDE硬盤(pán)設(shè)備驅(qū)動(dòng)block_device_operations及成員函數(shù)
8.5.3IDE硬盤(pán)設(shè)備驅(qū)動(dòng)I/O請(qǐng)求處理
8.5.4在內(nèi)核中增加對(duì)新系統(tǒng)IDE設(shè)備的支持
8.6本章小結(jié)
第9章嵌入式Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
9.1嵌入式以太網(wǎng)基礎(chǔ)知識(shí)
9.1.1以太網(wǎng)技術(shù)及其嵌入式應(yīng)用
9.1.2嵌入式系統(tǒng)中主要處理的網(wǎng)絡(luò)協(xié)議
9.1.3ARP(AddressResolutionProtocol)地址解析協(xié)議
9.1.4IP(InternetProtocol)網(wǎng)際協(xié)議
9.1.5TCP(TransferControlProtocol)傳輸控制協(xié)議
9.1.6UDP(UserDatagramProtocol)用戶(hù)數(shù)據(jù)包協(xié)議
9.2基于CS8900A芯片的設(shè)備驅(qū)動(dòng)設(shè)計(jì)
9.2.1CS8900A芯片結(jié)構(gòu)
9.2.2CS8900A芯片特性
9.2.3CS8900A芯片工作原理
9.2.4CS8900A芯片工作模式
9.2.5網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序基本結(jié)構(gòu)
9.3基于Linux的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)開(kāi)發(fā)常用的數(shù)據(jù)結(jié)構(gòu)
9.3.1數(shù)據(jù)結(jié)構(gòu)structnet_device
9.3.2數(shù)據(jù)結(jié)構(gòu)structsk_buff393
9.4網(wǎng)絡(luò)驅(qū)動(dòng)程序的實(shí)現(xiàn)模式及系統(tǒng)調(diào)用方法
9.4.1網(wǎng)絡(luò)驅(qū)動(dòng)程序的實(shí)現(xiàn)模式與模塊化
9.4.2內(nèi)存獲取與釋放
9.4.3鏈路狀態(tài)改變系統(tǒng)調(diào)用
9.4.4與網(wǎng)絡(luò)層交互數(shù)據(jù)包的函數(shù)
9.5網(wǎng)絡(luò)驅(qū)動(dòng)程序的基本方法
9.5.1網(wǎng)絡(luò)驅(qū)動(dòng)程序的結(jié)構(gòu)
9.5.2初始化(Initialize)
9.5.3打開(kāi)(open)
9.5.4關(guān)閉(close)
9.5.5發(fā)送(hard_start_xmit)
9.5.6接收(reception)
9.5.7中斷處理(interrupt)
9.5.8硬件幀頭(hard_header)
9.5.9地址解析(XARP)
9.5.10參數(shù)設(shè)置和統(tǒng)計(jì)數(shù)據(jù)
9.5.11多播(set_multicast_list)
9.6本章小結(jié)
第10章嵌入式LinuxUSB驅(qū)動(dòng)程序設(shè)計(jì)基礎(chǔ)
10.1USB總線(xiàn)協(xié)議背景知識(shí)
10.1.1USB協(xié)議的產(chǎn)生
10.1.2USB的特點(diǎn)
10.1.3USB的廣泛應(yīng)用
10.1.4USB在嵌入式設(shè)備中的應(yīng)用
10.1.5計(jì)算機(jī)常用外部總線(xiàn)比較
10.2USB總線(xiàn)技術(shù)介紹
10.2.1USB系統(tǒng)拓?fù)浣Y(jié)構(gòu)
10.2.2USB總線(xiàn)邏輯結(jié)構(gòu)
10.2.3USB總線(xiàn)特性介紹
10.2.4USB總線(xiàn)電氣機(jī)械特性
10.2.5USB的即插即用特性
10.2.6魯棒性的實(shí)現(xiàn)
10.2.7USB電源管理
10.2.8總線(xiàn)通道
10.2.9傳輸協(xié)議
10.2.10傳輸類(lèi)型
10.2.11設(shè)備框架
10.2.12USB主機(jī)協(xié)議
10.3LinuxUSB子系統(tǒng)結(jié)構(gòu)
10.3.1文件系統(tǒng)
10.3.2Linux中USB子系統(tǒng)的軟件結(jié)構(gòu)及實(shí)現(xiàn)
10.3.3LinuxUSB內(nèi)核的主要數(shù)據(jù)結(jié)構(gòu)
10.3.4USB內(nèi)核函數(shù)接口分析
10.4本章小結(jié)
第11章USB接口系統(tǒng)軟件設(shè)計(jì)
11.1USB系統(tǒng)軟件設(shè)計(jì)概述
11.1.1主機(jī)端設(shè)備驅(qū)動(dòng)程序
11.1.2主機(jī)控制器驅(qū)動(dòng)程序
11.1.3設(shè)備端驅(qū)動(dòng)程序
11.1.4數(shù)據(jù)管道和數(shù)據(jù)塊結(jié)構(gòu)
11.2USB設(shè)備端軟件的開(kāi)發(fā)
11.2.1USB設(shè)備通用模塊的軟件開(kāi)發(fā)
11.2.2USB設(shè)備協(xié)議模塊的軟件開(kāi)發(fā)
11.2.3控制端點(diǎn)處理程序
11.2.4協(xié)議層程序
11.3USB主機(jī)端軟件開(kāi)發(fā)
11.3.1Linux內(nèi)核對(duì)USB規(guī)范的支持
11.3.2USB時(shí)序
11.3.3主機(jī)控制器驅(qū)動(dòng)程序設(shè)計(jì)
11.3.4主機(jī)控制器的初始化和管理
11.3.5傳輸執(zhí)行和資源調(diào)度
11.3.6主機(jī)控制器的中斷處理
11.3.7虛擬根集線(xiàn)器
11.3.8主機(jī)控制器驅(qū)動(dòng)程序的任務(wù)
11.3.9URB在驅(qū)動(dòng)軟件中運(yùn)作
11.3.10主機(jī)端設(shè)備驅(qū)動(dòng)程序
11.4本章小結(jié)
第12章OTG驅(qū)動(dòng)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)
12.1OTG概述
12.1.1OTG特性簡(jiǎn)介
12.1.2A設(shè)備事件
12.1.3B設(shè)備事件
12.1.4狀態(tài)機(jī)
12.1.5SRP
12.1.6HNP
12.2設(shè)備模塊的設(shè)計(jì)與實(shí)現(xiàn)
12.2.1USB設(shè)備的狀態(tài)
12.2.2OTG驅(qū)動(dòng)功能模塊的設(shè)計(jì)
12.2.3ISP1761結(jié)構(gòu)
12.2.4HAL的設(shè)計(jì)和實(shí)現(xiàn)
12.2.5HCD的設(shè)計(jì)和實(shí)現(xiàn)
12.2.6USBD接口模塊
12.2.7ISP1761讀寫(xiě)操作模塊
12.2.8HCD初始化模塊
12.2.9中斷管理模塊
12.2.10根集線(xiàn)器模塊
12.2.11數(shù)據(jù)傳輸模塊
12.2.12設(shè)備模塊的設(shè)計(jì)和實(shí)現(xiàn)
12.2.13OTGF的設(shè)計(jì)和實(shí)現(xiàn)
12.3本章小結(jié)
關(guān)于linux 字符設(shè)備驅(qū)動(dòng) 編譯的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專(zhuān)注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開(kāi)發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶(hù)提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專(zhuān)注四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,可選線(xiàn)路電信、移動(dòng)、聯(lián)通等。
網(wǎng)站標(biāo)題:Linux字符設(shè)備驅(qū)動(dòng)編譯教程(linux字符設(shè)備驅(qū)動(dòng)編譯)
分享網(wǎng)址:http://www.5511xx.com/article/coeiods.html


咨詢(xún)
建站咨詢(xún)
