1、控制台
1)控制台是乙個虛擬的終端,它必須對映到真正的終端上
2)控制台是個只輸出的裝置,功能很簡單,只能在核心中訪問
2、偽終端
一種特殊的終端裝置,由主-從兩個成對的裝置構成,當開啟主裝置時,對應的從裝置隨之開啟,形成連線狀態
輸入到主裝置的資料成為從裝置的輸出,輸入到從裝置的資料成為主裝置的輸出,形成雙向管道
偽終端裝置常用於遠端登入伺服器來建立網路和終端的關聯
3、串列埠驅動
linux 核心使用uart_driver來描述串列埠,包含串列埠裝置驅動名、裝置名、裝置號等資訊
struct uart_driver
struct module *owner;
const char *driver_name; //驅動名
const char *dev_name; //裝置名
int major; /主裝置號
int minor; //次裝置號
int nr; // 裝置數
struct console *cons; //
strruct uart_state *state;
struct tty_driver *tty_driver;
//註冊串列埠驅動
int uart_regiater_driver(struct uart_driver *drv);
埠uart_port用於描述乙個uart埠(乙個串列埠)的位址,fifo大小、埠型別等資訊
struct uart_port
spinlock_t lock;// 埠鎖
unsigned int iobase; //io埠基位址
unsigned char __iomem *membase; //io記憶體基位址
unsigned int irq; // 中斷號
unsigned char fifosize; //傳輸fifo大小
const struct uart_ops *ops; //操作函式指標
//新增埠
int uart_add_one_port(struct uart_driver *drv,struct uart_port *port);
//操作流程:
1)定義乙個uart_driver的變數,並初始化
2)使用uart_register_driver來註冊這個驅動
3)初始化uart_port和ops函式表、
4)呼叫uart_add_one_port()新增初始化好的uart_port
Linux終端裝置驅動(三)
圖14.5 串列埠核心層 串列埠核心層為串列埠裝置驅動提供了如下3個結構體 1 uart driver uart driver包含串列埠裝置的驅動名 裝置名 裝置號等資訊,它封裝了tty driver,使得底層的uart驅動無需關心tty driver,其定義如 清單14.13。清單14.13 ua...
linux 終端裝置
終端解釋 終端是一種字元型裝置,它有多種型別,通常使用tty來簡稱各種型別的終端裝置。tty是teletype的縮寫。teletype是最早出現的一種終端裝置,很象電傳打字機 或者說就是 是由teletype公司生產的。在linux系統的裝置特殊檔案目錄 dev 下,終端特殊裝置檔案一般有以下幾種 ...
linux 終端裝置
早期計算機通常用電傳印表機充當終端裝置,終端裝置的作用就是接受使用者的輸入並傳遞給計算機,接受計算機的反饋返回給使用者。如下圖所示 後來電傳印表機被鍵盤和顯示器取代,linux為了支援這種外部終端裝置的連線,提供了終端裝置介面 tty 下面以海思hi3559開發板為例說明串列埠終端。在除錯開發板的時...