Chinaunix
标题:
关于总线错误的问题,求助!!!!
[打印本页]
作者:
thelordsaves
时间:
2012-03-22 22:38
标题:
关于总线错误的问题,求助!!!!
本帖最后由 thelordsaves 于 2012-03-22 22:41 编辑
看到有资料上说,如果访问的地址不满足地址对齐要求会发生总线错误,于是自己写了一个程序测试
#include <stdio.h>
typedef struct tagTEST
{
unsigned short s1;
unsigned short s2;
} TEST_S;
int main()
{
int i = 0;
for ( ;; )
{
TEST_S test;
test.s1 = 65535;
test.s2 = 0;
char *pst = (char *)test;
pst = pst + 1;
unsigned char s3 = *(unsigned short *)pst;//通过这两步骤,让其地址不再是偶数的
printf("%u\r\n", s3);
}
return 0;
}
这个死循环一直跑的都很正常,标记为红色的地方为什么不会出现使用unsigned short访问奇数地址的总线错误?
作者:
hellioncu
时间:
2012-03-23 08:46
你要用PowerPC、UltraSparc等CPU,Intel的X86不会因此出错
作者:
GFree_Wind
时间:
2012-03-23 13:48
这个跟CPU相关。你弄到ARM上,肯定会挂。
作者:
thelordsaves
时间:
2012-03-24 11:42
能详细讲讲原因吗?
回复
2#
hellioncu
作者:
hellioncu
时间:
2012-03-24 20:16
thelordsaves 发表于 2012-03-24 11:42
能详细讲讲原因吗?回复 2# hellioncu
CPU架构的问题,大概risc的会出错,cics的不会
作者:
smalloc
时间:
2012-03-24 20:25
本帖最后由 smalloc 于 2012-03-24 20:32 编辑
没说一定会出错吧,有的处理器产生一个异常,然后用异常程序解决,所以应用程序中可能看不出来
人家说的总线错误是IO总线,没说是内存。
作者:
AD8018
时间:
2012-03-24 22:12
我看到ARM上,这种情况就是错了,无异常。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2