takuya.murasugi
2019年7月11日 12時11分
お世話になります。村杉と申します。
Armadillo 640のCON9のGPIO4_IO07とGPIO4_IO08に対して以下のHowtoを参考に
直接値を書き込みたいのですが、GPIO4_IO07とGPIO4_IO08のアドレスの
確認方法をご教授いただけないでしょうか?
Howto : アプリケーションから任意のメモリ空間をアクセスする
https://armadillo.atmark-techno.com/howto/accessing-any-address
devmem2
よろしくお願いいたします。
以上
コメント
takuya.murasugi
溝渕様
御回答有難うございます。
村杉です。
以下のように、devmem2で書き込んでreadbackでも正しい値を読めているのですが、
読み出すと書込み出来ていません。
---------------------------
root@armadillo:/home/devmem2# ./devmem2 0x20a8000 b 0x80
/dev/mem opened.
Memory mapped at address 0xb6ffd000.
Value at address 0x20A8000 (0xb6ffd000): 0x0
Written 0x80; readback 0x80
root@armadillo:/home/devmem2# ./devmem2 0x20a8000 b
/dev/mem opened.
Memory mapped at address 0xb6fba000.
Value at address 0x20A8000 (0xb6fba000): 0x0
---------------------------
echo 1 > /sys/class/gpio/gpio103/value のようにして書き込むと
正常に書きこみが出来ているようです。
---------------------------
root@armadillo:/home/devmem2# ./devmem2 0x20a8000 b
/dev/mem opened.
Memory mapped at address 0xb6f99000.
Value at address 0x20A8000 (0xb6f99000): 0x80
---------------------------
よろしくお願いいたします。
以上
at_mizo
takuya.murasugi
at_mizo
2019年7月11日 13時22分
溝渕です。
> Armadillo 640のCON9のGPIO4_IO07とGPIO4_IO08に対して以下のHowtoを参考に
> 直接値を書き込みたいのですが、GPIO4_IO07とGPIO4_IO08のアドレスの
> 確認方法をご教授いただけないでしょうか?
"i.MX 6ULL Applications Processor Reference Manual"に記載されています。
上記、NXP社のWebページ[1]よりダウンロードできます。
[1]:https://www.nxp.com/products/processors-and-microcontrollers/arm-based-…
GPIOのレジスタ仕様は、"28.5 GPIO Memory Map/Register Definition"に記載
されています。
GPIO data register(GPIO4_DR)のアドレスは、20A_8000です。GPIO4_IO07のデー
タを変更したい場合は、20A_8000のbit6を操作します。GPIO4_IO08の場合は
bit7です。
またLinuxカーネル v4.14-at12では、標準で"/dev/mem"が利用できません。以
下のコンフィギュレーションを有効化してください。
上記、Linuxカーネル v4.14-at13で標準的に有効化する予定です。