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

Wind_Cloud2012 2012-06-05 05:26:00
最近正在研究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下有没有相应的关健字,有哪位大侠知道是什么关健字啊,请赐教!

...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshi_ziyu 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

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

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

__declspec( align(256) )
RcTest rTest;
#pragma pac……
[/Quote]
++

不错
91program 2012-06-05
  • 打赏
  • 举报
回复
结贴吧。
Wind_Cloud2012 2012-06-05
  • 打赏
  • 举报
回复
自己顶一个,刚才查看MSDN时,终于发现了一个跟__align()替换的关健字,测试结果也符合要求。

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

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

//sizeof(RcTest) 等于 256
//&rTest=0x0041a400

自己结贴了,呵呵 !

19,500

社区成员

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

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