[H8-ML(5357)] Re: バス接続のアクセスで
From: Junsuke Kunugiza <jk@xxxxxxx>
Date: 2005年01月21日(金)13時56分48秒
椚座です。

On Fri, 21 Jan 2005 12:41:52 +0900
"Kazuhiro Nonaka" <non@xxxxxxxxxxxxx> wrote:

> > 解釈によりますが,
> > 
> > #define FPGA   (*(volatile _WORD *)0x20000)
> > _WORD data;
> > data=FPGA;
> 
> これは、何のことだか、理解できないのです。
> data=FPGA;ってのは何をすることになりますか?
> そして、
> 20004番地からに0x1234を書き込みたい時ってのは
> どうすればいいのでしょうか?

すみません,あくまで言語的に正しくするための修正例だと
思って書いたので,実用的なコードではありませんでした。
これだと,0x200000 番地の値が data に代入されるだけで,
0x200004 とかにはアクセスできません。

二つ目の方は,実際に使えます。以下は,どちらも同じ意味に
なります。

*(data+2)=0x1234;
data[2]=0x1234;


あと,先のメールに書いた例では括弧はありませんでしたが,

#define FPGA   ((volatile _WORD *)0x20000)

と,全体に括弧を付けておけば,以下の例のように,
FPGA 自体を変数みたいに使うこともできます。

*(FPGA+2)=0x1234;
FPGA[2]=0x1234;

#define されたものに添え字を付けたりして使うのは,
スタイル的にあんまり好きじゃないのですけれど・・・。


椚座 淳介 (Junsuke Kunugiza)
E-Mail: jk@xxxxxxx  http://www.exp.org/

スレッド概略
[5350(R)](起点)
 └[5356(U)]
   └[表示中]
     └[5359(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]