[Suzaku:01374] Re: Linux からの GPIO へのアクセスについて

Yusuke Nakamori email@hidden
2009年 1月 30日 (金) 14:04:00 JST


中森です.

返信ありがとうございます.

At Fri, 30 Jan 2009 13:47:45 +0900,
mizo wrote:
> 
> 溝渕です。
> 
> Yusuke Nakamori wrote:
> > 下記の top.vhd の input が周期的に変化するので
> > 自分で追加した GPIO に Linux から周期的にアクセスし,
> > GPIO の値をファイルとして保存したいと思っています.
> > Linux から GPIO にアクセスするためにデバイスドライバを
> > 用いると思うのですが,(検討違いなら申し訳ございません.)
> > そのデバイスドライバをどのように書いたら良いのか教えていただけませんか.
> 使用している環境を書いていただけると答えやすいです。
> 以前から環境は変わっていませんか?
> 

以下に環境を記します.

 ボード: SZ410-SIL
 開発環境: atde2
 atmark-dist: atmark-dist-20071005
 カーネル: linux-2.6.18-at2

です.

atmark-dist と カーネルのバージョンは最新版では
コンパイルが通らなかったため,わざとバージョン
を落してあります.

> SUZAKU-SでuClinux-distを使用している場合は、ユーザランドから任意のアドレ
> スにアクセスできるため、ドライバを書かなくてもGPIOにアクセスすることがで
> きます。
> 
> SUZAKU-Vでatmark-distを使用している場合は、MMUが有効になっているため、ド
> ライバを介してGPIOにアクセスすることになります。
> 
> linux-2.6.18-at9/drivers/char/sil-led.c
> の、
> led_init_module()
> 関数内で呼んでいる
> ioremap_nocache()
> 関数がこの処理を行なっています。
> 
> ioremap_nocache()の引数に、追加したGPIOのスタートアドレスとサイズを渡し
> てください。
> 
> GPIOドライバの登録は、上記ファイルの、
> led_init_module()
> 関数内で呼んでいる
> register_chrdev()
> 関数が行なっています。
> 他と重複しないメジャー番号を与えてください。
> 
> また、ドライバの追加方法については、「atmark-dist 開発者ガイド」の「11.
> 新規デバイスドライバの追加方法」を参考にしてください。
> http://suzaku.atmark-techno.com/files/downloads/suzaku/doc/atmark-dist_developers_guide_ja-1.0.5.pdf
> 

分かりました早速試してみたいと思います.

周期的にアクセスする部分に関してはアプリケーションの方で操作する
ということでよろしいですか.

> > 追加した GPIO 
> > 
> > BEGIN xps_gpio
> >  PARAMETER INSTANCE = xps_gpio_0
> >  PARAMETER HW_VER = 1.00.a
> >  PARAMETER C_BASEADDR = 0xF0FFA400
> >  PARAMETER C_HIGHADDR = 0xF0FFA5FF
> >  PARAMETER C_GPIO_WIDTH = 1
> >  PARAMETER C_IS_BIDIR = 0
> >  BUS_INTERFACE SPLB = plb_peripheral
> >  PORT GPIO_in = GPIO
> > END
> > 
> > 
> >  top.vhd
> > ---------------------------------------------------
> > entity top is
> >   port (
> >      ・
> >      ・
> >     input : in std_logic
> >   );
> > end top;
> > 
> > architecture IMP of top is
> >   component xps_proj is
> >     port (
> >      ・
> >      ・
> >       GPIO : in std_logic_vector(0 to 0) -- 追加したGPIO
> >     );
> >   end component;
> > 
> > begin
> >   xps_proj_i : xps_proj
> >     port map (
> >      ・
> >      ・
> >       GPIO  => GPIO -- 追加したGPIO
> >     );
> > 
> >     GPIO(0) <= input;
> > ----------------------------------------------------
> > _______________________________________________
> > suzaku mailing list
> > email@hidden
> > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/suzaku
> > 




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