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é)的重大定義
主站蜘蛛池模板: 国产精品亚欧美一区二区| 国产福利小视频高清在线观看| 粉嫩国产白浆在线观看| 成人伊人色一区二区三区| 日韩人妻无码制服丝袜视频| 99久久亚洲综合精品TS| 国产精品青青| 国产亚洲欧美日韩在线一区二区三区| 国产人成乱码视频免费观看| 国产香蕉在线视频| 欧美va亚洲va香蕉在线| 中文字幕啪啪| 久久久成年黄色视频| 黄色福利在线| 中文字幕资源站| 日韩天堂网| 国产一区二区福利| 都市激情亚洲综合久久| 久久精品无码国产一区二区三区| 国产手机在线ΑⅤ片无码观看| 中文无码精品a∨在线观看| 欧美成人日韩| 国产无人区一区二区三区| 伊人久久婷婷五月综合97色| 国产日韩AV高潮在线| 在线国产欧美| 欧美区一区二区三| 午夜啪啪网| 91午夜福利在线观看精品| 亚洲久悠悠色悠在线播放| 丝袜亚洲综合| 久久黄色视频影| 亚洲第一黄色网址| 日本三级欧美三级| 国产福利不卡视频| 中文字幕自拍偷拍| 久久国语对白| 日本成人精品视频| 欧美啪啪视频免码| 欧美伦理一区| 欧美日韩亚洲国产主播第一区| 丰满人妻被猛烈进入无码| 亚洲91精品视频| 日韩性网站| 亚洲一区免费看| 久久男人资源站| 成人免费网站久久久| 波多野结衣无码AV在线| 久久国产精品影院| 亚洲美女操| 91精品小视频| 免费国产福利| 在线观看免费AV网| 99久久精品国产精品亚洲| 国产高潮视频在线观看| 在线视频亚洲色图| 免费一级成人毛片| 国产成人亚洲精品蜜芽影院| 精品一区二区三区水蜜桃| 亚洲久悠悠色悠在线播放| 国产成人无码AV在线播放动漫 | 58av国产精品| 被公侵犯人妻少妇一区二区三区| 精品偷拍一区二区| 精品久久久久久成人AV| 成人综合在线观看| 5388国产亚洲欧美在线观看| 亚洲男人的天堂久久香蕉网| 亚洲中文字幕av无码区| 理论片一区| 在线精品欧美日韩| 美女国产在线| 欧美一级黄色影院| 国产91视频免费观看| 91精品视频网站| 亚洲精品国产首次亮相| 免费高清a毛片| 熟妇无码人妻| 99视频在线看| 久热中文字幕在线| 性做久久久久久久免费看| 亚洲性视频网站|