QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1119|回复: 1

我对Skyeye-1.0.0的一点点改进地方思考:

[复制链接]
发表于 2006-8-8 19:40:32 | 显示全部楼层 |阅读模式
在armemu.c中STR/LDR调用的函数中总有

//存储数据地址错误
if (VECTORACCESS (address) || ADDREXCEPT (address))
       
//#define ADDREXCEPT(address)   (address > LEGALADDR && !state->data32Sig)
//#define LEGALADDR 0x03ffffff
//我觉得这点有个小小的错误。假如是一个字的话并且是little-endian,那么address> LEGALADDR-4地址就应该是错误的。
//而且我觉得这是一个Bug,它只能选择一个64M的空间,那么模拟的开发板的存储空间或者IO地址超过这个范围那么对IO地址的访问就会出现错误的结果。
 楼主| 发表于 2006-8-9 19:19:32 | 显示全部楼层
呵呵 ,我又看了几次
发现原来的sim/arm/armvirt.c中getword 和putword中介绍了arm4G地址空间的计算方法。看来if (VECTORACCESS (address) || ADDREXCEPT (address)) 不是地址空间。以前理解错误了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-26 18:24 , Processed in 0.056885 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表