发布时间:2016-07-27 15:46:11
一、串口的初始化main.c(setup_arch(&command_line);)---->setup.c(paging_init(mdesc);)---->mmu.c(devicemaps_init(mdesc);)---->mmu.c(mdesc->map_io();)---->\arch\arm\mach-davinci\board-da850-evm.c(.map_io = da850_evm_map_io,)---->\arch\arm\mach-davinci\da850.c(void __init da850_init(void))1.........【阅读全文】
发布时间:2016-07-27 15:46:00
初始化就是初始化以下串口结构: static int __init serial8250_init(void){int ret;if (nr_uarts > UART_NR)//UART_NR =3nr_uarts = UART_NR;//串口数量最多设为3个printk(KERN_INFO "Serial: 8250/16550 driver, ""%d ports, IRQ sharing %sabled\n", nr_uarts,share_irqs ? "en" : "dis");#ifdef.........【阅读全文】
发布时间:2016-07-27 15:43:58
三、串口的打开在用户空间执行open操作的时候,就会执行uart_ops->open. Uart_ops的定义如下: tty_open=>init_dev=>initialize_tty_struct=>tty_ldisc_assign=>将tty_ldisc_N_TTY复制给该dev然后tty->driver->open(tty, filp);tty->driver为上面uart_register_driver时注册的tty_driver驱动,它的操作方法集.........【阅读全文】