Linux那些事儿 之 戏说USB(7)不一样的core
生活随笔
收集整理的這篇文章主要介紹了
Linux那些事儿 之 戏说USB(7)不一样的core
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用命令lsmod,看看它的輸出,然后找這么個模塊usbcore,不要說你找不到,我不會相信的。它是什么?它就是咱們這里要說的usb系統的核心,如果要在linux里使用usb,這個模塊是必不可少的,另外,你應該在usbcore那一行的后面看到ehci_hcd或uhci_hcd這樣的東東,它們就是前面說的usb host controller的驅動模塊,你的usb設備要工作,合適的usb host controller模塊也是必不可少的。不過,咱們這里的主角還是usbcore。
usb core負責實現一些核心的功能,為別的設備驅動程序提供服務,提供一個用于訪問和控制USB硬件的接口,而不用去考慮系統當前存在哪種host controller。至于core、host controller和driver三者之間的關系,還是用ldd3的圖來說明吧。
咱們寫USB驅動的時候,只能調用core的接口,core會將咱們的請求發送給相應的HCD,用得著咱們操心的只有這么一畝三分地,core為咱們完成了大部分的工作,linux的哲學是不是和咱們生活中不太一樣那?
走到drivers/usb/core里去,使用ls瞧一瞧看一看,
buffer.c? devices.c? driver.c??? file.c???? hcd.c????? hub.c? Kconfig?? message.c? otg_whitelist.h? quirks.c? urb.c?????? usb.c
config.c? devio.c??? endpoint.c? generic.c? hcd-pci.c? hub.h? Makefile? notify.c?? port.c?????????? sysfs.c?? usb-acpi.c? usb.h
使用wc –l命令統計一下,將近兩萬行的代碼,core不愧是core,為大家默默的做這么多事,人民的好公仆鞠躬盡瘁,我會用一顆感恩的心去深刻理解你的內心回報你的付出的。Linux背后的哲學是不是又和我們生活中不一樣?
看看Makefile。
usb core負責實現一些核心的功能,為別的設備驅動程序提供服務,提供一個用于訪問和控制USB硬件的接口,而不用去考慮系統當前存在哪種host controller。至于core、host controller和driver三者之間的關系,還是用ldd3的圖來說明吧。
咱們寫USB驅動的時候,只能調用core的接口,core會將咱們的請求發送給相應的HCD,用得著咱們操心的只有這么一畝三分地,core為咱們完成了大部分的工作,linux的哲學是不是和咱們生活中不太一樣那?
走到drivers/usb/core里去,使用ls瞧一瞧看一看,
buffer.c? devices.c? driver.c??? file.c???? hcd.c????? hub.c? Kconfig?? message.c? otg_whitelist.h? quirks.c? urb.c?????? usb.c
config.c? devio.c??? endpoint.c? generic.c? hcd-pci.c? hub.h? Makefile? notify.c?? port.c?????????? sysfs.c?? usb-acpi.c? usb.h
使用wc –l命令統計一下,將近兩萬行的代碼,core不愧是core,為大家默默的做這么多事,人民的好公仆鞠躬盡瘁,我會用一顆感恩的心去深刻理解你的內心回報你的付出的。Linux背后的哲學是不是又和我們生活中不一樣?
看看Makefile。
#
# Makefile for USB Core files and filesystem
#usbcore-y := usb.o hub.o hcd.o urb.o message.o driver.o
usbcore-y += config.o file.o buffer.o sysfs.o endpoint.o
usbcore-y += devio.o notify.o generic.o quirks.o devices.o
usbcore-y += port.ousbcore-$(CONFIG_PCI) += hcd-pci.o
usbcore-$(CONFIG_ACPI) += usb-acpi.oobj-$(CONFIG_USB) += usbcore.oMakefile可比Kconfig簡略多了,所以看起來也更親切點,咱們總是拿的money越多越好,看的代碼越少越好。這里之所以會出現CONFIG_PCI,是因為通常USB的root hub包含在一個PCI設備中,前面也已經聊過了。hcd-pci 和 hcd 顧名而思義就知道是說host controller的,它們實現了host controller公共部分,按協議里的說法它們就是HCDI(HCD的公共接口),host目錄下則實現了各種不同的host controller,咱們這里不怎么會聊到具體host controller的實現。
這么看來,好像大都需要關注的樣子,沒有減輕多少壓力,不過這里本身就是usb core部分,是要做很多的事為咱們分憂的,所以多點也是可以理解的。
總結
以上是生活随笔為你收集整理的Linux那些事儿 之 戏说USB(7)不一样的core的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux那些事儿 之 戏说USB(6)
- 下一篇: Linux那些事儿 之 戏说USB(8)