摘要: 为了防止不同的cpu抢占同一段代码(即同一段内存地址),需要用自旋锁将这段代码锁住。自旋锁(spinlock)是用在多个CPU系统中的锁机制,当一个CPU正访问自旋锁保护的临界区时,临界区将被锁上,其他需要访问此临界区的CPU只能忙等待,直到前面的CPU已访问完临界区,将临界区开锁。自旋锁上锁后让等待线程进行忙等待而不是睡眠阻塞,而信号量是让等待线程睡眠阻塞。自旋锁的忙等待浪费了处理器的时间,但时间通常很短,在1毫秒以下。 自旋锁用于多个CPU系统中,在单处理器系统中,自旋锁不起锁的作用,只是禁止或启用内核抢占。在自旋锁忙等待期间,内核抢占机制还是有效的,等待自旋锁释放的线程可能被更高优先级的 阅读全文
posted @ 2013-03-27 17:57 勒达与天鹅 阅读(231) 评论(0) 推荐(0) 编辑
摘要: enable_irq_wake(IRQ_EINT1); 该函数使中断IRQ_EINT1的产生将触发系统唤醒 enable_irq(IRQ_EINT1);该函数使能中断IRQ_EINT1 阅读全文
posted @ 2013-03-27 14:18 勒达与天鹅 阅读(2138) 评论(0) 推荐(0) 编辑