第11章 内存与IO访问之CPU与内存、I/O

本章知识点

Linux系统提供复杂的内存管理功能,内存的概念在Linux系统中相对复杂,有常规内存、高端内存、虚拟地址、逻辑地址、总线地址、物理地址、I/O内存、设备内存、预留内存等概念。

1、内存和I/O的硬件机制,主要涉及内存空间、I/O空间和MMU。

2、Linux的内存管理、内存区域的分布、常规内存与高端内存的区别。

3、Linux内存存取的方法,主要涉及内存动态申请以及通过虚拟地址存取物理地址的方法。

4、设备I/O端口和I/O内存的访问流程。

5、I/O内存静态映射。

6、设备驱动中的DMA与Cache一致性问题以及DMA的编程方法。

11.1 CPU与内存、I/O

11.1.1 内存空间与I/O空间

    在x86处理器中存在着I/O空间的概念,I/O空间是相对于内存空间而言的,IO空间通过特定的指令in、out来访问。端口号标识外设的寄存器地址。Intel语法中的in、out指令格式如下:

IN 累加器, {端口号│DX}
OUT {端口号│DX},累加器

    目前,大多数嵌入式微控制器(如ARM、PowerPC等)中并不提供I/O空间,仅存在内存空间。内存空间可以直接通过地址、指针来访问,程序及在程序运行中使用的变量和其他数据都存在于内存空间中。

    内存地址可以直接由C语言指针操作,在186处理器中执行如下代码:

unsigned char *p = (unsigned char *)0xF000FF00;
</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值