标题:
【求助】xgate共享数据警告变量大小不对
[打印本页]
作者:
hithtl
时间:
2010-5-17 14:13
标题:
【求助】xgate共享数据警告变量大小不对
各位大侠!请指教:
C下:
#pragma DATA_SEG SHARED_DATA
volatile canbox msgbox[7];
#pragma DATA_SEG DEFAULT
在cxgate下:
#pragma DATA_SEG SHARED_DATA
extern volatile canbox msgbox[7];
#pragma DATA_SEG DEFAULT
编译时提示我:
Symbol msgbox has different size in xg.xcgate.0 (112 bytes) and s12.c.o (105 bytes)
请多多指教,谢谢!
作者:
finewind
时间:
2010-5-18 09:23
原因是XGATE的一个字必须从偶地址开始,而主处理器一个字则没有这种要求。比如定义一个结构体:
struct
{
unsigned int a;
unsigned char b;
unsigned int c;
}box;
假设地址是从0开始的,那么在主处理器中,box.a的地址是0,box.b的地址是2,box.c的地址是3,但到了XGATE中,box.a的地址是0,box.b的地址是2,到box.c的时候,因为xgate的字必须要从偶地址开始,地址就变成4了。因此,在主处理器中,box占用地址0-5的5个字节,而在XGATE中,box占用地址0-6的6个字节。
我用了个取巧的办法,假如a,b,c都是我们需要的数据,为了保证对齐,我在b和c之间插入了一个char 型,结构体就变成:
struct
{
unsigned int a;
unsigned char b;
unsigned char reserve;
unsigned int c;
}box;
这样就保证了2边的地址大小一致,而又不需要修改原有代码。
作者:
jakerroo
时间:
2010-5-18 14:59
学习了
,还没用到带协处理器的
作者:
hithtl
时间:
2010-5-18 17:03
认真学习,真是太谢谢你了!
作者:
finewind
时间:
2010-5-19 08:58
呵呵,相互学习
作者:
kapperboy123
时间:
2010-5-21 17:34
这些方法都很好阿
美的电磁炉
汉王电纸书推荐
樱桃减肥网
奇声DVD播放器
万利达DVD专卖
美的电饭煲
作者:
haoshendu
时间:
2010-9-18 15:03
学习了 不错
每一日精彩网址
淘宝皇冠大牌街
什么减肥药效果最好
丰胸产品排行榜
美白产品排行榜
牛B链
货货发货源网
作者:
tcyc110
时间:
2010-10-5 20:41
很不错啊
减肥药排行榜
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0