[英]How to read data (characters) from serial port in Kernel mode (Linux)?
我正在開發一個Linux內核模塊,我需要從串行端口(字符)讀取數據。 我想將字符(例如:“ D”,“ T”和“-”)設置為來自串行端口的條目,我想閱讀這些條目。 我花了很長時間嘗試使用“ inb(0x3f8)”和“ termios”,但沒有成功。 但是,使用“ outb”寫入數據可以正常工作,我在我設置的VBox配置上以VirtualBox的客戶機身份安裝了Ubuntu 10.10作為系統:
activated serial port
port number : COM1 IRQ 4 PORT I/O : 0x3f8
Port/path D:\Oracle\serial.txt
我認為,如果您在內核線程中運行,則可以使用filp_open或其他函數來獲取文件操作指針,然后可以通過file_operations指針使用“常規”調用。
僅當你在一個“正常”的上下文中運行工作- “用戶”過程中或可能內核線程,它絕對不會正確的,如果你在一些“不尋常”的情況下是工作。
在正常任務中,這些調用可能會阻塞,並且一切都會“正常工作”。 我認為。 我已經嘗試過用插座,它的工作原理。
掛載的文件系統可能會出現問題,因為內核線程可能會獲得一個包含很少(或不包含)文件節點的名稱空間。 這可能意味着更容易在用戶空間中打開設備並以某種方式傳遞設備。
還要注意內核中有限的堆棧大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.