在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > linux UART串口驅(qū)動(dòng)開發(fā)文檔

            linux UART串口驅(qū)動(dòng)開發(fā)文檔

            作者: 時(shí)間:2012-09-06 來源:網(wǎng)絡(luò) 收藏

            要能夠成為終端,必須客外加入終端注冊(cè)及初始化的代碼,這部分很簡單,基本上所有的都是固定的模式,并無什么修改,主要包括如下結(jié)構(gòu):

            static struct console cs_amba_console = {

            .name = ttyBM,

            .write = w83697uart_console_write,

            .device = w83697uart_console_device,

            .setup = w83697uart_console_setup,

            .flags = CON_PRINTBUFFER,

            .index = -1,

            };

            終端的注冊(cè)通過下面的函數(shù),將cs_amba_console注冊(cè)成為終端, 這個(gè)函數(shù)調(diào)用路徑是:

            start_kernel()→console_init()→ep93xxuart_w83697_console_init()

            void __init ep93xxuart_w83697_console_init(void)

            終端會(huì)對(duì)應(yīng)一種具體設(shè)備的driver, 相對(duì)于串口這個(gè)結(jié)構(gòu)是uart_driver, 在中我們已經(jīng)提供了一個(gè)這樣的結(jié)構(gòu). static struct uart_driver amba_reg, uart_register_driver會(huì)將它注冊(cè)成為終端對(duì)應(yīng)的driver, 因此真正串口與終端的關(guān)聯(lián)就在此處建立.

            函數(shù): static int __init w83697uart_init(void)

            描述: 調(diào)用uart_register_driver()完成串口與終端的關(guān)聯(lián),將串口注冊(cè)成為一種TTY設(shè)備,在uart_register_driver()當(dāng)中調(diào)用tty_register_driver()完成TTY設(shè)備注冊(cè); 其次是完成串口port口的注冊(cè),將靜態(tài)描述的所有串口port(結(jié)構(gòu)為struct uart_port)注冊(cè)到uart_driver當(dāng)中.

            特別說明: 注冊(cè)串口TTY設(shè)備時(shí),由于歷史的原因會(huì)注冊(cè)兩個(gè)TTY設(shè)備,一個(gè)是normal, 另一個(gè)是callout, 是兩個(gè)設(shè)備來的, 在我們這里兩者沒有什么差別,請(qǐng)看源碼中的注解:

            .normal_name = ttyBM,

            .callout_name = cuaam,

            /*

            * The callout device is just like the normal device except for

            * the major number and the subtype code.

            */

            函數(shù): static void __exit w83697uart_exit(void)

            描述: 卸截設(shè)備,卸截port口,因?yàn)槲揖幾g的是與內(nèi)核綁定在一起的,因此實(shí)際上根本不會(huì)調(diào)用此函數(shù).

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            linux相關(guān)文章:linux教程



            上一頁 1 2 3 4 5 6 下一頁

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉