硬件
文章平均质量分 79
loafertb
这个作者很懒,什么都没留下…
展开
-
保护模式下8259A芯片编程及中断处理探究(上)【2】
三、8259A的编程8259A常常称之为PIC(可编程中断控制器),因此,在使用的时候我们必须通过编程对它进行初始化,需要完成的工作是指定主片与从片怎样相连,怎样工作,怎样分配中断号。在实模式下,也就是计算机加电或重启时,这是由BIOS自动完成的,然而当转到保护模式下后,我们却不得不对它进行编程重新设定,这都是由该死的IBM与Intel为维护兼容性而搞出来的麻烦:(。在BIOS初始转载 2013-04-25 15:00:05 · 742 阅读 · 0 评论 -
保护模式下8259A芯片编程及中断处理探究(下)【1】
保护模式下8259A芯片编程及中断处理探究(下)Version 0.02哈尔滨工业大学 并行计算实验室 谢煜波简介在上篇中,我们详细讲述了保护模式下中断处理的基本原理以及对可编程中断控制器8259A的编程方法。如果说上一篇更偏重于原理及特定的硬件编程方法,那么本篇就会偏软一点,将详细描述怎样编写操作系统中的中断处理程序,并将通过pyos进行验证。在此篇中,你转载 2013-04-25 15:06:53 · 610 阅读 · 0 评论 -
保护模式下8259A芯片编程及中断处理探究(下)【3】
3.3 初始化 pyos 的中断向量表从中断初始化的代码中我们可以清楚的看见,pyos在进行完8259A的初始化后,调用InitInterruptTable()对中断向量表进行了初始化,这可是本篇的核心内容,我们这就来看看这个核心函数:/* 中断描述符结构 */struct struct_pyos_InterruptItem{ unsigned short Off转载 2013-04-25 15:09:28 · 653 阅读 · 0 评论 -
保护模式下8259A芯片编程及中断处理探究(下)【4】
这里我们需要了解这样一个问题。中断服务程序是由CPU直接调用的,随后,它使用iret指令返回,而不像一般的c/c++函数由ret返回。c/c++的编译器在处理c/c++语言的函数的时候,会在这个函数的开头与结尾加上很多栈操作,以支持程序调用,比如上边的代码就有可能被c/c++编译器处理成如下形式:(其中绿色为编译器自行加上的代码)pushapushad/* do somet转载 2013-04-25 15:10:39 · 763 阅读 · 0 评论 -
保护模式下8259A芯片编程及中断处理探究(上)【3】
三、8259A的内部中断处理流程下面我们就来从一个系统程序员(System Programmer)的角度看看8259A的内部结构。(图3)首先,一个外部中断请求信号通过中断请求线IRQ,传输到IMR(中断屏蔽寄存器),IMR根据所设定的中断屏蔽字(OCW1),决定是将其丢弃还是接受。如果可以接受,则8259A将IRR(中断请求暂存寄存器)中代表此IRQ的位置位,转载 2013-04-25 15:02:19 · 806 阅读 · 0 评论 -
保护模式下8259A芯片编程及中断处理探究(下)【2】
3.2 pyos 的系统初始化下面,我们来看看 pyos 的系统初始化函数:#include "interrupt.h"/* 系统初始化 */void class_pyos_System::Init() { /* 初始化Gdt表 */ InitGdt() ; /* 初始化段寄存器 */ InitSegRegister(转载 2013-04-25 15:08:10 · 560 阅读 · 0 评论 -
保护模式下 8259A芯片编程及中断处理探究(上)【1】
保护模式下8259A芯片编程及中断处理探究(上)Version 0.02哈尔滨工业大学 并行计算实验室 谢煜波[1]简介中断处理是操作系统必须完成的任务,在IBM PC中,常用一块中断控制芯片(PIC)——8259A来辅助CPU完成中断管理。在实模式下,中断控制芯片(PIC)8259A的初始化是由BIOS自动完成的,然而在保护模式下却需要我们自行编程初始化。转载 2013-04-25 14:56:48 · 834 阅读 · 0 评论 -
dm9000
目录1总体介绍2特点3引脚描述1总体介绍DM9000是一款完全集成的和符合成本效益的,单芯片快速以太网MAC控制器。它有一个一般处理接口,一个10/100M自适应的PHY和4K DWORD值的SRAM。它的目的是在低功耗和高性能进程的3.3V与5V的支持宽容,DM9000还提供了介质无关的接口,来连接所有提供支持介转载 2014-01-07 21:55:43 · 989 阅读 · 0 评论