首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入分析Linux内核源代码阅读笔记 第三章

外部中断(或硬件中断) 内部中断(或叫异常) 本章主要讨论在 Intel i386 保护模式下中断机制在 Linux 中的实现。...中断向量: Intel x86 系列微机共支持 256 种向量中断。...外设可屏蔽中断: Intel x86 通过两片中断控制器 8259A 来响应 15 个外中断源。 中断控制器 8259A 执行如下操作: 监视中断线,检查产生的中断请求(IRQ)信号。...Intel x86 处理器发布了大约 20 种异常(具体数字与处理器模式有关)。每个异常都由专门的异常处理程序来处理。...分两步进行有效性检查: “段”级检查 “门”级检查 检查是否发生了特权级的变化 Linux 对中断的处理: Linux 把一个中断要执行的操作分为下面的 3 类: 紧急的(Critical)

1.3K40

嵌入式Linux系统是如何管理IO端口以及IO内存的呢?老司机给你讲讲

IO空间:X86特有的一个空间,与内存空间彼此独立的地址空间,32位X86有64K的IO空间。 IO端口:当寄存器或内存位于IO空间时,称为IO端口。...outb( )、outw( )、outl( ) 分别向一个I/O端口写入1、2或4个连续字节。...outb_p( )、outw_p( )、outl_p( ) 分别向一个I/O端口写入1、2或4个连续字节,然后执行一条“哑元”指令使CPU暂停。...“ 六、Linux下访问IO内存请输入标题 IO内存的访问方法是:首先调用request_mem_region()申请资源,接着将寄存器地址通过ioremap()映射到内核空间的虚拟地址,之后就可以Linux...最后来看一下ioread8的源码,其实现也就是对虚拟地址进行了判断,以区分IO端口和IO内存,然后分别使用inb/outb和readb/writeb来读写。 ?

1.7K21
您找到你想要的搜索结果了吗?
是的
没有找到

独立编址,统一编址,IO端口,IO内存,冯·诺伊曼,哈佛结构

例如51为统一编址,I/O和存储器总计64K地址空间;X86为独立编址,分为I/O地址空间和存储器地址空间。 IO空间,内存空间 X86:支持内存空间,IO空间,独立编址。...IO端口和IO内存:对于X86系统区别很大,例如,网卡接口,可以连接在IO的这一组地址总线上,也可以连接在内存的这一组地址总线上,就可分别出现IO端口和IO内存的区别。...访问:static inline int inb(unsigned long i) //读字节端口(8位) static inline void outb(char c, unsigned long i...映射:由于linux系统中不能直接使用物理地址,必须使用虚拟虚拟地址,所以对IO内存的操作,必须有一个映射的过程。

81810
领券