|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
問一個關(guān)于linux下串口初始化的問題 |
| 作者:tp133 欄目:驅(qū)動編程 |
在開發(fā)板上,串口經(jīng)常被用來作為終端console使用,通過閱讀源代碼可以看到在內(nèi)核啟動代碼調(diào)用console_init的時候,作為終端初始化關(guān)于串口的代碼 static int s3c24xx_serial_initconsole(void) { struct s3c24xx_uart_info *info; struct platform_device *dev = s3c24xx_uart_devs[0]; dbg("s3c24xx_serial_initconsole\n"); /* SELECT driver based on the cpu */ if (dev == NULL) { printk(KERN_ERR "s3c24xx: no devices for console init\n"); return 0; } if (strcmp(dev->NAME, "s3c2400-uart") == 0) { info = s3c2400_uart_inf_at; } else if (strcmp(dev->NAME, "s3c2410-uart") == 0) { info = s3c2410_uart_inf_at; } else if (strcmp(dev->NAME, "s3c2440-uart") == 0) { info = s3c2440_uart_inf_at; } else if (strcmp(dev->NAME, "s3c2412-uart") == 0) { info = s3c2412_uart_inf_at; } else { printk(KERN_ERR "s3c24xx: no driver for %s\n", dev->NAME); return 0; } if (info == NULL) { printk(KERN_ERR "s3c24xx: no driver for console\n"); return 0; } s3c24xx_serial_console.data = &s3c24xx_uart_drv; s3c24xx_serial_init_ports(info); register_console(&s3c24xx_serial_console); return 0; } 其中s3c24xx_uart_devs[0]在沒有初始化賦值的時候里面什么也沒有,所以不可能會有strcmp(dev->NAME, "s3c2410-uart") == 0的可能,這就說明在調(diào)用這個函數(shù)之前已經(jīng)調(diào)用過了platform_driver_unregister(&s3c2410_serial_drv);這個函數(shù),可是我沒有在之前的代碼里看到有這個動作,我想問的就是串口設(shè)備的注冊是在那個函數(shù)里進(jìn)行的,請不吝賜教 |
| 2樓: | >>參與討論 |
| 作者: ferry 于 2007/4/20 19:09:00 發(fā)布:
s3c24xx_serial_init s3c24xx_serial_init |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |