标题:
如何直接用地址值读取分页里的数据
[打印本页]
作者:
yindahu
时间:
2009-9-27 19:01
标题:
如何直接用地址值读取分页里的数据
各位大大,比如我想读取0xF88000地址的数据,我这样写:
const far INT16U data@0xF88000=256;
INT16U test1,test2;
void main(void)
{
INT16U* far pData;
pData=&data;
test1=*pData;
test2=*(INT16U* far)0xF88000;
for(;;);
}
test1读出的数据是256,test2读出的数据是65535
这是怎么回事儿呢?
作者:
yindahu
时间:
2009-9-27 19:03
INT16U 就是unsigned int
作者:
finewind
时间:
2009-9-28 10:48
const far INT16U data@0xF88000=256;
我把这段代码放到main()里面去,编译都调不通。
我想你是想把数据放到FLASH里面,然后调出来吧,我是这样做的:
1.在prm文件里:
PLACEMENT
。。。
。。。
PAGED_CONST INTO PAGE_F8 // 自定义常量地址
。。。
。。。
END
2. 数据定义
#pragma CONST_SEG __GPAGE_SEG PAGED_CONST
unsigned int data = 256;
#pragma CONST_SEG DEFAULT
3.数据引用
unsigned int * FAR ch;
*ch = data;
作者:
daixiaoke
时间:
2009-10-9 20:37
0xF88000应该是个分页地址,定义变量时只能将变量@到一个全局地址或局部地址中的未分页部分,将地址转换为指针并取地址中的内容时也只能转换全局地址吧,建议将程序中的0xF88000都替换为其对应的全局地址试试
作者:
navy_real
时间:
2009-10-15 18:29
INT16U 就是unsigned int
yindahu 发表于 2009-9-27 19:03
fffffffffffffffffffffffffffffffff
作者:
navy_real
时间:
2009-10-15 18:30
ggggggggggg
作者:
navy_real
时间:
2009-10-15 18:31
4#
daixiaoke
fdsfsdfsdfsd回复
作者:
navy_real
时间:
2009-10-15 18:32
是克服了解释道克里夫 的收费的舒服 打点滴
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0