USB驱动程序
1、USB驅(qū)動(dòng)程序存在于不同的內(nèi)核子系統(tǒng)(塊設(shè)備、網(wǎng)絡(luò)設(shè)備、字符設(shè)備等等)和USB主控制器之中。
2、USB核心為USB驅(qū)動(dòng)程序提供了一個(gè)用于訪問(wèn)和控制USB硬件的接口,而不必考慮系統(tǒng)當(dāng)前存在的各種不同類型的USB硬件控制器。
2.1 USB里的設(shè)備模型
Linux里一個(gè)很重要的概念是設(shè)備模型。對(duì)于驅(qū)動(dòng)來(lái)說(shuō),設(shè)備的概念就是總線和與其相連的各種設(shè)備。在內(nèi)核里,總線、設(shè)備、驅(qū)動(dòng)也就是bus、device、driver是設(shè)備模型很重要的三個(gè)概念,它們都有自己專屬的結(jié)構(gòu)。在include/linux/devide.h里的定義為:
struct bus_type {……};
struct device {……);
struct device_driver {……};
每次出現(xiàn)一個(gè)設(shè)備都要向總線注冊(cè),每次出現(xiàn)一個(gè)驅(qū)動(dòng),也要向總線注冊(cè)。系統(tǒng)初始化時(shí),應(yīng)掃描連接許多設(shè)備,并為每一個(gè)設(shè)備建立一個(gè)struct device的變量。每一次都應(yīng)有一個(gè)驅(qū)動(dòng)程序,并要準(zhǔn)備一個(gè)struct device_driver結(jié)構(gòu)的變量。還要把這些變量加入相應(yīng)的鏈表(如把device插入devices鏈表,driver插入drivers鏈表)。這樣,通過(guò)總線就能找到每一個(gè)設(shè)備和每一個(gè)驅(qū)動(dòng)。然而,假如計(jì)算機(jī)里只有設(shè)備卻沒(méi)有
總結(jié)
- 上一篇: 将json文件格式转化成Excel表格形
- 下一篇: kindle paperwhite3 拆