[Suzaku:00350] Re: uLinux から追加 GPIO へのアクセス

Tetsuya Ohkawa email@hidden
2005年 6月 28日 (火) 12:40:21 JST


ookawa @修行中です。


email@hidden wrote:

>植田と申します。
>前回のyashiさんからの回答は参考にさせていただきました。
>ありがとうございました。
>
>今回は基本的なことなのですが、
>EDKで追加したGPIO(v3.01b)の32bit長レジスタへのアクセスをしようとしています。
>指定したBaseAddressに対して、
>BaseAddress+0x04でポートの入出力を設定(1で入力)し、
>BaseAddressからデータの読み書きをするようになっています。
>
>そこで、uCLinux上で
>#define BaseAddress 0xfff00000
>
>unsigned long inout = 0x00000000;//ポートすべてを出力に設定
>unsigned long data = 0xaaaaaaaa;              //出力用のデータ
>
>*(volatile unsigned long *)(BaseAddress + 0x04) = inout;
>*(volatile unsigned long *)(BaseAddress) = data;
>...
>
>としてI/Oポートにデータを出力させようとしましたが、結果が反映されませんでした。
>  
>
>さらに、レジスタの確認のため
>
>output = *(volatile unsigned long)(BaseAddress);
>  
>

output = *(volatile unsigned long *)(BaseAddress);
でお試しください。

>(変数outputはunsigned long型)
>printf("%08lx", output);
>
>を追加したところ、outputの値は0000 0000でした。
>ポインタによるアクセス方法、IPの追加を含め、留意点がありましたらご指摘のほう、
>よろしくお願いします。
>
>-----------------------
>植田真之(UEDA Masayuki)
>
>email@hidden
>
>
>
>  
>
---
ookawa



suzaku メーリングリストの案内