linux串列埠終端驅動 s3c6410平台(二)

2021-06-06 03:00:34 字數 1886 閱讀 1330

1、終端裝置

在linux系統中,終端是一種字元型裝置,它有多種型別,通常使用tty來簡稱各種型別的終端裝置。tty是teletype的縮寫,teletype是最早出現的一種終端裝置,很像電傳打字機,是由teletype公司生產的。

linux中包含如下幾類終端裝置:

1).串列埠終端(/dev/ttysn)

使用計算機串列埠連線的終端裝置。串列埠對應的裝置名稱是/dev/ttysn。如/dev/ttys0、/dev/ttys1等,裝置號分別是(4,0)、(4,1)

2).偽終端(/dev/pty/)

顯示器通常稱為控制台終端,若當前程序有控制終端,則/dev/tty就是當前程序的控制終端的裝置特殊檔案。可以使用命令「ps-ax」檢視程序與哪個控制終端相連,使用命令「tty」檢視它具體對應哪個實際終端裝置。

3).控制台終端(/dev/ttyn, /dev/console)

2、linux核心tty層次結構

(1)、tty執行緒規程

以特殊的方式格式化從乙個使用者或者硬體收到的資料,這種格式化常常採用乙個協議轉換的形式,如ppp、bluetooth。

(2)、tty裝置傳送資料流程

tty核心從乙個使用者獲取將要傳送給乙個tty裝置的資料,tty核心將資料傳遞給tty線路規程驅動,接著資料被傳遞到tty驅動,tty驅動將資料轉換為可以傳送的硬體格式。

(3)、tty裝置接收資料流程

從tty硬體接收到的資料向上交給tty驅動,進入tty線路規程驅動,再進入tty核心,在此被使用者獲取。儘管tty核心與tty之間的資料傳輸會經歷tty線路規程的轉換,但是tty驅動與tty核心之間也可以直接傳輸資料。

(4)、上圖第一部分,因為終端是一種字元裝置,所以要按字元裝置的要求來註冊,並有對應的file_operations結構體,用於對裝置進行操作。

註冊的方法有兩種:

(1)、在drivers/char/tty_io.c中定義:

static const struct file_operations tty_fops = ;

此結構體在下面初始化函式中被賦值給對應的字元裝置tty

可以在註冊tty_driver結構體例項時進行,一般用此方法。 /*

* called by a tty driver to register itself.

*/int tty_register_driver(struct tty_driver *driver)

if (!driver->major)

} else

if (error < 0)

if (p) else

cdev_init(&driver->cdev, &tty_fops);

driver->cdev.owner = driver->owner;

error = cdev_add(&driver->cdev, dev, driver->num);

if (error)

mutex_lock(&tty_mutex);

list_add(&driver->tty_drivers, &tty_drivers);

mutex_unlock(&tty_mutex);

if (!(driver->flags & tty_driver_dynamic_dev))

proc_tty_register_driver(driver);

driver->flags |= tty_driver_installed;

return 0;}

S3C2440 UART串列埠驅動

通用非同步接收器和傳送器 universal asynchronous receiver and transmitter 簡稱uart。通常是嵌入式裝置中預設都會配置的通訊介面。這是因為,很多嵌入式裝置沒有顯示屏,無法獲得嵌入式裝置實時資料資訊,通過uart串列埠和超級終端相連,列印嵌入式裝置輸出資...

串列埠驅動設計(基於S3C6410)

串列埠充當的角色有兩個,乙個是資料傳輸,還有乙個就是充當控制台。串列埠通訊分為同步和非同步,我們通常使用的是非同步串列埠。通訊時,雙方先約定好資料幀的格式,即波特率,資料位,停止位,奇偶校驗位等。我們通常使用的是rs232的9幀串列埠,其中,最重要的是2,3,5腳。2 rxd接收資料 3 txd傳送...

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

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