Linux 終端裝置驅動

2021-10-13 15:33:32 字數 1252 閱讀 4529

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開發板為例說明串列埠終端。在除錯開發板的時...