推荐书籍:
《Linux内核探秘:深入解析文件系统和设备驱动的架构与设计》
知识点
- x86的IO地址空间和内存地址空间是独立的两套地址空间,并且使用不同的指令访问。MOV, IN, OUT。内存映射I/O可以将IO映射到内存。ARM等RISC采用统一编编址,无独立IO空间概念。
- 为什么有IO地址空间的概念。因为在PCI总线下,外部芯片都有控制寄存器(配置空间)和设备本地内存(内存空间)两个部分,他们是独立的。控制寄存器用于控制芯片的行为,配置芯片的特性。内存空间用于存放工作数据。
- Linux驱动架构的核心思想是,协议与接口。