操作外设I/O和存储器知识点滴
2007-04-14 10:21
204 查看
关于I/O和存储器操作,和CPU体系结构,和所用的操作系统都有关系。
比如X86的平台下,I/O和存储器分开编址,有专用的I/O读写指令。其他平台如ARM中实际上是把I/O都映射到存储器的地址里了,这种情况下操作I/O也就是操作存储器了。
对于操作系统
通用的桌面OS,win95应用程序可以直接操作物理地址,2000/NT后出于安全性考虑APP对物理地址不能直接访问物理地址了。
嵌入式OS里uc/os,uclinux这些不具备虚拟地址概念的,可以直接用指针访问物理地址。而wince和其他引入了虚拟地址管理的OS,只能访问到虚拟地址了。如果想访问某个物理地址,必须先作一个物理地址到虚拟地址的映射,再访问。最好是用专门的宏来操作,比如READ_PORT_xxx,READ_RGISTER_xxx之类的。如果用指针操作,最好声明成volatile类型,避免被编译器优化。
比如X86的平台下,I/O和存储器分开编址,有专用的I/O读写指令。其他平台如ARM中实际上是把I/O都映射到存储器的地址里了,这种情况下操作I/O也就是操作存储器了。
对于操作系统
通用的桌面OS,win95应用程序可以直接操作物理地址,2000/NT后出于安全性考虑APP对物理地址不能直接访问物理地址了。
嵌入式OS里uc/os,uclinux这些不具备虚拟地址概念的,可以直接用指针访问物理地址。而wince和其他引入了虚拟地址管理的OS,只能访问到虚拟地址了。如果想访问某个物理地址,必须先作一个物理地址到虚拟地址的映射,再访问。最好是用专门的宏来操作,比如READ_PORT_xxx,READ_RGISTER_xxx之类的。如果用指针操作,最好声明成volatile类型,避免被编译器优化。
相关文章推荐
- wince的存储器操作与地址映射知识点滴
- python基础知识之改变列表的基本操作
- 对外设进行读写操作的过程
- 创业项目:暴利的知识付费平台“小密圈”,月入2万的操作思路
- CC2541 BLE源码阅读知识积累之外设从机Peripheral工作模式
- 关于SQL知识点滴
- Tortoise SVN 版本控制常用操作知识
- 《MQL4实用编程》读书笔记(2) - 交易操作的编程:基本交易知识
- 基于C#生成条形码操作知识汇总附源码
- 学习运维——简单操作命令及系统知识
- C语言基础知识/编译器操作
- C# 线程知识--使用ThreadPool执行异步操作
- [jQuery知识]jQuery之知识四-DOM和CSS操作
- 语言小知识-python-zip操作
- JNI及Android JNI 开发基本知识和具体操作步骤
- 点滴知识
- 基础篇小结:来看源码吧~巩固之前的知识,顺便看看创建方块物品之类基本操作的具体做法
- WINCE知识点滴
- winform学习之-----关于按键操作的一些小知识(如何获取焦点所在的当前控件)20160623
- CC2541 BLE源码阅读知识积累之外设从机Peripheral工作模式