请教关于内存读写的问题

nostopping 2008-10-02 05:59:54
最近想学习一下读写内存和端口的方法,但遇到了几个问题,希望高手指点一下:

1.2G内存,我可以操作的最大内存地址是多少?
(是不是2048M * 1024K * 1024B * 8 的十六进制,结果是400000000,这个好像不 对:)
2.为什么有的地址写进去值之后再读出来是正确的,而有的地址写进去之后,读出来的还是FFFFFFFF?
还有FFFFFFFF是不是表示空?

先谢谢各位看贴者,请高手指教!
...全文
140 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
linuxpgy 2008-10-13
  • 打赏
  • 举报
回复
楼主要说明自己的开发环境,还有是win32层呢,还是kernel层,是windows还是linux
gooogleman 2008-10-12
  • 打赏
  • 举报
回复
这个和wince估计差别不大
nostopping 2008-10-09
  • 打赏
  • 举报
回复
谢谢各位帮助,看来我需要学的东西还多着呢,
哪位能推荐下学习这些知识的好书或资料,有的话请帮个忙啊
xlanchen 2008-10-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nostopping 的回复:]
我的是2条1G内存,这两条内存里面也含有ROM吗?
[/Quote]

没有
nostopping 2008-10-04
  • 打赏
  • 举报
回复
我的是2条1G内存,这两条内存里面也含有ROM吗?
xlanchen 2008-10-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nostopping 的回复:]
看来上面我写的时候出现了点问题.介绍下我的机器环境:2G内存,Vista 32位OS.
请问4楼的:
"如果向某个地址写入数据再读回来,数据与写入的不同,则说明该位置不可写,可能是没有内存,也可能是ROM" 请问这个ROM指的是什么,内存不是单独的吗,和ROM有什么关系?还有内存的某个位置不可写是否就是说正有程序占用着这块区域?谢谢!
[/Quote]

你是在vista中写一个程序做这件事情吧??

那么你读写的内存不是物理地址空间;而是虚拟的进程地址空间。

在Windows中,进程地址空间有4GB,一般情况下 0~2G-1是用户态地址空间,3~4G-1是内核态地址空间

你对一个任意给定的地址读写,可能没问题,可能会报错。

xlanchen 2008-10-03
  • 打赏
  • 举报
回复
最好先了解一下,你所用板子的地址空间分布

就是rom在什么地址范围
ram在什么地址范围

之类的


I/O的话,最好知道是统一编址还是独立编址的
不过,你既然说是端口,应该就是独立编址的了
cnzdgs 2008-10-03
  • 打赏
  • 举报
回复
ROM是Read Only Memory(只读存储器)。内存由RAM(随机存储器)和ROM两部分组成,PC中的BIOS就是ROM。
nostopping 2008-10-03
  • 打赏
  • 举报
回复
看来上面我写的时候出现了点问题.介绍下我的机器环境:2G内存,Vista 32位OS.
请问4楼的:
"如果向某个地址写入数据再读回来,数据与写入的不同,则说明该位置不可写,可能是没有内存,也可能是ROM" 请问这个ROM指的是什么,内存不是单独的吗,和ROM有什么关系?还有内存的某个位置不可写是否就是说正有程序占用着这块区域?谢谢!
「已注销」 2008-10-03
  • 打赏
  • 举报
回复
1.2G内存,我可以操作的最大内存地址是多少?
(是不是2048M * 1024K * 1024B * 8 的十六进制,结果是400000000,这个好像不 对:)

如果是字节寻址。。应该是2048 * 1024 * 1024
2.为什么有的地址写进去值之后再读出来是正确的,而有的地址写进去之后,读出来的还是FFFFFFFF?
还有FFFFFFFF是不是表示空?
看看你的地址是否弄对了,还有地址空间是否可写
cnzdgs 2008-10-03
  • 打赏
  • 举报
回复
这种问题最好先描述一下你的系统。
你说的1.2G是1200M吧?1M是2的20次方,写成十六进制是100000。1200M就是4B000000。
如果向某个地址写入数据再读回来,数据与写入的不同,则说明该位置不可写,可能是没有内存,也可能是ROM。对于没有内存的情况,读出的结果与CPU有关,目前多数CPU在没有内存的地址读到的数据是全“1”,32位即FFFFFFFF。
nostopping 2008-10-03
  • 打赏
  • 举报
回复
楼上的能否说的详细点,
怎么知道是按字节寻址还是按位寻址的呀?这个寻址是由什么决定的?
谢谢!

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧