新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM體系結構之:I/O管理

        ARM體系結構之:I/O管理

        作者: 時間:2013-09-13 來源:網絡 收藏

        2.4

        系統完成I/O功能的標準方法是使用存儲器映射I/O。這種方法使用特定的存儲器地址。當從這些地址加載或向這些地址存儲時,它們提供I/O功能。某些系統也可能有直接存儲器訪問(DMA,Direct Memory Access)硬件。

        本文引用地址:http://www.104case.com/article/257090.htm

        外圍設備(如串行線控制器)中包含一些。在存儲器映射系統中,這些就像特定地址的存儲器一樣。(在其他的系統組織中,I/O功能可能與存儲器件有不同的尋址空間。)串行線控制器可能有以下5種

        ① 發送數據寄存器(只寫):寫入這個位置的數據被送往串行線。

        ② 接受數據寄存器(只讀):保存從串行線送來的數據。

        ③ 控制寄存器(讀/寫):設置數據速率,管理RTS(請求發送)和其他類似信號。

        ④ 中斷使能寄存器(讀/寫):控制中斷的硬件事件。

        ⑤ 狀態寄存器(讀/寫):指示讀數據是否有效、寫緩存是否滿等。

        要接受數據,必須用軟件適當地設置器件。通常在接收到有效數據或檢測到錯誤時產生一個中斷。中斷程序必須將數據復制到緩存器中并進行錯誤檢測。

        應該注意的是,存儲器映射外圍寄存器的行為與存儲器不同。連續兩次讀數據寄存器,即使對該寄存器沒有寫操作,其結果也很可能不同。而對真正存儲器的讀是冪等的(idempotent)(可多次重復讀,結果一致)。對外圍寄存器的讀操作可能清除當前值,致使下一次讀結果不同。這種寄存器稱為讀敏感(read-sensitive)的。

        當涉及讀敏感寄存器時,編程必須小心。特別是不能將這種寄存器的數據復制到

        在許多系統中,不能在用戶模式下訪問I/O寄存器。要訪問這些器件,只能通過監控調用(SWI)或通過使用這種調用的C庫函數。

        注意

        在ARM編程中,通常將存儲器的I/O區域標記為非Cache區(uncacheable),并繞過Cache訪問。通常Cache與讀敏感(read-sensitive)器件相互排斥。顯示幀緩存器(DisplayFrame Buffers)也需要仔細考慮,通常也設為不可Cache的。

        存儲器相關文章:存儲器原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 焉耆| 巫山县| 和硕县| 庆元县| 太谷县| 克什克腾旗| 翁源县| 瑞昌市| 娄底市| 思南县| 五家渠市| 霍邱县| 兴化市| 绍兴县| 新沂市| 浦江县| 浮山县| 麻阳| 苗栗市| 策勒县| 汝城县| 绩溪县| 连山| 天全县| 穆棱市| 江达县| 汝南县| 嘉义县| 西平县| 家居| 徐闻县| 安平县| 高安市| 申扎县| 通榆县| 陆丰市| 蒙山县| 察雅县| 水富县| 鹤庆县| 同德县|