XC888 マイクロコントローラでのプログラミングで、一部のデータのバッファを外部メモリに保存したいと考えていますxdata
。
私はこのようにしています(不要なコードを取り除いた単なる例です):
Header.h
extern ubyte xdata rec_buffer[32];
Function.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
}
だから私はここで何が欠けているのか分かりません。どちらの場合も、バッファに書き込まれるデータはありません。(デバッガーで確認しました)。ポインターが指すアドレスも確認しました->実際には外部メモリを指しています( Address 0x000000
、しかし、それは何も悪いことではありません)。
でバッファを定義せずに実行すると、xdata
まったく問題なく動作します。私は何を間違っていますか?xdata に書き込む特別な方法はありますか?