发布时间:2017-03-10 15:45:21
一、串口的初始化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.........【阅读全文】
发布时间:2017-03-10 15:44:55
初始化就是初始化以下串口结构: 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.........【阅读全文】
发布时间:2017-03-10 15:44:34
PlatForm设备驱动:一、platform总线、设备与驱动1.一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设等确不依附于此类总线。基于这一背景,Linux发明了一种.........【阅读全文】
发布时间:2017-03-10 15:44:23
三、串口的打开在用户空间执行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驱动,它的操作方法集.........【阅读全文】
发布时间:2017-03-10 15:44:09
一.宏的定义在/include/linux/Init.h中[cpp] view plaincopyprint?#define __setup(str, fn) \ __setup_param(str, fn, fn, 0) #define __setup(str, fn) \.........【阅读全文】