共 6 篇文章 |
|
irq <NR_IRQS;对于S3C2440开发板,这个函数就是s3c24xx_init_irq,移植machine_desc结构中的init_irq成员就指向这个函数s3c24xx_init_irq函数在arch/arm/plat-s3c24xx/irq.c中定义,它为所有中断设置了芯片相关的数据结构(irq_desc[irq].chip),设置了处理函数入口(irq_desc[irq].handle_irq)。desc_hand_irq函数直接调用desc结构中的han... 阅481 转5 评0 公众公开 11-12-14 20:06 |
我们把搬移前的中断向量表中的irq入口地址记irq_PC,它在中断向量表的偏移量就是irq_PC-vectors_start, vector_irq在stubs中的偏移量是vector_irq-stubs_start,这两个偏移量在搬移前后是不变的。3.6 asm_do_IRQ实现过程,arch/arm/kernel/irq.c.struct irq_desc *desc = irq_desc + irq;static inline void desc_handle_irq(unsigned int irq, ... 阅672 转8 评0 公众公开 11-12-14 19:37 |
Linux 下操作GPIO(两种方法,驱动和mmap)stb_gpio = (STBX25XX_GPIO_REG *)ioremap(GPIO_BASE,GPIO_LEN);printk(KERN_ALERT "GPIO = %08x",(int)uGpio);2. 在应用层使用mmap函数在应用层获得GPIO物理基地址对应的虚拟地址指针,然后使用这个指针来读写GPIO寄存器,这里提供一点程序片断供大家参考:GPIO_REGISTER *gpio_base;gpio_... 阅1360 转5 评0 公众公开 11-12-06 20:43 |
class_create()-------------------------------------------------linux-2.6.22/include/linux/device.hstruct class *class_create(struct module *owner, const char *name) class_create - create a struct class structure @owner: pointer to the module that is to "own" this struct class @name: pointer to a str... 阅101 转0 评0 公众公开 11-10-20 16:48 |
内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再调用device_create(…)函数来在/dev目录下创建相应的设备节点。struct class和device_create(…) 以及device_create(…)都定义在/include/lin... 阅49 转1 评0 公众公开 11-10-20 16:43 |
EXPORT_SYMBOL例子原文地址:http://blog.chinaunix.net/space.php?uid=20357359&do=blog&cuid=461504一个模块mod1中定义一个函数func1;在另外一个模块mod2中定义一个函数func2,func2调用func1。在模块mod1中,EXPORT_SYMBOL(func1);在模块mod2中,extern int func1();就可以在mod2中调用func1了。#insmod ./mod1.ko#insmod ./mod2.k... 阅926 转1 评0 公众公开 11-10-17 11:47 |