s5pv210(tiny210)gpio地址表

本文记录了作者在S5PV210(Tiny210)平台进行GPIO操作的经验,详细列出了几个常用GPIO操作的地址,并提供了设置GPIO输出的实例,以助于开发者进行硬件控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

画了一个下午点灯,谢天谢地总算点完了,关于s5pv210的地址表一直没找到,这里写下备忘。

#ifndef _S5PV210_GPIO_H
#define _S5PV210_GPIO_H

#define S5PV210_GPIOBASE  (0XE0200000) //基地址

struct s5pc210_gpio_bank {
    unsigned int con;
    unsigned int dat;
    unsigned int pud;
    unsigned int drv;
    unsigned int con_pdn;
    unsigned int pud_pdn;
    unsigned char res1[8];
};

struct s5pv210_gpio {
    struct s5pc210_gpio_bank  gpio_a0;
    struct s5pc210_gpio_bank  gpio_a1;
    struct s5pc210_gpio_bank  gpio_b;
    struct s5pc210_gpio_bank  gpio_c0;
    struct s5pc210_gpio_bank  gpio_c1;
    struct s5pc210_gpio_bank  gpio_d0;
    struct s5pc210_gpio_bank  gpio_d1;
    struct s5pc210_gpio_bank  gpio_e0;
    struct s5pc210_gpio_bank  gpio_e1;
    struct s5pc210_gpio_bank  gpio_f0;
    struct s5pc210_gpio_bank  gpio_f1;
    struct s5pc210_gpio_bank  gpio_f2;
    struct s5pc210_gpio_bank  gpio_f3;
    struct s5pc210_gpio_bank  gpio_g0;
    struct s5pc210_gpio_bank  gpio_g1;
    struct s5pc210_gpio_bank  gpio_g2;
    struct s5pc210_gpio_bank  gpio_g3;
    struct s5pc210_gpio_bank  gpio_i;
    struct s5pc210_gpio_bank  gpio_j0;
    struct s5pc210_gpio_bank  gpio_j1;
    struct s5pc210_gpio_bank  gpio_j2;
    struct s5pc210_gpio_bank  gpio_j3;
    struct s5pc210_gpio_bank  gpio_j4;
};
#endif

几个常用的操作地址的宏

#define   _REG(adr)     (*(volatile unsigned int *)(adr))

#define   readb(adr)      (*(volatile unsigned char *)(adr))
#define   readw(adr)     (*(volatile unsigned short *)(adr))
#define   readl(adr)       (*(volatile unsigned int *)(adr))

#define writeb(value,adr)   ((*(volatile unsigned char *)(adr))=(value))  
#define writew(value,adr)   ((*(volatile unsigned short *)(adr))=(value))   
#define writel(value,adr)   ((*(volatile unsigned int*)(adr))=(value)) 

使用方法 比如设置PA0 最低一位输出高电平

 volatile struct s5pv210_gpio *gpio_base = (volatile struct s5pv210_gpio *)S5PV210_GPIOBASE;

unsigned int temp= _REG(&gpio_base->gpio_a0.con);
temp&= ~0xf;
temp|=0x1;
writel(temp, &gpio_base->gpio_a0.con);
temp=_REG(&gpio_base->gpio_j2.dat);
temp |=0x01;
writel(temp, &gpio_base->gpio_a0.dat);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值