新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Linux的MISC類設(shè)備AD7859L的驅(qū)動(dòng)程序開(kāi)發(fā)

基于Linux的MISC類設(shè)備AD7859L的驅(qū)動(dòng)程序開(kāi)發(fā)

作者: 時(shí)間:2010-11-02 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://m.butianyuan.cn/article/151386.htm

  

  

  從2.6版本內(nèi)核開(kāi)始引入了platform這個(gè)概念,在開(kāi)發(fā)底層程序時(shí),首先要確認(rèn)的地址、中斷向量號(hào)。在內(nèi)核中添加的地址、中斷號(hào)、節(jié)點(diǎn)名。在加載時(shí)首先需要調(diào)用的入口函數(shù)module_init(),該函數(shù)完成設(shè)備的初始化工作,如寄存器置位、結(jié)構(gòu)體賦值等,其中最重要的工作就是向內(nèi)核注冊(cè)該設(shè)備。在應(yīng)用程序中打開(kāi)設(shè)備文件,然后利用ioctl()函數(shù)向驅(qū)動(dòng)傳遞各種控制命令。每一次A/D轉(zhuǎn)換完成后都會(huì)產(chǎn)生中斷,調(diào)用中斷響應(yīng)函數(shù),將轉(zhuǎn)換好的數(shù)據(jù)寫(xiě)到緩沖區(qū)中。當(dāng)用戶需要讀取A/D轉(zhuǎn)換的數(shù)據(jù)時(shí),通過(guò)調(diào)用read()函數(shù),讀取緩沖區(qū)數(shù)據(jù)。驅(qū)動(dòng)程序結(jié)構(gòu)如圖1所示。

  

  3.1 平臺(tái)資源

  在2.6內(nèi)核中將每個(gè)設(shè)備的資源用結(jié)構(gòu)platform_device描述,該結(jié)構(gòu)體在/include/linux/platform_device.h中定義。驅(qū)動(dòng)的平臺(tái)資源如下。在文件/arch/arm/roach—s3c2410/devs.c中添加下述結(jié)構(gòu)體。

  

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉