linux 2.4内核下 微妙级延时
在x86 2.4内核下 usleep、select等延时函数无法实现低于10ms延时
而在驱动层在ioctrl中通过udelay、mdelay等等实现延时也无法多进程同时延时
所以实现如下延时函数 能够实现低于10us甚至1us 的延时
unsigned int uDelay(unsigned int delayTime)
{
static struct timeval _tstart, _tend;
static struct timezone tz;
double t,t1,t2;
int i;
gettimeofday(&_tstart, NULL);
t1 = (double)_tstart.tv_sec + (double)_tstart.tv_usec/(1000*1000);
for(i = 0;;i++)
{
gettimeofday(&_tend, NULL);
t2 = (double)_tend.tv_sec + (double)_tend.tv_usec/(1000*1000);
t = t2 - t1;
if(t > (double)delayTime/(1000*1000))
{
return 0;
}
sched_yield();
}
}
相关文档:
3.2.1 Linux 内存绑定在局部存储器的实现总体步骤
总体步骤:
l 采用方案三,在在原来分析的基础上,以及已知Linux系统内存的初始化的情况,对内核代码进行修改,主要包括确定新区的范围,建立新区,重新对分配内存的分配机制进行设置。
l &n ......
3.2.1 Linux 内存绑定在局部存储器的实现总体步骤
总体步骤:
l 采用方案三,在在原来分析的基础上,以及已知Linux系统内存的初始化的情况,对内核代码进行修改,主要包括确定新区的范围,建立新区,重新对分配内存的分配机制进行设置。
l &n ......
以下是配置引导进入图形模式的etc/inittab文件的部分内容:
#Default runlevel.The runlevels used by RHS are:
# 0-halt(Do NOT set initdefault to this)
# 1 -Single user mode
# 2-Multiuser,without NFS(The same as 3,if you do not have networking)
# 3-Full multiuser mode
# 4-unu ......
备用。
只有相同用户才能实现设备的同时打开。
pcm.!dmix {
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave {
pcm "hw:0,0"
period_time 0
period_size 2048
buffer_size 16384
format S16_LE
rate 48000
}
}
pcm.!dsnoop {
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave {
pcm "hw:0 ......
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统
中
去,是在80年代中期,solaris
是这方面的佼佼者。传统的Unix
也
支持线程的概念,但是在一个进程
(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所
支持,包括Windows/NT,当然,也包括Linux
......