[Armadillo:01636] Re: Armadillo-210   CON 4の GPIO 制御方法

email@hidden
2007年 6月 4日 (月) 16:23:10 JST


中井様

ご丁寧に対応いただきましてありがとうございました。
実機にて動作確認できました。

--- nakai <email@hidden> wrote:

> 中井です。
> 
> A210のGPIOドライバはPortA:2には対応していません。
> ドライバに該当ポートの処理を追加することもできますが、
> アプリケーション側で対応できるのでサンプルを張ります。
> 
> yuic23 at yahoo
> さんのサンプルでは、mmapのオフセットに仮想アドレスが指
定されていますが、
> ここでは、物理アドレスを設定してください。
> 
> ちなみに、オフセットは次のとおりです。
> PADDR:gpio_base[4]
> PADR:gpio_base[0]
> 
> ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓
> /* サンプル:mmapを使用したLED赤制御 */
> 
> #include <stdio.h>
> #include <unistd.h>
> #include <fcntl.h>
> #include <sys/mman.h>
> 
> typedef unsigned long u32;
> 
> #define GPIO_PHYS_ADDR (0x80840000)
> #define GPIO_MAP_LEN (0x100)
> 
> int main(void)
> {
>   int fd;
>   u32 *gpio_base;
> 
>   fd = open("/dev/mem", O_RDWR);
>   if (fd < 0) {
>     perror("open");
>     return -1;
>   }
> 
>   gpio_base = mmap(NULL, GPIO_MAP_LEN, PROT_READ |
> PROT_WRITE, MAP_SHARED,
> 		   fd, GPIO_PHYS_ADDR);
>   if (gpio_base == MAP_FAILED) {
>     perror("mmap");
>     close(fd);
>     return -1;
>   }
>   printf("PEDR:\t0x%08lx\n", gpio_base[8]); /*
> offset: 0x20 */
>   printf("PEDDR:\t0x%08lx\n", gpio_base[9]); /*
> offset: 0x24 */
> 
>   /* LED[RED: ON */
>   gpio_base[8] |= 0x01;
>   msync(gpio_base, GPIO_MAP_LEN, MS_SYNC);
> 
>   sleep(1);
> 
>   /* LED[RED: OFF */
>   gpio_base[8] &= ~0x01;
>   msync(gpio_base, GPIO_MAP_LEN, MS_SYNC);
>   
>   munmap(gpio_base, GPIO_MAP_LEN);
>   close(fd);
> 
>   return 0;
> }
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
>
http://lists.atmark-techno.com/mailman/listinfo/armadillo
> 


--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/




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