gdt-A20

导航

随笔分类 -  Kernel

start_kernel----cgroup_init_early<五>
摘要:In kernel/cgroup.c 1 /** 2 * cgroup_init_early - cgroup initialization at system boot 3 * 4 * Initialize cgroups at system boot, and initialize any 5 * subsystems that request early init. 6 */ 7 int __init cgroup_init_early(void) 8 { 9 int i;10 atomic_set(&init_css_set.refcount, 1);11 ... 阅读全文

posted @ 2012-01-15 23:18 gdt-A20 阅读(958) 评论(0) 推荐(0)

start_kernel---boot_init_stack_canary<四>
摘要:In init/main.c1 /*2 * Set up the the initial canary ASAP:3 */4 boot_init_stack_canary();in arch/arm/include/asm/stackprotector.h 1 /* 2 * Initialize the stackprotector canary value. 3 * 4 * NOTE: this must only be called from functions that never return, 5 * and it must always be inline... 阅读全文

posted @ 2012-01-15 23:14 gdt-A20 阅读(1360) 评论(0) 推荐(0)

start_kernel---lockdep_init<三>
摘要:1 /*2 * Need to run as early as possible, to initialize the3 * lockdep hash:4 */5 lockdep_init();位于kernel/lockdep.c 1 void lockdep_init(void) 2 { 3 int i; 4 5 /* 6 * Some architectures have their own start_kernel() 7 * code which calls lockdep_init(), while we also 8... 阅读全文

posted @ 2012-01-15 23:06 gdt-A20 阅读(2453) 评论(0) 推荐(0)

linux启动流程导读(arm为例)<二>
摘要:进入init/main.cstart_kernel 1 asmlinkage void __init start_kernel(void) 2 { 3 char * command_line; 4 extern const struct kernel_param __start___param[], __stop___param[]; 5 6 smp_setup_processor_id(); 7 8 /* 9 * Need to run as early as possible, to initialize the10 * lockde... 阅读全文

posted @ 2012-01-15 22:57 gdt-A20 阅读(1176) 评论(0) 推荐(0)

linux启动流程导读(arm为例)<一>
摘要:==============================================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20==============================================以arm为例,分析一下kernel的启动过程;内核版本:linux-3.2.tar.gz一、arch/arm/kernel/head.s 1 /* 2 * Kernel startup entry point. 3 * --------------------------- 4 * 5 * This is... 阅读全文

posted @ 2012-01-14 15:14 gdt-A20 阅读(2070) 评论(0) 推荐(0)

spinlock导读
摘要:==============================================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20==============================================看一下spinlock,以arm为例,一、先看结构:include/linux/spinlock_types.h 1 typedef struct spinlock { 2 union { 3 struct raw_spinlock rlock; 4 5 #ifdef CONFIG_DE... 阅读全文

posted @ 2012-01-14 11:48 gdt-A20 阅读(1008) 评论(0) 推荐(0)

linux设备模型之led子系统
摘要:==================================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20==================================时代不同了,连led都成子系统了,针对内核提供的通用模型,分析一下,好久没写文章了也!代码位于drivers/leds下,看一下Makefile 模型文件主要是:# LED Coreobj-$(CONFIG_NEW_LEDS) += led-core.oobj-$(CONFIG_LEDS_CLASS) += led-class.oobj-$(CONFIG... 阅读全文

posted @ 2011-07-11 16:24 gdt-A20 阅读(2351) 评论(0) 推荐(0)

linux设备模型之spi子系统
摘要:===============================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20=============================== 相比于前面介绍的i2c子系统,spi子系统相对简单,和i2c的结构也很相似,这里主要介绍一下平台无关部分的代码。先概括的说一下,spi总线或者说是spi控制器用结构体struct spi_master来表述,而一般不会明显的主动实现这个结构而是借助板级的一些信息结构,利用spi的模型填充,存在板级信息的一条链表board_list,上面挂接着板级spi设备的描述信息,其 阅读全文

posted @ 2011-05-22 16:22 gdt-A20 阅读(6142) 评论(0) 推荐(0)

linux设备模型之i2c子系统
摘要:===============================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20=============================== I2c子系统将i2c控制器(i2c寄存器所在的那块电路)抽象出来,用adapter(适配器)这个结构来描述,可以说一个适配器就代表一条i2c总线,而挂接在i2c总线上的设备是用client这个结构体来表述,另外i2c_bus上的设备链表挂接的不单单是连接的这条i2c上的client,同样adapter也作为一个设备挂在其所在的i2c_bus,也就是说控制器和设备都作为i 阅读全文

posted @ 2011-05-20 00:00 gdt-A20 阅读(6381) 评论(0) 推荐(1)

linux设备模型之platform
摘要:===============================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20=============================== platform可以说是内核抽象出来的一条虚拟总线平台,内核开发者原意是想把硬件层次上的结构关系用软件抽象模拟出来,但是对一些硬件,这样做往往不太合适,例如对于片上soc,外围设备的控制器都集成在处理器上,如果过度的剥离抽象,会使得原本物理上紧密的结构而在软件上变成的偏于独立,因此有了platform,对于联系紧密的soc这往往再合适不过,另外对于从soc上直接引出的引 阅读全文

posted @ 2011-05-18 14:18 gdt-A20 阅读(1713) 评论(0) 推荐(0)

linux设备模型之bus,device,driver分析二
摘要:===============================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20=============================== 上篇分析了bus,driver的注册过程,这篇主要分析device的注册,并总结给出个流程图。三、device的注册 还是照例先看一下device的结构: 1 struct device { 2 struct device *parent; 3 struct device_private *p; ... 阅读全文

posted @ 2011-05-17 16:40 gdt-A20 阅读(2301) 评论(0) 推荐(0)

linux设备模型之bus,device,driver分析一
摘要:===============================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20=============================== 内核的开发者将总线,设备,驱动这三者用软件思想抽象了出来,巧妙的建立了其间的关系,使之更形象化。结合前面所学的知识,总的来说其三者间的关系为bus有两条链表,分别用于挂接设备和驱动,指定了其自身bus的device或者driver最后都会分别连接到对应bus的这两条链表上,而总线又有其始端,为bus_kset,一个driver可以对应于几个设备,因此driver同样有其 阅读全文

posted @ 2011-05-17 02:15 gdt-A20 阅读(2896) 评论(0) 推荐(0)

关于linux设备模型kobject,kset,ktype
摘要:--------------------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20--------------------------------------------------------一、sysfs文件系统下的每个目录对应于一个kobj,kset是kobj的封装,内嵌了一个kobj,其代表kset自身,ktype代表属性操作集,但由于通用性,因此把ktype单独剥离出来,kobj,kset,ktype成为了各个驱动模型最底层的关联元素,并由此形成了sys 阅读全文

posted @ 2011-05-16 15:52 gdt-A20 阅读(2273) 评论(0) 推荐(1)