Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1321232
  • 博文数量: 175
  • 博客积分: 2743
  • 博客等级: 少校
  • 技术积分: 4024
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-30 01:41
文章分类

全部博文(175)

文章存档

2015年(1)

2013年(53)

2012年(71)

2011年(50)

发布时间:2013-04-09 13:26:09

I2C总线协议    2010-01-24 16:39:25|  分类: 电子爱好者 |  标签: |字号大中小 订阅 I2C总线协议 I2C协议是单片机与其它芯片常用的通讯协议,由于只需要两根线,所以很好使用。1. I2C总线的特点(1)只要求两条总.........【阅读全文】

阅读(4066) | 评论(0) | 转发(2)

发布时间:2013-04-04 11:31:22

 spinlock的实现 2011-12-31 14:26:33分类: LINUXLinux spin_lock的实现 Spin_lock是Linux内核的一种同步机制。内核代码可以通过获得spin_lock宣称对某一资源的占有,直到其释放该spin_lock;如果内核代码试图获得一个已经锁定的.........【阅读全文】

阅读(745) | 评论(0) | 转发(0)

发布时间:2013-04-03 14:37:23

由于2.6内核可以抢占,应该在驱动程序中使用 preempt_disable() 和 preempt_enable(),从而保护代码段不被抢占(禁止 IRQ 同时也就隐式地禁止了抢占)。preempt_disable和preempt_enable调用。spin_lock_irq的功能和上面的spin_lock提供的功能差不多,只不过它还多做了一步,就是把中断也关上,主要用于当前保护的数据在.........【阅读全文】

阅读(7147) | 评论(0) | 转发(0)

发布时间:2013-04-02 18:00:10

当从内核态返回到用户态的时候,要检查是否进行调度,而调度要看两个条件:1.preempt_count是否为02.rescheduled是否置位 ret_from_exception: preempt_stop(CLBR_ANY)ret_from_intr: GET_THREAD_INFO(%ebp)check_userspace: movl PT_EFLAGS(%esp), %eax # mi.........【阅读全文】

阅读(1453) | 评论(0) | 转发(0)

发布时间:2013-04-02 17:44:53

Linux 关中断 与 开中断    如果你要禁止所有的中断该怎么办? 在2.6内核中,可以通过下面两个函数中的其中任何一个关闭当前处理器上的所有中断处理,这两个函数定义在 <asm/system.h>中:    void local_irq_save(unsigned long flags);    void local_irq_di.........【阅读全文】

阅读(2069) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册