发布时间:2013-06-03 14:44:52
在分析tty层时,tty_driver中有一个ttys成员保存每个设备的tty_struct列表,在uart层uart_driver和uart_state的关系也类似,如图1.uart_driver的注册int uart_register_driver(struct uart_driver *drv){ struct tty_driver *normal = NULL; &.........【阅读全文】
发布时间:2013-01-25 17:44:11
1,gnu内联汇编的语法:asm或__asm__("汇编代码");指令必须包含在引号里如果包含的指令超过一行 必须使用新行分隔符分隔使用c全局变量, 不能在内联汇编中使用局部变量, 注意在汇编语言代码中值被用做内存位置, 而不是立即数值如果不希望优化内联汇编, 则可以volatile修饰符如:__asm__ volatile("code");.........【阅读全文】
发布时间:2012-12-20 14:20:57
在进入保护模式后,head.s程序重新建立和设置IDT,GDT表的主要原因是为了让程序在结构上比较清晰,也是为了与后面的linux 0.11内核源代码中这两个表的设置方式保持一致,当然。就本程序来说我们完全可以直接使用boot.s中设置的IDT和GDT表位置,填入适当的描述符即可。##LATCH = 11930 #定时器初始计数值SCRN_SEL = 0x18 #屏幕显示内存段选择符TSS0_SEL = 0x20 #任务0的TSS段选择符LDT0_SEL = 0x28 #任务0的LDT段选择符TSS1_SEL = 0x30 #任务1的TSS段选择符LD......【阅读全文】
发布时间:2012-12-18 17:16:54
LPC1768以太网控制器本文记录LPC1768的以太网控制器学习使用心得。网卡芯片以DP83848C为例。主芯片内的以太网控制器(EMAC)位于ISO模型中的数据链路层,而外围网卡(PHY)位于ISO模型中的物理层。这两者通过RMII(简化的媒体独立接口)连接这样就可以一个简单的以太网通信了。下面通过分析函数来了解相应的知识。分析LPC1768的例程。、控制器初始化函数。Status EMAC_Init(EMAC_CFG_Type *EMAC_ConfigStruct){ /* Initialize the EMAC Ethernet controller. */ int3......【阅读全文】
发布时间:2012-12-11 11:14:19
x86寄存器说明ebp和esp是32位的SP,BP esp是堆栈指针 ebp是基址指针 ESP与SP的关系就象AX与AL,AH的关系.32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个32位的通用......【阅读全文】