从题目就可以意会到这一节还是关于字符设备的驱动,不过是另一种技巧:中断。这个词一点都不陌生。
一、先来分析今天的重量级函数request_irq(),看看他的函数原型就行了,先不进行深入分析。
int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,const char *name, void *...
分类:
其他好文 时间:
2015-03-19 22:05:55
阅读次数:
164
本节内容:Linux内核异常处理的的初始化过程和异常发生时的处理流程。
【首先来区分一下两个概念:中断(Interrupt)和异常(Exception)。中断属于异常的一种,就拿2440开发板来说,他有60多种中断源,例如来自DMA控制器、UART、IIC和外部中断等。2440有一个专门的中断控制器来处理这些中断,中断控制器在接收到这些中断信号之后就需要ARM920T进入IRQ或FIQ模式进行处...
分类:
系统相关 时间:
2015-03-17 23:49:45
阅读次数:
403
http://www.ibm.com/developerworks/cn/linux/l-cn-linuxkernelint/index.html本文对中断系统进行了全面的分析与探讨,主要包括中断控制器、中断分类、中断亲和力、中断线程化与 SMP 中的中断迁徙等。首先对中断工作原理进行了简要分析,接...
分类:
系统相关 时间:
2015-03-16 15:50:58
阅读次数:
241
linux驱动——并发和竟态序——正在运行的多个用户空间程序可能以一个令人惊讶的组合方式访问我们的代码。SMP系统甚至可能在不同的处理器上同时执行我们的代码。内核代码是可抢占的,因此我们的驱动程序代码可在任何时候丢失对处理器的独占。信号量(semaphore)的实现: 有一对..
分类:
其他好文 时间:
2015-03-16 06:30:42
阅读次数:
180
在编写Linux驱动程序时,我想用某一个引脚做外部中断。但是在调用
int request_irq(unsigned int irq,
void (*handler)(int irq, void *dev_id, struct pt_regs *regs
),
unsigned long irqflags,
const char * devname,
void *dev_id)...
分类:
其他好文 时间:
2015-03-15 10:58:59
阅读次数:
183
1.准备操作系统1.1 系统登录界面1.2 操作系统版本信息jdbh:~ # uname -raLinux jdbh 2.6.27.54-Rocky4.2-x86_64 #1 SMP Fri Dec 24 11:29:12 CST 2010 x86_64 GNU/Linuxjdbh:~ # cat ...
分类:
数据库 时间:
2015-03-14 12:20:33
阅读次数:
1348
多核CPU运行模式主要有以下三种: ?非对称多处理(Asymmetric multiprocessing,AMP)——每个CPU内核运行一个独立的操作系统或同一操作系统的独立实例(instantiation)。 ?对称多处理(Symmetric multiprocessing,SMP)——一个操.....
分类:
其他好文 时间:
2015-03-14 10:50:28
阅读次数:
153
在 Linux 中,有多种方法可以查看系统的版本信息。uname 命令huey@huey-K42JE:~$ uname -aLinux huey-K42JE 3.5.0-43-generic #66~precise1-Ubuntu SMP Thu Oct 24 14:55:08 UTC 2013 i...
分类:
系统相关 时间:
2015-03-13 21:58:43
阅读次数:
153
由于项目需求,需要了解多核处理器,该文是关于多核处理器的基本知识
分类:
其他好文 时间:
2015-03-13 15:59:26
阅读次数:
166
一、中断初始化 1、中断向量表IDT的初始化void __init init_IRQ(void)
{
int i;
#ifndef CONFIG_X86_VISWS_APIC
init_ISA_irqs();
#else
init_VISWS_APIC_irqs();
#endif
/*
* Cover the whole vector space, no vector can...
分类:
系统相关 时间:
2015-03-13 09:24:36
阅读次数:
291