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

MC9S12XDP512在外扩模式下对外设访问,C编程遇到的问题

MC9S12XDP512在外扩模式下对外设访问,C编程遇到的问题

访问外设时用子函数,在主函数里调用该子函数,其执行结果是错的,如
int function(int * __far base_addr,int offset)
{
base_addr += offset;
ruturn(*base_addr);
}
main()
{
int *__far flash_addr;
int data;
flash_addr = (int *__far)&BASE_FLASH; //BASE_FLASH是定义的FLASH段起始地址
data = function(flash_addr,0x22);
}
但把子函数代码直接放在主函数里,执行结果就是对的,如:
main()
{
int *__far flash_addr;
int data;
flash_addr = (int *__far)&BASE_FLASH; //BASE_FLASH是定义的FLASH段起始地址
flash_addr += 0x22;
data = *flash_addr;
}
为什么,该程序是用CW4.6。
hi  thank you for your help
请参考这些帖子:
http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=104072&ID=104072
http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=104163&ID=104163
海纳百川  有容乃大
我的意思是:把外设变量作为子函数的参数时,调用有问题,如直接把访问外设变量的代码放主程序里就没问题。
版主提供的帖子是如何设置编译环境,如何设置外设变量。
hi  thank you for your help
能否把整个project打包贴出来看看。
海纳百川  有容乃大
返回列表