03 2012 档案

摘要:1 schedule的调用时机×××正常情况下进程上下文中的直接调用schedule(),就会尝试着进行上下文切换。比如:int down_interruptible(struct semaphore *sem)copy_from_user(to, from, n)--------只能在用户上下文中调用.×××抢占式的调用schedule()。比如:在中断里面返回时候,即in_irq() != 0(当前处于中断上下文),检查当前进程的TIF_NEED_RESCHED标志位,看是否需要进行preempt_schedule_irq()进行 阅读全文
posted @ 2012-03-26 11:58 Jack204 阅读(2317) 评论(0) 推荐(0)
摘要:今天是2012年3月21号,自己在intel的实习项目没有及时的做出来,在最后关头发现个bug。今天不能够再演示了。这两周因为急着要把东西做出来,所以一直都很忙,很忙的过程中自己的调试技术在不断的调代码的过程中成长了,可是其中犯了很多做项目学习的大忌。萝莉啰唆的记录一下,望以后能够纠正:1 先说mentor教导我的东西。mentor讲做项目的时候,需求最重要,也是最难的。我想他大概想表达的是设计最重要。首先自己在平时做项目的时候觉得需求和设计分不开的,是循环往复的。设计好了,代码便很快的可以写出来了。2 其次是我自己的心得。在项目过程中,写代码并没有花费多少时间,然而调试代码确浪费了很久,遇到 阅读全文
posted @ 2012-03-21 19:21 Jack204 阅读(222) 评论(0) 推荐(0)
摘要:Compile Objective-C Programs Using gcchttp://blog.lyxite.com/2008/01/compile-objective-c-programs-using-gcc.htmlProbably 99% of all Objective-C programmers out there are compiling their programs with XCode very happily. However that doesn't stop the other 1%, who are brave enough or simply don&# 阅读全文
posted @ 2012-03-21 16:15 Jack204 阅读(699) 评论(0) 推荐(0)
摘要:很久都没有写驱动代码了,对于一些驱动相关的内核变化也没有怎么关心。这次重游《LDD3》获益良多,其值对于struct file_operations中ioctl的消失也让我长了不少见识。当年看《LDD3》的时候已经注意到了书中对ioctl的评价不是很好:“ioctl调用的非结构化本质导致众多内核开发者倾向于放弃它。” ,而在这次阅读3.0代码的时候,这个成员在struct file_operations中早已消失了。这个激起了我学习的兴趣,以下是对这个ioctl的学习小结:1、消失的确切时间 ioctl的消失到底是从哪个版本开始的?网上给出的时间是2.6.36开始。网上就是这么说,但是自己必. 阅读全文
posted @ 2012-03-20 10:02 Jack204 阅读(3230) 评论(0) 推荐(0)
摘要:由于2.6内核可以抢占,应该在驱动程序中使用 preempt_disable() 和 preempt_enable(),从而保护代码段不被抢占(禁止 IRQ 同时也就隐式地禁止了抢占)。preempt_disable和preempt_enable 调用。spin_lock_irq的功能和上面的spin_lock提供的功能差不多,只不过它还多做了一步,就是把中断也关上,主要用于当前保护的数据在可能的中断程序中也要用到的情况。spin_lock_irqsave和spin_lock_irq的功能一样,只不过调用这个函数以后可以把当前的中断状态记下了,以备以后恢复。在多CPU的环境下情况就比较复杂了, 阅读全文
posted @ 2012-03-14 22:56 Jack204 阅读(822) 评论(0) 推荐(0)
摘要:VMA和PAGE结构 和mmap函数(关键在最后)1.page 主要成员。。。//查源码2.vm_area_struct 主要成员。。。//查源码3.mmap用户空间调用与内核空间调用void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offset);//看man mmap内核空间调用int (*mmap) (struct file *filp, struct vm_area_struct *vma);4.mmap执行的顺序 a.在用户进程创建一个vma区域 b.驱动程序获得页 c.将获得的页分配给vma区域 阅读全文
posted @ 2012-03-07 17:12 Jack204 阅读(2450) 评论(0) 推荐(0)