Linux 内核及内核编程(1) 成于坚持,败于止步 Linux 2.6 内核的特点 Linux 2.6 相对于 Linux 2.4 有相当大的改进,主要体现在如下几个方面. 1.新的调度器 2.6 版本的 Linux 内核使用了新的进程调度算法,它在高负载的情况下执行得极其出色,并且当有很多处理器时也可以很好地扩展. 2.内核抢占 在 2.6 版本的 Linux 内核中,内核任务可以被抢占,从而提高系统的实时性.这样做最主要的优势在于可以极大地增强系统的用户交互性. 3.改进的线程模型 2.6
18.1 设备树的起源 linux 2.6及之前,大量板级信息被硬编码到内核里,十分庞大,大量冗余代码: linux 2.6之前,引入了设备树: 设备树源于OpenFirmware,描述硬件的数据结构.由一些列节点node和属性property组成,通常包括下列信息: 本质上是画一棵CPU.总线.设备组成的树,Linux内核会把设备树展开成platform_device.i2c_client.spi_device等设备,而这些设备用到的内存.中断等资源,也会传递个内核,内核会将这些资源绑定给展开
10.1 中断与定时器 中断一般有如下类型: 内部中断和外部中断:内部中断来自CPU,例如软件中断指令.溢出.除0错误等:外部中断有外部设备触发 可屏蔽中断和不可屏蔽中断 向量中断和非向量中断,ARM一般是非向量中断,因为现在的中断源很多,如果做成向量,那中断向量表会很大.不过ARM的总异常还是按照向量的方式组织的. ARM cortex-A9 中断体系举例: 向量表:发生异常后,CPU直接跳转到响应地址执行. .section .vectors_vector_table: B _boot B
4-3 摄像头的初始化流程及v4l2子设备驱动 这个问题弄清楚了以后下面就来看获得Camera信息以后如何做后续的处理: 在fimc_init_global调用结束之后我们获得了OV9650的信息,之后在probe函数里面就会继续调用一个函数:fimc_configure_subdev(). 这个函数的实现如下: /* * Assign v4l2 device and subdev to fimc * it is called per every fimc ctrl