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

Paged ram问题

Paged ram问题

我所使用的芯片是MC9S12XDP512

在AD的值读取中,我将AD寄存器的值直接赋给放在Paged ram RAM_F8 的变量,读取的值为0

若赋给non-paged RAM中的变量,则读取的值是正确的。

此外,我将non-paged RAM中变量的值赋给Paged ram 中的变量,值也是错误的。

我在编译器中看这些变量的地址都是正确的,为什么会出现这种情况呢?

我在编译器里也加了-D__FAR_DATA的参数

请教如何设置才能利用paged ram中变量读取正确值,难道非要手工指定RPAGE?

[em06]

在RAM的定义区可以加上这样的说明试试:

#pragma DATA_SEG __PPAGE_SEG PAGED_RAM

海纳百川  有容乃大
版主解答的好  学习了
QUOTE:
以下是引用strongchen在2009-6-30 10:22:00的发言:
QUOTE:

在RAM的定义区可以加上这样的说明试试:

#pragma DATA_SEG __PPAGE_SEG PAGED_RAM

这个我已经在定义变量的.c和声明变量的.h里都加过了

呵呵,

是 #pragma DATA_SEG __PPAGE_SEG PAGED_RAM还是

#pragma DATA_SEG __RPAGE_SEG PAGED_RAM呢?好像应该是后者吧?

不知道为什么一直赋值给paged ram的值都不行。

如果将变量强制转换:例如:

unsigned int AN00_Data;

*((unsigned int *__far)(&AN00_Data)) = ATD0DR6;

这样是可以的

但是如果变量是数组,这样强制转换也不行了。。。。。。

不知道为什么?

[em04]
顶上,我半年来一直也搞不定这个问题,求大虾现身!!!
返回列表