嵌入式
guocaigao
学的是电子商务,自学编程,想做底层但基础差点,学过单片机,现在主攻C++,MFC
展开
-
Failed to register i2c client错误之解决
Failed to register i2c client错误 最近最韦东山的I2C实验,用的是3.4.2内核# insmod at24cxx_dev.ko出错提示i2c i2c-0: Failed to register i2c clientat24c08 at 0x50 (-16) 打log跟踪,是i2c_new_device函数中i2c_check_addr_b原创 2012-09-24 09:24:36 · 11286 阅读 · 0 评论 -
认识保护模式
想看懂linux内核必须要理解保护模式,也许它并不复杂只是书上讲的太抽象了,下面让我们来认识一下保护模式,在这里我们只考虑全局描述符表GDT。先来看下面两个重要的寄存器CS:代码段寄存器(Code Segment Register),其值为代码段的段值IP:指令指针寄存器,它用来存放代码段中的偏移地址。在程序运行过程中,它始终指向下一条指令的首地址,它与代码段寄存器CS联用确定下一条指原创 2013-01-07 17:33:24 · 1820 阅读 · 0 评论 -
局部描述符表LDT
上一篇为了简单我们只涉及到GDT,其实LDT跟它差不多,跳转的时候选择子的第3位也就是TI位为0我们就用GDT,如果TI=1我们就用LDT。总结如下:TI=0时:CS:IP=全局描述符表中第1(0x8>>3)项描述符给出的段基址+0的偏移地址TI=1时:CS:IP=局部描述符表中第1(0x8>>3)项描述符给出的段基址+0的偏移地址局部描述符表在哪里?这要问ldtr寄存器了,ldt原创 2013-01-09 11:02:17 · 2866 阅读 · 0 评论 -
调用门
门,顾名思义它是一扇门通向令一个地方,看一下门的结构里面有一个描述符和一个偏移值,门中定义了这扇门通向的目的地,当我们调用一个门的时候会到达这个地方:门中的选择子:门中的偏移值,也即下图的selector:offset这是我们代码中国定义的门的数据结构:#define Gate(Selector,Offset,PCount,Attr)\.2byte (Offset&0xff原创 2013-01-11 10:39:57 · 2509 阅读 · 0 评论