MC9S12XDP512在外扩模式下对外设访问,C编程遇到的问题
- UID
- 115880
- 性别
- 女
|
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 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
请参考这些帖子:
http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=104072&ID=104072
http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=104163&ID=104163 |
|
|
|
|
|
- UID
- 115880
- 性别
- 女
|
我的意思是:把外设变量作为子函数的参数时,调用有问题,如直接把访问外设变量的代码放主程序里就没问题。
版主提供的帖子是如何设置编译环境,如何设置外设变量。 |
hi thank you for your help |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
|
|
|
|
|