2011-07-19 80 views
2

我正在嘗試讀取/寫入到平臺設備的I/O內存寄存器,但系統一旦掛起就讀取/寫入被執行。Linux模塊 - I/O內存寄存器讀/寫掛起系統

我可以檢查以下內容:

  • request_mem_region返回OK

  • 請求正確的物理地址(ioremap的是OK)

  • 返回一個有效的邏輯地址;用這個來讀取
    寄存器; ioread32(logical_addr)

我很新的Linux內核,是有辦法,在I/O寄存器被禁止? 我檢查了/ proc/iomem,並且我希望訪問的內存區域出現在列表中。

下一步該怎麼辦?

+0

你試圖執行這個iomap/ioread的硬件是什麼樣的?也許硬件需要一些事先初始化? – Longfield

+0

這是一個ARMv6片上系統。我正在嘗試爲平臺設備編寫可載入模塊。 (媒體編解碼器硬件輔助組件)。我已經檢查了初始化,我會再次檢查。謝謝!有沒有辦法在Linux內核上禁用/啓用I/O存儲器寄存器? – JonathanC

回答

1

我找到了答案。感謝您對Longfield的迴應。 我忘了檢查驅動程序使用的名稱。它與正在註冊的設備名稱不匹配。他們應該匹配。