Linux串列埠驅動程式 1 tty驅動程式架構

2021-09-24 21:12:33 字數 1518 閱讀 8727

1.tty概念分析

控制台終端(/dev/console

虛擬終端(/dev/tty*

在linux核心中printk函式處理是交給控制台終端的,控制台終端又把它對映到串列埠終端或者螢幕終端上。而虛擬終端更多是在應用程式中使用。

2.tty架構解析

3.回溯串列埠資料傳送

static

void

s3c24xx_serial_start_tx

(struct uart_port *port)

}

(s3c24xx_serial_start_tx+

0x0/

0x64) from (uart_start+

0x68/

0x6c)

r5:c38c5800 r4:

60000013

(uart_start+

0x0/

0x6c) from (uart_write+

0xc0/

0xe0)

r5:c38c5800 r4:

00000000

(uart_write+

0x0/

0xe0) from (n_tty_write+

0x1d8/

0x448)

(n_tty_write+

0x0/

0x448) from (tty_write+

0x14c/

0x244)

(tty_write+

0x0/

0x244) from (redirected_tty_write+

0x88/

0x98)

(redirected_tty_write+

0x0/

0x98) from (vfs_write+

0xb4/

0xe8)

r9:c397e000 r8:c00300c8 r7:

00000004 r6:c397ff78 r5:

40000000

r4:c3960100

去掉系統呼叫介面和核心服務例程相關函式。

redirected_tty_write()函式呼叫tty核心tty_write(),tty_write()呼叫線路規程裡面的ldisc.write(),然後呼叫n_tty_write()、uart_start(),最後呼叫tty驅動函式s3c24xx_serial_start_tx()。

1.tty概念分析

Linux串列埠驅動程式 6 串列埠驅動實現

在linux驅動開發中,一般都不會從0開始寫,我們做的更多的是移植和修改,有時候還需要對驅動程式進行優化。當然具備移植 修改驅動能力的基礎是能夠讀懂驅動程式,同時需要對這個驅動程式的核心功能非常了解。接下來開始編寫傳送中斷處理程式和接收中斷處理程式的 1.傳送中斷處理程式的設計 傳送中斷處理程式 s...

linux 驅動程式 高階字元驅動程式

ioctl方法 驅動程式的原型實現 int ioctl struct inode inode,struct file filp,unsigned int cmd,unsigned long arg ioctl 命令選擇 位段結構 number direction ioc read ioc write...

linux裝置驅動程式 字元裝置驅動程式

先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...