Linux IIO子系統分析 1 概述

2021-09-03 01:21:39 字數 691 閱讀 6009

分類: linux2011-10-20 15:33:25

最近稍微看了下lkml,發現裡面有乙個子系統叫做「iio」。以前沒有接觸過,所以google了下。

iio子系統全稱是 industrial i/o subsystem(工業 i/o 子系統),現在還處在有待完善的階段,在核心樹中位於drivers/staging/iio目錄下。

根據核心說明文件的描述:工業i/o子系統旨在提供那些在某種意義上作為模數轉換器(adc)的裝置支援。此子系統的目的在於填補那些分類時處在hwmon(硬體監視器)和輸入子系統之間的裝置型別。在某些情況下,iio和hwmon、input之間的相當大的重疊。

屬於iio的裝置如下(參考adi的wiki):

adcs(模數轉換器)

加速度感測器

陀螺儀imus(慣性測量單位)

電容-數字轉換器(cdcs)

壓力、溫度和光線感測器

從原始碼的目錄中可以看出,還有:磁力計感測器、電能功率計、旋變數字轉換器

可以看出這些外設的確都是工業領域使用的,當然其中的部分在其他領域也用到了,比如

加速度感測器、陀螺儀、溫度和光線感測器在移動裝置(手機、平板)中也有廣泛應用。

iio主要框架如下(adi的wiki內容):

input輸入子系統分析1

input register handler struct input handler handler 1 在開始的時候讓input handler的h list指向自己,也就是乙個空的迴圈鍊錶,在後來註冊input handle的時候 讓input handle的hnode與匹配的input ha...

framebuffer 子系統分析

fb info screen base dma alloc writecombine fbi dev,map size,map dma,gfp kernel fb info screen base 是framebuffer起始虛擬位址,也就是mmap後程式寫入fb的位址,該位址會直接寫入到fb in...

framebuffer 子系統分析

come from struct fb info ranges 0 apertures struct fb var screeninfo struct fb fix screeninfo 這兩個結構體分別記錄了顯示器可以修改和不可修改的資訊,這些資料成員需要在驅動程式中初始化。其中fix.visua...