999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ARM-Linux下SPI設(shè)備的添加與驅(qū)動(dòng)實(shí)現(xiàn)※

2012-09-25 03:00:12怯肇乾陳永超
關(guān)鍵詞:定義設(shè)備

怯肇乾,陳永超

(北京新大陸有限公司,北 京100044)

1 SPI總線設(shè)備驅(qū)動(dòng)及其實(shí)現(xiàn)分析

ARM-Linux操作系統(tǒng)下,SPI總線操作,自上而下分為3個(gè)層次:平臺依賴層、硬件抽象層和用戶接口層。平臺依賴層對應(yīng)微處理器里集成的一個(gè)或多個(gè)SPI主機(jī)控制器,包括平臺設(shè)備(Platform Device)和平臺驅(qū)動(dòng)程序,每種處理器平臺都有自己特定的SPI控制器驅(qū)動(dòng),屬于平臺移植相關(guān)層,主要是按照核心層定義的接口實(shí)現(xiàn)具體的spi_master。硬件抽象層提供核心數(shù)據(jù)結(jié)構(gòu)的定義、SPI控制器驅(qū)動(dòng)和設(shè)備驅(qū)動(dòng)的注冊、注銷管理,它面向平臺依賴層屏蔽實(shí)際總線控制器的差異,定義了統(tǒng)一的訪問策略和接口。面向用戶接口層提供統(tǒng)一的接口,以便SPI設(shè)備驅(qū)動(dòng)通過總線控制器進(jìn)行數(shù)據(jù)收發(fā),其主體框架程序是GPIO模擬SPI時(shí)序spi_bitbang.c和可進(jìn)行同/異步消息傳輸?shù)炔僮鞯膕pi.c。用戶接口層即設(shè)備驅(qū)動(dòng)層,為用戶提供了通過SPI總線訪問具體設(shè)備的接口,包括SPI設(shè)備和SPI驅(qū)動(dòng)程序。ARM-Linux下SPI總線的層次結(jié)構(gòu)圖如圖1所示。

圖1 ARM-Linux下SPI總線的層次結(jié)構(gòu)圖

嵌入式ARM-Linux操作系統(tǒng)對SPI總線提供完整而成熟的硬件抽象層和通用的SPI驅(qū)動(dòng)spi_driver。針對具體的ARM內(nèi)核微處理器體系,如Samsung公司基于Cortex-A8的S5PV110/S5PV210、TI公司基于 Cortex-A8的AM3515/AM3715、Freescale公 司 基 于 Cortex-A8 的i.MX515/i.MX535等,半導(dǎo)體廠商通常提供其SPI控制器驅(qū)動(dòng)的platform_driver和對應(yīng)的platform_device配置,還有通用spi_driver對應(yīng)的spi_device配置。platform_device配置定義SPI主機(jī)信號與從機(jī)的片選信號和中斷信號。spi_device配置指定具體SPI設(shè)備對應(yīng)的SPI主機(jī)號、采用的SPI通信模式與傳輸速度和其使用的中斷等。platform_device和spi_device配置通常定義在平臺匹配文件 mach_xxx.c,如 mach_smdkc110.c。

所以,在ARM-Linux中添加SPI設(shè)備,可以借用SPI通用驅(qū)動(dòng)快速實(shí)現(xiàn),可以為其編寫特定的SPI驅(qū)動(dòng)。ARM-Linux設(shè)備驅(qū)動(dòng)通常采用靜態(tài)加載操作,它有兩種方式:適配(adapter)和探測(probe),大多數(shù)設(shè)備驅(qū)動(dòng)越來越趨向探測方式,也可以采用動(dòng)態(tài)加載方式編寫簡易的SPI“設(shè)備-驅(qū)動(dòng)”。SPI時(shí)序可以選擇由微處理器集成的SPI總線控制器產(chǎn)生,也可以選擇由微處理器的通用輸入/輸出口GPIO模擬產(chǎn)生。

2 借用通用spi-dev.c驅(qū)動(dòng)新設(shè)備

對于一些常規(guī)的SPI設(shè)備,如存儲(chǔ)器、溫度傳感器等,可以將其連接到選定的SPI主機(jī)控制器總線上,借用系統(tǒng)提供的通用spi-dev.c程序直接實(shí)現(xiàn)串行通信操作。需要做的是在平臺匹配文件mach_xxx.c中添加或修改片選、中斷信號,指定SPI的工作模式、傳輸速度、主機(jī)編號、中斷編號等關(guān)鍵信息,相關(guān)的代碼添加與變化如下(其中粗體部分為需要添加或修改的):

3 為新設(shè)備編寫probe方式驅(qū)動(dòng)

probe方式的驅(qū)動(dòng)會(huì)根據(jù)事先的配置安排加載并通過探測初始化進(jìn)而啟用硬件設(shè)備。它以xxx_driver框架作統(tǒng)領(lǐng),以xxx_probe函數(shù)完成設(shè)備的探測與初始化,以xxx_remove函數(shù)完成設(shè)備的去除。相應(yīng)的設(shè)備操作配置靠mach_xxx.c文件指定。這里以SPI接口的4線電阻式觸摸屏控制器驅(qū)動(dòng)設(shè)計(jì)為例加以說明。該設(shè)備既是SPI設(shè)備,也是輸入設(shè)備。

mach_xxx.c中需要增加的SPI設(shè)備信息如下:

設(shè)備驅(qū)動(dòng)程序,通過硬件中斷以消息傳遞形式異步完成數(shù)據(jù)采集并形成公共信息廣播給上層應(yīng)用系統(tǒng)。由于中斷中不能展開SPI通信進(jìn)程,這里采用了異步傳輸和“自旋鎖”機(jī)制,由回調(diào)函數(shù)完成數(shù)據(jù)處理和上傳。限于篇幅,沒有考慮“去抖”濾波。主要代碼略——編者注。

4 簡易“設(shè)備-驅(qū)動(dòng)”型設(shè)備驅(qū)動(dòng)設(shè)計(jì)

動(dòng)態(tài)加載形式的設(shè)備驅(qū)動(dòng)便于調(diào)試、用時(shí)掛載,不用隨時(shí)缷載,因而廣泛采用。特別稱之為簡易“設(shè)備-驅(qū)動(dòng)”型設(shè)備驅(qū)動(dòng)。上述觸摸屏驅(qū)動(dòng)程序很容易變成這種形式,不同之處在于需要在初始化時(shí)完成xxx_probe函數(shù)功能和mach_xxx.c中SPI設(shè)備的配置,在缷載時(shí)完成xxx_remove函數(shù)功能。主要程序代碼略——編者注。

5 GPIO模擬SPI設(shè)備驅(qū)動(dòng)快速實(shí)現(xiàn)

選擇GPIO端口模擬SPI總線驅(qū)動(dòng)SPI設(shè)備,雖然對于系統(tǒng)整體效率不高,但是直截了當(dāng),易于操作實(shí)現(xiàn)。可以采用ARM-Linux已有的GPIO模擬程序,也可以選擇GPIO自行獨(dú)立設(shè)計(jì)。這里仍以上述觸摸屏為例,自選GPIO模擬SPI時(shí)序,對動(dòng)態(tài)加載形式的字符型SPI輸入的簡易“設(shè)備-驅(qū)動(dòng)”設(shè)計(jì)加以說明。通過系統(tǒng)定時(shí)器進(jìn)行了去抖,并對測量結(jié)果剪切和均值濾波進(jìn)行處理(主要程序代碼略——編者注)。

編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

[1]怯肇乾.基于底層硬體的軟件設(shè)計(jì)[M].北京:航空航天大學(xué)出版社,2008.

[2]宋寶華.Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解[M].北京:人民郵電出版社,2008.

[3]劉紅波.Linux下 SPI驅(qū)動(dòng)開發(fā)[EB/OL].[2011-12].http://www.linuxidc.com/Linux/2011-09/41981p2.html.

[4]CSDN博客.PowerPC+Linux2.6.25平臺下的SPI驅(qū)動(dòng)架構(gòu)分析[EB/OL].[2011-12].http://blog.csdn.net/sailor_8318/article/details/5977733.

[5]博客園.移植 ADS7846驅(qū)動(dòng)到 Tiny6410[EB/OL].[2011-12].http://www.cnblogs.com/liu_xf/archive/2011/06/22/2086750.html.

[6]王選民,李明利,張利川,等.基于ADS7846的電阻式觸摸屏接口設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010(11).

猜你喜歡
定義設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
永遠(yuǎn)不要用“起點(diǎn)”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
定義“風(fēng)格”
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
如何在設(shè)備采購中節(jié)省成本
原來他們都是可穿戴設(shè)備
修辭學(xué)的重大定義
主站蜘蛛池模板: 亚洲天堂福利视频| 91麻豆精品视频| 九色免费视频| 国内精品九九久久久精品| 亚洲男人的天堂视频| 欧美日韩在线国产| 全部免费特黄特色大片视频| 亚洲午夜国产精品无卡| 色综合网址| 性做久久久久久久免费看| 这里只有精品在线| aaa国产一级毛片| 日韩美一区二区| 无码一区18禁| 免费人成又黄又爽的视频网站| 国产主播福利在线观看| 免费人成视网站在线不卡| 手机在线看片不卡中文字幕| 国产美女在线观看| 亚洲精品第五页| 色天堂无毒不卡| 欧美一级高清片久久99| 国模视频一区二区| 老司机久久99久久精品播放| 国产免费一级精品视频 | 国产精品蜜芽在线观看| 亚洲AV无码乱码在线观看裸奔| 亚洲无码免费黄色网址| 精品一区二区三区波多野结衣| 久久99国产综合精品女同| 亚洲中文字幕精品| 亚洲无码高清视频在线观看| 熟女日韩精品2区| 欧美在线天堂| 99人妻碰碰碰久久久久禁片| 成人在线观看不卡| 久久久久青草大香线综合精品| 伊人久久精品无码麻豆精品 | 欧美19综合中文字幕| 日韩大乳视频中文字幕| 久久精品国产免费观看频道| 亚洲中文字幕国产av| 91福利免费| 99这里只有精品免费视频| 精品国产免费观看一区| 久久久久久久久18禁秘| 日韩色图区| 波多野结衣久久精品| 99久久精品免费看国产免费软件 | 麻豆精品视频在线原创| 久草青青在线视频| 亚洲国产综合精品一区| 伊人成人在线| 黄色福利在线| 国产h视频免费观看| 在线观看亚洲精品福利片| 中国毛片网| 大陆精大陆国产国语精品1024| 亚洲精品你懂的| 欧美成人一区午夜福利在线| 国产在线拍偷自揄观看视频网站| 婷婷开心中文字幕| 国产剧情无码视频在线观看| 男女性色大片免费网站| 国产AV无码专区亚洲精品网站| 91麻豆精品视频| 亚洲第七页| 91无码网站| 免费精品一区二区h| 色偷偷男人的天堂亚洲av| 国产又黄又硬又粗| 亚洲精品国产精品乱码不卞| 四虎成人精品在永久免费| 天堂网国产| 国产成人av一区二区三区| 毛片基地美国正在播放亚洲| 国产swag在线观看| 国产国语一级毛片| 亚洲国产理论片在线播放| 伊人久久大香线蕉成人综合网| 1769国产精品视频免费观看| 一级福利视频|