关于中断的入门知识

smallsword 2006-06-08 05:22:00
Linux有一个中断向量表,中断向量表中有不同的项。这些项就是一个一个的“门”。

穿过这些门才能真正进入到通向中断服务程序的走廊。比如一个简单的例子CPU外部

设备产生了一个中断,CPU的程序首先向中断向量表的项,然后穿过门,走过小分类(几个

外设使用一个中断源),执行相应的服务程序。

中断向量表门的种类和结构

这些门有不同的种类:任务们、中断们、陷阱门、调用门,门就在向量表中。

一。门由64位组成,逻辑成员(任务门除外)就是

1。TSS (16位)任务的状态段,就是对运行任务
时所需要的寄存器、堆栈或者叫现场的描述。

2。类型码(3位)代表这是什么门

3。P标志位 表示是否在内存

4。DPL (3位)运行级别

5。服务程序位移高16位,位移低16位

6。保留一位永远为0,另外三位永远为000(??)

二。对IDT的初始化

_ _init trap_init(void) 中使用 set_trap_gate( 偏移量,函数地址) 初始化(不同的
门使用不同的射门函数

set_trap_gate使用 set_gate(IDT表+偏移量,15,0,addr) 中间的参数 2项表示类型码和D位,三项表示DPL。

随后 init_irq()对外设中断向量进行设置。使用了set_intr_gate(偏移量,函数地址数组)

函数地址数组interruput[]表示了所有使用相同中断的函数地址。所有的函数都是将中断的分码进行压栈,然后调用同一个函数(待续)



...全文
376 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
marshalstudio 2006-06-19
  • 打赏
  • 举报
回复
mark
shangguohua 2006-06-15
  • 打赏
  • 举报
回复
GZ
极速小王子 2006-06-14
  • 打赏
  • 举报
回复
mark
blueiris 2006-06-10
  • 打赏
  • 举报
回复
唉 毕设就做的是Linux中断机制的分析
smallsword 2006-06-09
  • 打赏
  • 举报
回复
谢谢,写的不对的地方请指出

(接)init_irq()设置外部中断的时候调用了init_ISA_irqs (void),而后者初始化了一个

irq_desc_t数组irq_desc,irq_desc数组中有个irqaction结构指针链表是 action。链表的每个

成员藏着指向具体中断处理函数的指针。

具体调用和连接如下:
init_irq()-〉init_ISA_irqs (void)-〉irq_desc-〉action —〉中断处理程序
数组 链表
三。中断处理程序的注册
写了中断程序,系统怎才能知道哪个程序在哪里,这就需要request_irq(),这个函数

将具体的中断处理程序挂到了ACTION中。


四。中断的程序流程
如果外设产生了中断,通过8259传入CPU,这样有可能几个外设公用一个中断号,利用这个号

作为偏移量在终端向量表中找到门,由门里找到IRQ0xXX_interrupt(通过interrupt数组),接

着进入call_do_IRQ(。。),call_do_IRQ(。。)调用do_IRQ(。。),do_IRQ调用

handle_IRQ_event(。。),handle_IRQ_event调用action指向的中断处理程序。

(下次接着写软中断,写的比较粗糙,主要是搞清流程,有兴趣的一块写呀)






anchor720 2006-06-09
  • 打赏
  • 举报
回复
关注一下.顶楼主.
  • 打赏
  • 举报
回复
支持
alaiyeshi 2006-06-08
  • 打赏
  • 举报
回复
很好
开这么一个讲座
嵌入式系统开发圣经 大小为42M的书,给你提供详细的嵌入式开发知识,是学习的好资料 本书特色:详细的理论讲解,让你全面了解当前嵌入式开发系统的发展趋势。以信息家电、智能型手机、PDA产品为出发点,广泛深入地分析相关的嵌入式系统技术。适用于产品主管、系统设计分析人员及欲进入该领域的工程师。是一本开发嵌入式系统产品必备的入门圣经,进入嵌入式系统领域的宝典。 目录: 第1章 嵌入式系统的介绍 1-1 嵌入式系统概述 1-1-1 嵌入式系统的组成 1-1-2 典型的嵌入式系统 1-1-3 嵌入式系统的发展趋势 1-2 信息家电 1-2-1 信息家电的兴起 1-2-2 信息家电的产品 1-2-3 信息家电的研发状况 1-2-4 信息家电的未来 1-3 入门必学 1-3-1 系统集成能力 1-3-2 程序语言编写能力 1-3-3 市场应用导向 1-4 未来展望 1-4-1 集成服务导向 1-4-2 轻薄小型人性化 1-4-3 软硬件网络无线集成 1-4-4 创意产生与实现 1-5 本书导读 第2章 嵌入式SoC硬件系统概论 2-1 嵌入式系统微处理器的发展 2-1-1 4位以及8位嵌入式系统微处理器 2-1-2 16位以上的嵌入式系统微处理器 2-1-3 协同微处理器(Co-processor) 2-1-4 CISC与RISC 2-1-5 数字信号处理器(Digital Signal Process-DSP) 2-1-6 超长指令集微处理器(VLIW) 2-2 SoC嵌入式系统微处理器 2-2-1 什么是SoC嵌入式系统微处理器 2-2-2 SoC微处理器的设计开发 2-2-3 RISC结合DSP的SoC嵌入式系统微处理器 2-2-4 快速的SoC嵌入式系统微处理器设计与制造 2-3 ARM公司ARM RISC架构微处理器 2-3-1 ARM RISC嵌入式系统微处理器简介 2-3-2 ARM 7 Thumb嵌入式系统微处理器系列 2-3-3 Thumb指令集 2-3-4 ARM 9 Thumb嵌入式系统微处理器系列 2-3-5 ARM 10 Thumb嵌入式系统微处理器系列 2-3-6 ARM RISC嵌入式系统微处理器的应用 2-3-7 相关数据查询 2-4 Intel公司StrongARM微处理器 2-4-1 StrongARM架构 2-4-2 SA 1110/SA 1111模拟实验版 2-4-3 StrongARM嵌入式系统微处理器的应用 2-4-4 参考数据 2-5 德州仪器公司TMS320 DSP微处理器 2-5-1 TMS320 DSP微处理器简介 2-5-2 德州仪器公司C5X DSP微处理器系列 2-5-3 德州仪器公司C6X DSP微处理器系列 2-5-4 德州仪器公司TMS320DM310 DSP微处理器 2-5-5 DSP微处理器的应用 2-5-6 参考数据 2-6 Philips公司Trimedia微处理器 2-6-1 简介 2-6-2 Trimedia微处理器架构 2-6-3 软件开发工具 2-6-4 TM-1300模拟实验版 2-6-5 TM-1300嵌入式系统微处理器应用 2-6-6 参考数据 2-7 德州仪器公司OMAP架构微处理器 2-7-1 OMAP简介 2-7-2 OMAP架构 2-7-3 OMAP程序开发 2-7-4 OMAP微处理器在多媒体上的应用 2-8 Intel公司XScale架构微处理器 2-8-1 XScale微处理器简介 2-8-2 XScale微处理器硬件架构 2-8-3 XScale微处理器应用产品开发(PCA) 2-8-4 XScale微处理器-PXA210/250 2-8-5 参考数据 2-9 其他常见高端的嵌入式系统微处理器 2-9-1 MIPS RISC嵌入式系统微处理器 2-9-2 Hitachi SH系列嵌入式系统微处理器 2-9-3 Motorola嵌入式系统微处理器 2-9-4 Intel嵌入式系统微处理器 2-9-5 STMicroelectronics嵌入式系统微处理器 2-9-6 AMD嵌入式系统微处理器 2-9-7 三菱嵌入式系统微处理器 2-9-8 富士通嵌入式系统微处理器 2-10 存储器 2-10-1 可编程只读存储器 2-10-2 随机存储器(Random Access Memory) 2-11 通信接口 2-11-1 IEEE 1394 2-11-2 USB 2-11-3 红外线 2-11-4 蓝牙模块(Bluetooth) 2-11-5 IEEE 802.11 2-12 输出与输入装置 2-12-1 触摸屏 2-12-2 LCD显示器 2-13 扩展装置 2-13-1 PCMCIA扩展装置 2-13-2 CF扩展装置 2-13-3 SD扩展装置 2-13-4 Memory Stick 2-13-5 Springboard 2-14 便携式嵌入式系统电源系统 2-14-1 便携式嵌入式系统电源的要求 2-14-2 智能型电池系统 2-15 小结 第3章 嵌入式系统软件开发 3-1 嵌入式系统基本概述 3-1-1 系统规划与设计 3-1-2 开发平台与目标平台 3-1-3 开发环境与开发流程 3-2 开始您的第一步 3-2-1 目标平台 3-2-2 下载程序 3-2-3 开发考虑 3-3 嵌入式操作系统 3-3-1 操作系统的基本运作 3-3-2 开机 3-3-3 执行应用程序 3-3-4 系统移植 3-3-5 选择一个嵌入式操作系统 3-4 嵌入式软件的开发流程 3-4-1 系统开发 3-4-2 编译 3-4-3 链接 3-4-4 重新定位 3-4-5 下载 3-5 沟通软件与硬件的桥梁 3-5-1 由说明书认识硬件组件 3-5-2 驱动程序的编写 3-5-3 中断与异常处理 3-6 调试技术 3-6-1 仿真软件 3-6-2 目标平台上的调试 3-6-3 硬件辅助调试 3-7 您必须了解的事情 3-7-1 常见的错误处理 3-7-2 程序技巧 3-8 总览 第4章 信息家电软件的大趋势 4-1 多采多姿的Java世界 4-1-1 Java的概念 4-1-2 Java世界 4-1-3 企业版J2EE 4-1-4 标准版J2SE 4-1-5 袖珍版J2ME 4-1-6 Java Card 4-1-7 小结 4-2 移动装置的Java Virtual Machine-KVM(K Virtual Machine) 4-2-1 KVM的由来 4-2-2 KVM移植技术 4-2-3 KVM验证 4-2-4 小结 4-3 移动设备上的开发套件-MIDP 4-3-1 Java与无线通信 4-3-2 MIDP的由来 4-3-3 MIDP开发环境 4-3-4 MIDP开发实例 4-3-5 MIDP的移植 4-3-6 小结 4-4 Symbian Java Phone 4-4-1 Java Phone架构 4-4-2 JTAPI 4-4-3 应用实例 4-4-4 小结 4-5 Jini 4-5-1 Jini的架构 4-5-2 Jini的移植 4-5-3 小结 4-6 电信服务i-Mode与i-appli 4-6-1 i-Mode通信系统 4-6-2 Compact HTML 4-6-3 Java Enabled i-mode:i-appli 4-7 Java Chip让Java飞起来 4-7-1 Java Chip的诞生 4-7-2 各家的JavaChip 4-7-3 小结 4-8 总结 第5章 Smart Handheld Device软件系统设计 5-1 前言 5-2 嵌入式操作系统基本概念 5-2-1 嵌入式操作系统 5-2-2 软件组件 5-3 PDA产品面面观 5-3-1 Palm-PDA的创作先驱 5-3-2 WinCE Pocket PC多媒体的佼佼者 5-3-3 我国嵌入式操作系统发展概况 5-3-4 PDA发展趋势 5-4 针对产品定义选择系统软件 5-4-1 基本技术比较 5-4-2 产品应用 5-5 Symbian Platform:典型的智能型手机系统设计 5-5-1 功能结构介绍 5-5-2 GTv6基本组件 5-5-3 Framework 5-5-4 通信与网络 5-5-5 应用层 5-5-6 Java Phone 5-5-7 新一代智能型手机 5-5-8 持续创新的Symbian OS v7.0 5-5-9 系统开发环境 5-6 嵌入式Linux相关技术 5-6-1 嵌入式Linux概述 5-6-2 工作评估 5-6-3 Linux目录结构 5-6-4 工具链(Toolchain) 5-6-5 内核配置 5-6-6 编译内核 5-6-7 雏型板测试 5-6-8 选择嵌入式Linux图形接口 5-6-9 自己动手做Linux Based iPAQ 5-7 结束语

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧