Linux内核中ARM中断实现详解request_irq()
在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义:
int request_irq(unsigned int irq, irq_handler_t handler,
unsigned long irqflags, const char *devname, void *dev_id)
irq
是要申请的硬件中断号。
handler
是向系统注册的中断处理函数,是一个回调函数,中断发生时,系统调用这个函数,dev_id参数将被传递给它。
irqflags
是中断处理的属性,若设置了IRQF_DISABLED
(老版本中的SA_INTERRUPT,本版zhon已经不支持了),则表示中断处理程序是快速处理程序,快速处理程序被调用时屏蔽所有中断,慢速处理程
序不屏蔽;若设置了IRQF_SHARED
(老版本中的SA_SHIRQ),则表示多个设备共享中断,若设置了IRQF_SAMPLE_RANDOM(老版本中的
SA_SAMPLE_RANDOM),表示对系统熵有贡献,对系统获取随机数有好处。(这几个flag是可以通过或的方式同时使用的)
dev_id
在中断共享时会用到,一般设置为这个设备的设备结构体或者NULL。
devname
设置中断名称,在cat /proc/interrupts中可以看到此名称。
request_irq()返回0表示成功,返回-INVAL表示中断号无效或处理函数指针为NULL,返回-EBUSY表示中断已经被占用且不能共享。
相关文档:
例如:
/home/files文件夹下有文件main.c:
#include <stdio.h>
#include "tou.h"
void main()
{
a();
}
/home/files/common文件夹下有文件tou.h和shixian.c。
tou.h为:
extern void a();
若有多个shixian文件,比如shixian1.c, shixian2.c,都可以在tou.h中用extern声明出来。
shixian.c为:
#inclu ......
在 linux 下配置 ITK
1. 下载 CMake:http://www.cmake.org/cmake/resources/software.html
为方便安装,这里下载二进制文件,选择下载: cmake-2.6.4-Linux-i386.sh
2. 安装 CMake, 到 cmake-2.6.4-Linux-i386.sh 存放的目录,输入,可用 TAB 键方便补齐命令
#./ cmake-2. ......
1.互斥锁的存在问题:
互斥锁一个明显的缺点是它只有两种状态:锁定和非锁定。设想一种简单情景:多个线程访问同一个共享资源时,并不知道何时应该使用共享资源,如果在临界区里加入判断语句,或者可以有效,但一来效率不高,二来复杂环境下就难以编写了,这是我们需要一个结构,能在条件成立时触发相应线程,进行变量修改 ......
脚本文件 backup.sh
#!/bin/sh
a=`date "+%y_%m%d_%H%M"`
echo $a
/home/oracle/10g/bin/exp username@password@//192.168.0.126/SID owner=username FILE=/opt/beifen/126_username_$a.dmp
备份的文件格式如:126_username_09_0920_2300.dmp
编写完shell脚本之后,要对其赋予可执行权限及其用户所属:
# chmod 7 ......
Oracle Database 10g Release 2 (10.2.0.1) Installation On Red Hat Enterprise Linux 5 (RHEL5)
一安装需求
1.swap 分区不低于2G
2.selinux 状态disable
3.物理内存不低于512M
系统组件
GNOME Desktop Environment
Editors
Graphical Internet
Text-based Internet
Development Libraries
Development Tools
......