首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

CW HCS12中的一个指针问题?觉得是编译器的问题.大家帮忙看一下.

CW HCS12中的一个指针问题?觉得是编译器的问题.大家帮忙看一下.

unsigned int FlashBuf[10];

#pragma CODE_SEG NON_BANKED

void FlashProg(void)
{
FSTAT = 0x80;
__asm nop;
__asm nop;
__asm nop;
__asm nop;
while(!FSTAT_CCIF);
}

void FlashInit(void)
{
unsigned char i;
unsigned int * far pSData;

#if( FBUS > 12000000)
FCLKDIV = FBUS / 200000 / 8 + 0x40;
#else
FCLKDIV = FBUS / 200000;
#endif

pSData = (unsigned int * far )FlashProg;
for(i = 0 ; i < 10; i++)
{
FlashBuf = *pSData++;
}
}

#pragma CODE_SEG DEFAULT

执行结果错误,pSData得到的地址是错误的.如果把pSData右移8位后可以得到正确的值.
觉得很奇怪.大家有没有遇到过这样的情况?
返回列表