國嵌攻略 130 串列埠驅動分析 傳送

2022-07-20 23:39:22 字數 818 閱讀 8758

tty資料傳送流程

//tty子系統

1.file_operation中找到tty_write

2.tty_write找到線路規程中的n_tty_write

3.n_tty_write找到uart_ops中的uart_write

//串列埠驅動

4.uart_write找到s3c24xx_serial_start_tx

當應用程式使用系統呼叫時最終呼叫到s3c24xx_serial_start_tx函式

s3c24xx_serial_start_tx如何實現

1.使能串列埠傳送中斷,fifo資料會傳送走,然後串列埠產生中斷

2.中斷處理程式來完成資料傳送

串列埠傳送的資料從**來

當應用程式呼叫write系統呼叫後,資料會被寫入串列埠的迴圈緩衝,當傳送中斷處理程式開始傳送資料時會把迴圈緩衝的資料取走。使用者資料在uart_write呼叫時被寫入迴圈緩衝。

串列埠傳送函式分析

串列埠傳送真正的函式是s3c24xx_serial_tx_char

1.判斷是否有需要傳送的x_char字元(裝置是否能傳送),如果有通過將其寫入utxh暫存器傳送

2.如果迴圈快取為空或者串列埠狀態不允許傳送,則關閉傳送中斷

3.利用while迴圈,來傳送資料,迴圈條件:1.迴圈快取不為空;2.傳送資料量小於256

3.1.當傳送fifo滿的時候,退出傳送

3.2.從迴圈緩衝中取出資料,寫入utxh暫存器

3.3.調整迴圈緩衝位置

4.如果迴圈緩衝中的資料量低於256的時候,喚醒之前在傳送時阻塞的程序

5.如果迴圈緩衝為空,則關閉傳送中斷

國嵌攻略 132 串列埠驅動實現

如何開發linux驅動程式 一般情況下都會有現成的驅動程式,不需要從零開始開發驅動程式。所以linux驅動開發主要分為兩個步驟 1.讀得懂驅動程式 2.寫的了核心功能。傳送中斷處理程式 傳送中斷處理函式在 drivers serial samsung.c的s3c24xx serial tx char...

4 串列埠驅動

1 初始化gpio的模式和速度 2 配置中斷優先順序分組 3 串列埠初始化 4 串列埠服務函式編寫 我是分割線 一 gpio初始化 gpio埠設定 gpio inittypedef gpio initstructure rcc apb2periphclockcmd rcc apb2periph gp...

國嵌攻略 168 音效卡驅動開發

oss架構 oss全稱是open sound system,叫做開放式音訊系統,這種早期的音訊系統是基於檔案系統的訪問方式,這意味著對聲音的操作完全可以像對普通檔案那樣執行open,read等操作。oss中,主要提供了一下幾種音訊裝置的抽象裝置檔案 dev mixer 用來訪問音效卡中的混音器,用於...