gpt4 book ai didi

C51 编译器 - 写入 xdata

转载 作者:太空狗 更新时间:2023-10-29 15:29:50 26 4
gpt4 key购买 nike

在XC888微 Controller 上编程,我想在外部存储器xdata中保存一些数据的缓冲区。

我是这样做的(只是一个例子,我去掉了不必要的代码):

标题.h

extern ubyte xdata rec_buffer[32];

函数.c

ubyte xdata rec_buffer[32] = {0};

void foo()
{
//Option 1
rec_buffer[0] = 0xFF; // Doesn't work

//Option 2
ubyte xdata *ptr_buf = rec_buffer;
ptr_buf[0] = 0xFF // Doesn't work
}

所以我无法弄清楚我在这里缺少什么。在这两种情况下,都没有数据写入缓冲区。 (用调试器检查过)。我还检查了指针指向它的地址 --> 它实际上指向外部存储器(地址 0x000000,但应该没有错)。

当我没有在 xdata 中定义缓冲区时,它工作得很好。我究竟做错了什么?有什么特殊的方法可以写入扩展数据吗?

最佳答案

XRAM 不应该在 0xF000(不是 0x000000)吗?根据此处的图 7:

http://www.keil.com/dd/docs/datashts/infineon/xc88xclm_ds.pdf

链接器配置是否有误?

关于C51 编译器 - 写入 xdata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15100820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com