首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

Wince下一个变量的地址低8位必须为0,即类似_align(256)关健字解决方法

2012-06-15 
Wince下一个变量的地址低8位必须为0,即类似__align(256)关健字最近正在研究s3c2440的USB主机接口,可它采用

Wince下一个变量的地址低8位必须为0,即类似__align(256)关健字
最近正在研究s3c2440的USB主机接口,可它采用的是OHCI规范,在OHCI规范中要求寄存器HcHCCA(用来设置HCCA数据区的地址)变量地址的低8位必须为0,如:
  __align(256)struct ohci_hcca ghcca;

但在Wince中好像不支持__align关健字,而#pragma pack() 只能是1、2、4、...、32, 网上有人说全局变量可以支持大于32字节对齐的,我试过了#pragma pack(256),达不到效果,测试如下:
#pragma pack(256)
typedef struct test
{
  BYTE bTest;
}RcTest;
#pragma pack()

#pragma pack(256)
RcTest rTest;
#pragma pack()

//sizeof(RcTest) 等于 1
//&rTest=0x0041a314

不知Wince下有没有相应的关健字,有哪位大侠知道是什么关健字啊,请赐教!



[解决办法]
结贴吧。
[解决办法]

探讨

自己顶一个,刚才查看MSDN时,终于发现了一个跟__align()替换的关健字,测试结果也符合要求。

__declspec( align(256) )
typedef struct test
{
BYTE bTest;
}RcTest;
#pragma pack()

__declspec( align(256) )
RcTest rTest;
#pragma pac……

热点排行