number007cool 发表于 2010-7-22 11:29:05

关于NIOS II 数据类型的几点疑问

我定义的
alt_u64 x=0xaaaaaaaaaaaaaaaa;//16个a,正好64位
但是编译一下后就出错。
但是我写成:
alt_u64 x=0xaaaaaaaa;//8个a,32位
编译就正确。
我现在怀疑一个问题,就是NIOS II 是32位的处理器,他怎么可能会有64位长的数据类型?
也就是alt_types.h文件里面的:
#ifndef ALT_ASM_SRC
typedef signed charalt_8;
typedef unsigned charalt_u8;
typedef signed short alt_16;
typedef unsigned short alt_u16;
typedef signed long alt_32;
typedef unsigned long alt_u32;
typedef long long alt_64;
typedef unsigned long long alt_u64;
#endif
它虽然提供了alt_u64数据类型,但是在目前32位的NIOS II的核上面是不能正常使用的,也就是说,他实际上也是只有32位宽度.
不知我的猜想是否正确?

number007cool 发表于 2010-7-23 14:22:39

??????????????????????????????????????

zzsoft 发表于 2010-7-23 18:19:09

回复【楼主位】number007cool
-----------------------------------------------------------------------

cpu 32位 指的寻址的位宽, 也就是 2 ^ 32 的 寻址空间, 一个地址空间 代表一个 bytes, 就是 8 bits 数据,

而软件中 的 long long int 等,是指的就是 一个数据 的 范围 和 内存储存储存 空间, 64 bits 要 8 bytes 的内存来储存,

所以32 位 cpu 和 数据的 为数无关。

number007cool 发表于 2010-7-23 19:48:16

回复   【2楼】 zzsoft

但是我在NIOS II 里面像下面定义变量时就提示出错
alt_u64 x=0xaaaaaaaaaaaaaaaa;//16个a,正好64位
也就是说,alt_64是不能够正确使用的。

zzsoft 发表于 2010-7-23 19:55:14

报的是什么错?

zzsoft 发表于 2010-7-23 20:01:39

你可以采用位移 试试:

alt_u64 x=0xaaaaaaaa;

x = (x << 32 ) | 0xaaaaaaaa;

看看可以吗。

number007cool 发表于 2010-7-23 20:15:09

报错信息如下
/hello_world.c:561: warning: integer constant is too large for "long" type

zzsoft 发表于 2010-7-23 20:48:30

这是一个 warning, 很正常。

并不是一个 error.

你可以忽视它。

几乎说有的c,c++ 编译器 都会这样 提示。

zzsoft 发表于 2010-7-23 20:51:28

编译的时候 加 -w 试试,可以去掉 warning 信息

number007cool 发表于 2010-7-24 19:30:36

但是我实际做过测试,它的有效位确实只有32位。

zzsoft 发表于 2010-7-24 23:08:21

回复【9楼】number007cool
-----------------------------------------------------------------------

你怎么做的测试?

number007cool 发表于 2010-7-25 11:44:16

例如令
alt_u64=0xaaaaaaaa;
然后通过移位分离出他的高32位和低32位,然后分别用发光二极管显示出来

aozima 发表于 2010-7-25 12:15:38

long long x=0xaaaaaaaaaaaaaaaa;

alt_u64 ? 什么 东东?
NIOS II的C编译器特有数据类型? 看提示.此数据类型只是long而已, long默认与CPU位宽一样.

cc6868 发表于 2012-3-28 21:06:33

也许是为了扩展 预留的吧

billwsy 发表于 2012-6-5 10:33:54

0xaaaaaaaaaaaaaaaaULL

billwsy 发表于 2012-6-5 10:35:03

0xaaaaaaaaaaaaaaaaULL
页: [1]
查看完整版本: 关于NIOS II 数据类型的几点疑问