[Suzaku:00349] uLinux から追加 GPIO へのアクセス
email@hidden
2005年 6月 28日 (火) 12:09:04 JST
植田と申します。
前回の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はunsigned long型)
printf("%08lx", output);
を追加したところ、outputの値は0000 0000でした。
ポインタによるアクセス方法、IPの追加を含め、留意点がありましたらご指摘のほう、
よろしくお願いします。
-----------------------
植田真之(UEDA Masayuki)
email@hidden
suzaku メーリングリストの案内