中断子系统
IRQ
IRQ即中断请求。这里指的是来自硬件的中断请求。
IRQ预设
IRQ0: 系统计时器
IRQ1: 键盘
IRQ2: 可设置中断控制卡
IRQ3: COM2(串行接口2)
IRQ4: COM1(串行接口1)
IRQ5: 未预先配置
IRQ6: 磁盘机
IRQ7: 并行接口
IRQ8: CMOS/时钟
IRQ9: 未预先配置
IRQ10: 未预先配置
IRQ11: 未预先配置
IRQ12: PS/2鼠标
IRQ13: 算术处理器(Arithmetic Processor)
IRQ14: Primary(主)IDE控制器
IRQ15: Secondary(从)IDE控制器
PIC
PIC即可编程中断控制器,主要有两个,即8259/8259A。
8259
寄存器
中断屏蔽寄存器
通过IMR中断屏蔽寄存器可以屏蔽或打开对应的中断,需要打开对应的中断请求,就将对应的位置0,需要屏蔽的话,就将对应的位置1。
写道
IMR
7 6 5 4 3 2 1 0
+-+-+-+-+-+-+-+-+
|0|0|0|0|0|0|0|0|
|/|/|/|/|/|/|/|/|
|1|1|1|1|1|1|1|1|
+-+-+-+-+-+-+-+-+
^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | |IRQ0,IRQ8
| | | | | | |IRQ1,IRQ9
| | | | | |IRQ2,IRQ10
| | | | |IRQ3,IRQ11
| | | |IRQ4,IRQ12
| | |IRQ5,IRQ13
| |IRQ6,IRQ14
|IRQ7,IRQ15
7 6 5 4 3 2 1 0
+-+-+-+-+-+-+-+-+
|0|0|0|0|0|0|0|0|
|/|/|/|/|/|/|/|/|
|1|1|1|1|1|1|1|1|
+-+-+-+-+-+-+-+-+
^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | |IRQ0,IRQ8
| | | | | | |IRQ1,IRQ9
| | | | | |IRQ2,IRQ10
| | | | |IRQ3,IRQ11
| | | |IRQ4,IRQ12
| | |IRQ5,IRQ13
| |IRQ6,IRQ14
|IRQ7,IRQ15
8259A
APIC
除了PIC,还有个APIC,即高级可编程中断控制器,它是PIC的改进。
初始化
初始化中断的时候,最好屏蔽所有硬件中断请求irq, 在需要的时候随时可以打开。屏蔽所有硬件中断请求irq,只需要向IMR中断屏蔽寄存器写入0xff。
void pic_init_32() { byte icw1, icw2, icw3, icw4, ocw1; // write icw1 icw1 = ICW1_IC4 + ICW1_INIT; outpb_32(IO_PORT_20, icw1); io_wait_32(); outpb_32(IO_PORT_A0, icw1); io_wait_32(); // write icw2 icw2 = 0x20; outpb_32(IO_PORT_21, icw2); io_wait_32(); icw2 = 0x28; outpb_32(IO_PORT_A1, icw2); io_wait_32(); // write icw3 icw3 = 0x4; outpb_32(IO_PORT_21, icw3); io_wait_32(); icw3 = 0x2; outpb_32(IO_PORT_A1, icw3); io_wait_32(); // write icw4 //icw4 = 1; icw4 = 3; outpb_32(IO_PORT_21, icw4); io_wait_32(); outpb_32(IO_PORT_A1, icw4); io_wait_32(); // And then, // Set IMR to enable/disable IRQs // 0xff would disable all IRQs, and 0x00 would enable all // IRQs. to enable specifics IRQs: // // 0xff & IRQ0 & IRQ1 & IRQ2 & IRQ3 & IRQ4 & IRQ5 & IRQ6 & IRQ7; // // Default to disable all irqs. ocw1 = 0xff & IRQ6; pic_write_master_imr_32(ocw1); ocw1 = 0xff; pic_write_slave_imr_32(ocw1); }
屏蔽中断
void pic_enable_master_irq(byte irq) { byte imr = pic_read_master_imr_32(); pic_write_master_imr_32(imr & irq); }
pic_write_slave_imr_32(0x00);
pic_write_slave_imr_32(0xff);
pic_enable_master_irq(IRQ6);
pic_enable_master_irq(IRQ0 & IRQ1 & IRQ6);
打开中断
sti
EOI
EOI即End of Interrupt,
相关推荐
上册共分为10部分,这是第1部分 Windows内核情景分析(上册).part01.rar ...14.2 Windows子系统的服务进程Csrss 1408 14.3 服务管理进程Services 1424 14.4 服务进程Svchost 1449 跋 1464 参考文献... 1466
第5章Linux文件系统 5.1 Linux文件系统概述 5.1.1 Linux文件系统的目录结构 5.1.2设备驱动与Linux文件系统的关联 5.2 Linux设备文件系统 5.2.1 devfs设备文件系统 5.2.2 udev设备文件系统 5.2.3 sysfs文件系统与...
第三,实践类的操作系统书籍还是太少了,以至于你要想看看别人是怎么做的,除了读以《操作系统:设计与实现》为代表的极少数书籍之外,就是一头扎进源代码中,而结果有时相当令人气馁。我自己也气馁过,所以我在第二...
第三,实践类的操作系统书籍还是太少了,以至于你要想看看别人是怎么做的,除了读以《操作系统:设计与实现》为代表的极少数书籍之外,就是一头扎进源代码中,而结果有时相当令人气馁。我自己也气馁过,所以我在第二...
第五章文件管理 1、文件管理任务与功能 任务:把存储、检索、共享和保护文件的手段,提供给操作系统本身和用户,以达到方便用户和提高资源利用率的目的。 功能: ---分配与管理外存 ---提供合适...
第五章 在CL程序和过程中处理目标 5.1 在CL程序中访问目标 5.2 在CL过程中处理文件 第六章 先进的程序设计 6.1 使用QCAPCMD程序 6.2 使用QCMDEXC程序 6.3 使用QCMDCHK程序 6.4 在CL程序或过程中使用信息子文件 6.5 ...
free:该函数获得指向由 malloc 分配的内存片段的指针,并将其释放,以便以后的程序或操作系统使用(实际上,一些 malloc 实现只能将内存归还给程序,而无法将内存归还给操作系统)。 物理内存和虚拟内存 要理解...
第五章 系统常用命令及格式转换 30 1.Msconfig 系统的关闭起动项命 30 2.Dxdiag系统信息查看命令 30 3.Gpedit.msc计算机管理命令 31 4.格式之间的转换,使用winavi进行转换 32 5.常用的快捷键,使用快捷可以...
这个实时内核包含了许多传统操作系统的特征,包括任务管理,任务间通信,同步与互相排斥,中断支持,内存管理等功能,此后一些公司也纷纷推出了自己的嵌入式操作系统。这些系统均具有嵌入式的典型特点:它们都采用占...
arm920t: CPU的类型(CPU),其对应于 cpu/arm920t子目录。 fs2410: 开发板的型号(BOARD),对应于 board/fs2410目录。 NULL: 开发者/或经销商(vender),本例为空 s3c24x0: 片上系统(SOC) (5)编译 #make fs2410_...
虽然C语言是最普遍的一种高级语言,但不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。如果对这些特性不了解,那调试起来就有的烦了,到头来可能还不如用汇编来的快。 5. 在教学中...
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...
Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
五、USB D12从设备(108分钟)(第五讲) 1、USB协议介绍 2、下位机代码简要分析 3、DRIVER STUDIO软件的安装 4、上位机驱动sys、inf文件生成概述 5、上位机应用程序的实现 (1)、工程的建立 (2)、代码...
第5章 微机CPU的指令系统 5.1 汇编语言指令格式 1 指令格式 2 了解指令的几个方面 5.2 指令系统 1 数据传送指令 2 标志位操作指令 3 算术运算指令 4 逻辑运算指令 5 移位操作指令 6 位操作...
GB 4208-2008 外壳防护等级(IP代码).pdf GB 4343.2-2009 家用电器、电动工具和类似器具的电磁兼容要求 第2...YD1169.1-2001 800MHz CDMA数字蜂窝移动通信系统电磁兼容性要求和测量方法 第一部分 移动台及其辅助设备.pdf
第五章 在CL程序和过程中处理目标 5.1 在CL程序中访问目标 5.2 在CL过程中处理文件 第六章 先进的程序设计 6.1 使用QCAPCMD程序 6.2 使用QCMDEXC程序 6.3 使用QCMDCHK程序 6.4 在CL程序或过程中使用信息子文件 6.5 ...
1、变量/指针在使用前就必须初始化 第5页 【案例1.1.1】 第5页 2、防止指针/数组操作越界 第5页 【案例1.2.1】 第5页 【案例1.2.2】 第6页 【案例1.2.3】 第7页 【案例1.2.4】 第8页 3、避免指针的非法引用 第9页 ...
系统,固实标志和老版本标记)被显示。变量 'b' 强制 RAR 只输出单纯 的文件名,而没有其他任何的附加信息。 m[f] 移动到压缩文件中[只用于文件]。移动文件和目录会使压缩操作完成后它 们被删除。如果使用变量'...