Linux IIO子系統分析-1-概述
http://blog.chinaunix.net/uid-20543672-id-2976189.html
分類: 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內容):
相關推薦
Linux IIO子系統分析-1-概述
http://blog.chinaunix.net/uid-20543672-id-2976189.html 分類: LINUX2011-10-20 15:33:25 最近稍微看了下LKML,發現裡面有一個子系統叫做“IIO”。以前沒有接觸過,所以Google了下。 IIO子系統全稱是 In
linux IIC子系統分析(二)—— linux i2c 架構概述
I2C匯流排因為它及簡單的硬體連線和通訊方式,在現在的很多裝置上它是一種不可或缺的通訊匯流排。如果用當微控制器直接操作I2C,其實很簡單,只要正確把握IIC的操作時序就可以了。但是在linux系統中,I
linux 核心程式碼分析1 TI am335x
1. TI AM335x 核心原始碼分析 1.1 Board-am335xevm.c Board-am335xevm.c(./arch/arm/mach-omap2)中開始執行入口: MACHINE_START(A
Linux 輸入子系統分析 Linux之輸入子系統分析(詳解)
為什麼要引入輸入子系統? 在前面我們寫了一些簡單的字元裝置的驅動程式,我們是怎麼樣開啟一個裝置並操作的呢? 一般都是在執行應用程式時,open一個特定的裝置檔案,如:/dev/buttons 1 ..... 2 int main(int argc, char **argv) 3 {
轉《Linux input子系統分析之一:軟體層次》
本文轉自:https://blog.csdn.net/yueqian_scut/article/details/47903853 輸入輸出是使用者和產品互動的手段,因此輸入驅動開發在Linux驅動開發中很常見。同時,input子系統的分層架構思想在Linux驅動設計中極
linux IIC子系統分析(四)——I2c bus初始化
這裡的I2C Bus 並不是通訊上的匯流排,而是linux系統為了管理裝置和驅動而虛擬出來的,在I2C Bus用來掛載後面將會使用到的I2C 介面卡(adapter)和I2C裝置(client)。另外,
linux IIC子系統分析(九)——例項分析通過裝置節點訪問I2c裝置
在《 linux IIC子系統分析(四)——I2c bus初始化》 中我們建立了I2C 匯流排驅動,I2C adapter device 和adapter drivers也在這時建立在我們實際開發中,I2C 匯流排驅動一般晶片原廠會提供,我們開發一般是設計裝置驅動。在訪問I2
Linux EMMC子系統分析-初始化流程(轉載)
最近在解EMMC的一個bug,發現Linux EMMC有點小複雜,先整理個文件出來吧 用的是TI 平臺,僅分析MMC,不分析SD和SDIO mmc_init 2769 static int __init mmc_init(void
Linux 網路子系統底層機制分析(1)
網路子系統在linux中的地位非常重要。在如今這個嚴重依賴網際網路,強調協同工作的時代,一個高效,穩定的網路處理系統是留住使用者群的基本手段。前段時間花了一部分時間學習了一下linux的網路子系統的原始碼以及一些處理機制。這部分是由於工作的原因,另一部分原因是想對linux的網路處理有一個更加完整,深入的認識
Linux input子系統編程、分析與模板
linux輸入設備都有共性:中斷驅動+字符IO,基於分層的思想,Linux內核將這些設備的公有的部分提取出來,基於cdev提供接口,設計了輸入子系統,所有使用輸入子系統構建的設備都使用主設備號13,同時輸入子系統也支持自動創建設備文件,這些文件采用阻塞的IO讀寫方式,被創建在"/dev/input/"下。如下
Linux時間子系統(十七) ARM generic timer驅動代碼分析
detect led 直接 系統啟動 value lsp func 多核 borde 一、前言 關註ARM平臺上timer driver(clocksource chip driver和clockevent chip driver)的驅動工程師應該會註意到timer硬件的演
linux input輸入子系統分析《四》:input子系統整體流程全面分析
總線 返回值 分代 並不是 事件 等等 lag pri 位置 1 input輸入子系統整體流程 本節分析input子系統在內核中的實現,包括輸入子系統(Input Core),事件處理層(Event Handler)和設備驅動層。由於上節代碼講解了設備驅動層的寫法
Linux之輸入子系統分析
在此節之前,我們學的都是簡單的字元驅動,涉及的內容有字元驅動的框架、自動建立裝置節點、linux中斷、poll機制、非同步通知、同步互斥/非阻塞、定時器去抖動。 其中驅動框架如下: 1)寫file_operations結構體的成員函式: .open()、.read()、.write()
[Linux驅動煉成記] 10 -光感ISL29035除錯/IIO子系統
簡介 專案中需要加入光感檢測功能,需求一到,就打算自己寫驅動,意外的發現最新核心中已經支援該驅動ISL29035。配置好DTS應該初步可以使用。看程式碼過程中發現isl29035的實現主要是採用IIO子
Linux PM domain framework(1)_概述和使用流程
1. 前言 在複雜的片上系統(SOC)中,設計者一般會將系統的供電分為多個獨立的block,這稱作電源域(Power Domain),這樣做有很多好處,例如: 1)將不同功能模組的供電分開,減小相互之間的干擾(如模擬和數字分開)。 2)不同功能所需的電壓大小不同:小電壓能量損耗低,
SpringMVC原始碼分析1:SpringMVC概述
轉載自:https://blog.csdn.net/a724888/article/details/76014532 Web MVC簡介 1.1、Web開發中的請求-響應模型: 在Web世界裡,具體步驟如下: 1、 Web瀏覽器(如IE)發起請求,如訪問http:/
Linux裝置模型分析之bus(基於3.10.1核心)
作者:劉昊昱 核心版本:3.10.1 一、bus定義 Linux裝置驅動模型中的bus,即可以是物理匯流排(如PCI、I2C匯流排)的抽象,也可以是出於裝置驅動模型架構需要而定義的虛擬的“platform”匯流排。一個符合Linux裝置驅動模型的device或devi
Linux ALSA音訊框架分析二:linux音訊子系統介紹
Phonon是KDE 4的多媒體API 。Phonon提供一個穩定的API允許KDE 4獨立於任何一個聲音系統伺服器如xine。Phonon讓各種後端提供介面給開發者所謂的"引擎";每個引擎運作在一個具體的後端。每個後端都可讓Phonon控制基本功能,如播放、暫停和搜尋。Phonon也支援更高層次的功能
宋牧春: Linux裝置樹檔案結構與解析深度分析(1)
本文轉載自微信公眾號linuxer 作者簡介 宋牧春,linux核心愛好者,喜歡閱讀各種開原始碼(uboot、linux、ucos、rt-thread等),對於優秀的程式碼框架及其痴迷。現就職於一家手機研發公司,任職Android BSP開發工程師。 正文開始 1. Device Tree簡介 裝置樹就是描
Linux基本命令《五,文字分析1》
Linux基本命令《五,文字分析》 一,cut:顯示切割的行資料 f:選擇顯示的列 s:不顯示沒有分隔符的行 d:自定義分隔符 [[email protected] ~]# cat grep.txt oxx12121212ooxx ooxx 12121212 oox