新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM+Linux 的儀器控制系統的設計模式分析

        ARM+Linux 的儀器控制系統的設計模式分析

        作者: 時間:2012-07-25 來源:網絡 收藏

        對于AT91RM9200利用如下轉換函數獲取虛擬地址,其中宏AT91_VA_BASE_SYS是系統虛擬基地址:

        讀寫端口對于AT91RM9200還可使用專門函數

        ARM+Linux 的儀器控制系統的設計模式分析

        int at9 1_set_gpio_value(unsigned pin,int value),并包含頭文件asm-arm/arch-at91/gpio.h。一般端口的訪問在驅動模塊初始化時申請資源,在卸載時釋放資源,而對于I/O口的使能則在open方法中實現,相應的禁用在release方法中實現。

        1.3 ioctl方法的實現

        用戶可以通過ioctl方法向內核發送各種命令,必要時傳遞參數,下面展示一個簡單實例。

        ARM+Linux 的儀器控制系統的設計模式分析

        1.4中斷控制實現

        當外部信號的到來時刻不可預測時,使用輪詢方式將使得效率極低,需要使用阻塞型中斷實現。即沒有中斷信號到來時阻塞讀進程,使其處于睡眠狀態,當中斷到來喚醒讀進程,執行預定處理操作。

        首先,在open方法中使用request_irq()安裝中斷處理程序,在release方法中釋放。函數原型如下:

        ARM+Linux 的儀器控制系統的設計模式分析

        其中:參數irq為中斷號;handler為ISR指針;flags為與中斷管理有關的各選項字節掩碼;dev_name即設備名;dev_id為中斷信號線。

        其次,ISR為申請中斷時使用的參數名,假設為irq0_handler,定義原型如下:

        ARM+Linux 的儀器控制系統的設計模式分析

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 河源市| 哈密市| 固阳县| 浦北县| 柘城县| 定日县| 中阳县| 盐边县| 土默特左旗| 平安县| 清河县| 黑龙江省| 拜城县| 米林县| 工布江达县| 桓台县| 西乌珠穆沁旗| 广水市| 邹平县| 望奎县| 晋州市| 汉阴县| 和平县| 双鸭山市| 陇西县| 武穴市| 新竹市| 永福县| 灵寿县| 获嘉县| 彩票| 通城县| 萨嘎县| 乾安县| 日照市| 灵武市| 葵青区| 湾仔区| 盐池县| 青铜峡市| 宾川县|