发布时间:2014-05-21 20:29:04
Linux系统启动过程很复杂,因为它既需要支持模块静态加载机制也要支持动态加载机制。模块动态加载机制给系统提供了极大的灵活性,驱动程序既可支持静态编译进内核,也可以支持动态加载机制。Linux系统中对设备和子系统的初始化在最后进行,主要过程可以用下图表示。图1进入子系统初始化时,在内核in.........【阅读全文】
发布时间:2014-05-21 12:22:35
在阅读GNU/Linux内核代码时,我 们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。这种方式称为指定初始化(designated initializer)。下面我们看一个例子,Linux-2.6.x/drivers/usb/storage/usb.c中有这样一个结构体初始化 项目:s.........【阅读全文】
发布时间:2014-05-20 22:04:42
在上一个章节中,我们分析了MUSB device部分的内容.这些其实是比较死板僵硬的.按照SPEC一步步来就行了.1. resources(1) 在CPU上的registers的物理地址(2) DMA interrupt的信息(3) Controller的interrupt信息2. platform data这是MUSB 特性相关的内容.musb_plat->musb_config->点击(此处)折叠或打开.........【阅读全文】
发布时间:2014-05-20 22:04:29
1. Makefilefudan_abc在他的《Linux那些事儿之我是USB》中反复提到了Makefile.作为整个软件架构分析的map.这里拾人牙慧也按照这种方式来描述MUSB的软件架构.红色部分是指arch/arm/configs/XXXX_config中已经定义的.点击(此处)折叠或打开## for USB OTG silicon based on Men.........【阅读全文】