硬件中断设计:通道0中断周期与BIOS定时功能
需积分: 48 130 浏览量
更新于2024-07-12
收藏 650KB PPT 举报
"通道的中断周期-硬件中断程序设计"
在计算机硬件中,中断是一种重要的机制,用于处理系统中的突发事件。中断周期指的是中断服务子程序的执行周期,这里以通道0为例,其中断周期为55毫秒,这是因为它的计数初值为65536,对应的方波频率是1.193MHz除以65536,大约为18.2赫兹。这意味着通道0每秒会申请中断18.2次,每次中断间隔约为55毫秒。
通道0的中断服务子程序TIMER-INT是固化在BIOS中的,它具有三个主要功能:
1. 实现时间计时,包括年、月、日、时、分、秒的精确计时。
2. 在软盘I/O操作时,该子程序用来确定软盘驱动器电机何时停止转动,这是为了保证数据读写的安全性。
3. 通过发出1CH类的软中断,可以调用用户自定义的程序,增强了系统的可扩展性和交互性。
中断系统是86系列CPU的核心组成部分,它可以处理256种不同类型的中断,中断类型号从0x00到0xff。中断分为两类:不可屏蔽中断(NMI)和可屏蔽中断(INTR)。不可屏蔽中断无法通过中断允许标志IF来阻止,而可屏蔽中断则可以通过设置IF标志来开启或关闭。例如,当IF=1时,CPU会响应INTR中断请求;当IF=0时,CPU将忽略INTR中断。
外部中断通常通过CPU的NMI和INTR引脚触发,这些是硬件级别的中断请求。内部中断则包括微处理器内部产生的中断,如单步中断、除法错误中断和溢出中断,以及由软件中断指令触发的中断,如DOS中断和BIOS中断。这些软件中断为用户提供了一系列便利的功能,C语言编程中也能利用这些中断调用。
中断向量表是中断处理的关键,它位于内存的最低地址开始的1024个字节区域,每个中断类型对应4个字节,存储着对应中断服务子程序的入口地址。当CPU接收到中断请求并确认后,会依据中断类型号查找中断向量表,然后跳转到指定的中断服务子程序执行。
硬件中断程序的设计通常包括两部分:
1. 编写中断服务子程序,以中断函数的形式实现,比如`void interrupt myint(void)`。
2. 设置中断向量,即将中断服务子程序的地址放入中断向量表中。这可以通过`setvect()`函数完成,如`setvect(0x08, myint);`,这里的`num`是中断类型号,`isr`是指向中断服务函数的指针。
通过这些机制,系统能够灵活地响应各种外部和内部事件,确保了计算机系统的实时性和高效性。在实际应用中,开发者可以根据需求编写特定的中断服务子程序,以实现特定的功能扩展。
2010-04-11 上传
2020-09-15 上传
127 浏览量
点击了解资源详情
2022-12-01 上传
2018-05-24 上传
2021-10-29 上传
2022-11-02 上传
点击了解资源详情
条之
- 粉丝: 24
- 资源: 2万+
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍