在 XC888 微控制器上编程,我想为外部存储器中的一些数据保存一个缓冲区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
它工作得很好。我究竟做错了什么?有什么特殊的方法我必须写入 xdata 吗?