用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
milkyway1888的公告
希望和大家多交流,有什么想法请留言,谢谢.
文章分类
    自己的BLOG
    我的另一个技术blog
    存档

    原创  操作外设I/O和存储器知识点滴 收藏

     关于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类型,避免被编译器优化。

    发表于 @ 2007年04月14日 10:21:00 | 评论( loading... ) | 编辑| 举报| 收藏

    旧一篇:wince的存储器操作与地址映射知识点滴 | 新一篇:浅谈Windows CE应用程序的可移植性

    • 发表评论
    • 评论内容:
    •  
    Copyright © milkyway1888
    Powered by CSDN Blog