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

基于嵌入式Linux的 platform驅動設計與應用

2018-05-14 13:45:55王曉君王星李玉瑩
科技風 2018年25期

王曉君 王星 李玉瑩

摘要:如今的驅動程序已經無法滿足越來越多的高度集中的片上系統SOC的要求。本文主要敘述了基于嵌入式 Linux的platform驅動程序的設計方法和應用開發過程。在platform總線架構下溫濕度采集驅動設計的基礎上,詳細闡述了嵌入式 Linux下platform總線驅動設計中的platform總線、platform設備及platform驅動注冊和卸載等,并驗證設備驅動的正確性。

關鍵詞:platform總線;platform設備;platform驅動

中圖分類號:TP316文獻標識碼:A

Platform的管理是在Linux基礎之上完成。platform 在Linux 設備模型中管理外設資源和系統的外圍設備。引入platform之后更加便于管理。platform驅動架構有利于這些設備驅動的改寫、維護與擴展,提高設備驅動開發[1]的效率。因而,在此基礎上完成了驅動設計的溫度和濕度采集的實驗。

1 platform總體設計

Linux設備驅動負責設備的維護和實現,如:電源管理、熱插拔、對象生命周期、用戶空間和內核空間[2]的交互等。設備驅動主要是用于驅動程序的編寫和管理,但是實現相對復雜。總線、設備、驅動就是設備驅動模型的三個主要部分,[35]其組織關系總結為:

(1)devices:描述了設備如何連接系統;

(2)drivers:系統中可用的驅動;

(3)buses:負責匹配設備與驅動,連接到每個總線上;

(4)classes:設備功能類。

1.1 platform總線

platform 總線在內核中用platform_bus_type 結構表示,其實platform_bus_type就是一個關于platform的實例,platform總線啟動時由platform_bus_init()進入,具體調用函數的流程如下。

圖1 platform總線流程圖

Fig.1 platform bus flow processes

1.2 platform設備與platform驅動

分析設備使用platform_device 和驅動使用platform_driver,并在此基礎上對其進行詳細的分析和闡述。

其中針對platform_device,首先在需要包含頭文件platform_device.h的頭文件,然后設計一個命名為platform_device的結構體。結構體中必須包含設備平臺的名稱name,設備所需要的id號,并且需要一個用于設置相關項的內置的結構體,還需要結構體包含大的數量和資源指針,以及驅動設備的相關的匹配列表id_table表。

其中針對platform_driver,也必須包含頭文件platform_device.h,然后設計一個命名為platform_driver的結構體。結構體中必須包含設備平臺中platform的探測函數probe,與之相反的就是卸載platform的函數remove,platform需要對電源進行管理,包括電源的的設備和狀態的選擇,并且需要一個用于設置相關項的內置的結構體,還需要結構體包含大的數量和資源指針,以及總線設備的相關的列表id_table表。

2 platform總線架構下溫濕度驅動實現

2.1 設備平臺資源

在tiny4412相關的硬件設備中對其進行驅動程序的開發和設計,從而進一步的調試和完善platform總線架構的溫濕度采集驅動。溫度傳感器采用DHT11直接外接到嵌入式GPB4引腳上,通過溫度采集驅動控制外圍設備,控制臺實現溫濕度的采集。Platform總線架構需要一整套系統的的設計開發過程:首先需要對總線platform bus進行初始化,將 platform_device注冊到內核,然后再把 platform 設備掛到 platform bus(虛擬總線)上。最后注冊并編寫 platform 的驅動程序,實現兩者的綁定。

2.2 實現platform設備

platform 設備是注冊到 platform 總線的,使用 struct platform_device 定義平臺設備,通過platform_device_alloc()初始化函數中調用 platform_device_add()完成設備向內核注冊,設備注冊成功后,platform 總線會有 tiny4412dht11 的設備。platform設備定義及注冊核心代碼如下:

static int __init platform_dev_init(void)

{int ret;

my_dht11_dev=platform_device_alloc("platform_dht11",1);

ret = platform_device_add(my_dht11_dev);

if(ret) platform_device_put(my_dht11_dev);

return ret;

}

2.3 實現platform驅動

platform驅動定義結構體xing_dht11_drv,核心代碼如下所示:

struct platform_driverdevice_dht11_drv = {

.probe =xing_dht11_probe,

.remove =xing_ dht11_remove,

.driver = {

.owner =the_module,

.name = "platform_dht11",

},

};

在tiny4412_dht11_driver中tiny4412_dht11_probe()主要完成查詢系統中是否有相應設備,如果檢測到相應設備,則說明初始化完成。溫濕度采集驅動采用register_chrdev()向內核注冊驅動,實現溫濕度采集的open(),read()等功能,在read()函數中實現溫濕度的讀取。tiny4412_dht11_probe()核心代碼為:

驅動,并能與platform_dht11設備建立連接,能在控制臺上打印溫濕度采集結果。結果如圖2所示:

圖2 溫濕度采集結果

Fig.2Temperature and humidity collection results

3 結語

基于嵌入式Linux的platform驅動設計與應用中實現了在API上獲取設備中的信息,將SOC上的設備添加到虛擬總線上,使得總線到設備到驅動的順序模式到更加廣泛的使用,驅動代碼的編寫和放置位置可以與其他硬件代碼的隔離開來。溫濕度采集中關于驅動程序的設計和調試,證明了platform驅動的移植性良好,而且具有很高的可拓展性。

參考文獻:

[1]李樺,高飛,孫磊.嵌入式Linux設備驅動程序研究[J].微計算機信息,2010,26(14):6870.

Linux中用戶空間與內核空間的通信實現[J].微機發展,2005(05):7576+130.

[2]宋寶華.Linux 設備驅動開發詳解[M].人民郵電出版社,2008.0824.

[3]趙波,高真香子,項伯陽,等.Linux platform驅動架構的解析與應用[J].大連工業大學學報,2013,32(01):7174.

[4]周德榮,夏齡.Linux platform驅動架構實現機制研究與應用[J].赤峰學院學報(自然科學版),2010,26(10):2830.

[5]李建文,李外云,劉宏博,等.基于TinyOS2.x的溫濕度傳感器的底層驅動與應用[J].單片機與嵌入式系統應用,2013,13(07):2831.

作者簡介:王曉君(1973),男,河北張家口人,教授。

*通訊作者:王星

主站蜘蛛池模板: 国产剧情伊人| 97视频在线观看免费视频| 国产精品伦视频观看免费| 国产第四页| 欧美性久久久久| 国产一二视频| 亚洲男人天堂2018| 国产视频资源在线观看| 乱人伦视频中文字幕在线| 欧美日韩va| 中文字幕日韩视频欧美一区| 2021国产在线视频| 亚洲成人在线免费| 91免费国产高清观看| 亚洲国产清纯| 国产免费自拍视频| 青青草一区| 亚洲bt欧美bt精品| 天天躁日日躁狠狠躁中文字幕| 欧洲在线免费视频| 韩国自拍偷自拍亚洲精品| 亚洲aaa视频| 国产亚洲欧美在线中文bt天堂 | www.av男人.com| 国产第一页免费浮力影院| 日本伊人色综合网| 无码aaa视频| 久久福利网| 欧美亚洲国产一区| 黄色国产在线| 国产99热| 午夜福利亚洲精品| 97国产在线视频| 亚洲av无码牛牛影视在线二区| 欧美另类图片视频无弹跳第一页| 色吊丝av中文字幕| 特级aaaaaaaaa毛片免费视频| 一级成人a做片免费| 97超爽成人免费视频在线播放| 国产福利一区二区在线观看| 国产欧美性爱网| 好吊日免费视频| 国产福利免费视频| 日本精品视频一区二区| 制服丝袜亚洲| 亚洲精品无码AV电影在线播放| a免费毛片在线播放| 狠狠操夜夜爽| 人妻一本久道久久综合久久鬼色| 国产免费久久精品99re不卡| 婷婷六月激情综合一区| 久久国产精品77777| 国产亚洲精品在天天在线麻豆| 三上悠亚精品二区在线观看| 国产成人三级在线观看视频| 情侣午夜国产在线一区无码| 国产高颜值露脸在线观看| 视频在线观看一区二区| 亚洲人成高清| 精品国产女同疯狂摩擦2| 色吊丝av中文字幕| 日韩精品一区二区三区swag| 99精品高清在线播放| 9966国产精品视频| 精品福利视频导航| 99精品免费欧美成人小视频| 国产一区二区三区免费| 熟女成人国产精品视频| 国产精品性| 国产一区成人| 日韩国产欧美精品在线| 99无码熟妇丰满人妻啪啪| 国产人成在线视频| 日本午夜三级| 亚洲国产91人成在线| 国产精品男人的天堂| 日韩福利在线视频| 日韩视频免费| 婷婷五月在线视频| 91精品人妻一区二区| 亚洲欧洲一区二区三区| 国产麻豆另类AV|