专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 驱动开发

,2440的开发板,如何使用GPIO

发布时间:2010-06-14 17:33:08 文章来源:www.iduyao.cn 采编人员:星星草
求助,2440的开发板,怎么使用GPIO?
GPIO的寄存器定义是在哪个头文件呢?

没找错,是用下面这些API吧:
void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function);
作用:配置GPIO引脚功能,即是配置相应的CON位
unsigned int s3c2410_gpio_getcfg(unsigned int pin);
作用:该函数根据引脚获得指定引脚配置的功能值
void s3c2410_gpio_pullup(unsigned int pin, unsigned int to);
作用:设置相应GPIO口的上拉电阻
void s3c2410_gpio_setpin(unsigned int pin, unsigned int to);
作用:该函数给指定的引脚位写入0或1,即是配置相应的DAT位。
void s3c2410_gpio_getpin(unsigned int pin);
作用:该函数读取指定引脚的状态 返回0或 1,即是读取相应的DAT位。

那个参数pin,我在内核代码里找到一个regs-gpio.h,在linux-2.6.32.2\arch\arm\mach-s3c2410\include\mach里,里面定义的是GPIO口。

我写测试程序:
C/C++ code

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h>
#include <sys/time.h>
#include <errno.h>

int main(void)
{
         int i = 55;

    i = s3c2410_gpio_getcfg (S3C2410_GPA2); //不知道参数用得对不对。

    printf("test-ok?---%d\n",i);

}


编译出错
gpio_test.c:53: error: 'S3C2410_GPA2' undeclared (first use in this function)
gpio_test.c:53: error: (Each undeclared identifier is reported only once
gpio_test.c:53: error: for each function it appears in.)
make: *** [gpios] Error 1

假如我包含mach/regs-gpio.h的话,会提示找不到这个文件,是不是要把内核放在linux下的某个位置的?我的/usr/include下是没有gpio等头文件的。

请问怎么用那些接口,如果要读某一个IO口怎么写怎么用呢?请举个例子,谢谢!~

------解决方案--------------------
仔细看下,要不就自己写个驱动。飘过
------解决方案--------------------
没有加头文件!#include <asm/arch-s3c2410/regs-gpio.h>
------解决方案--------------------
把头文件复制到工程目录中
------解决方案--------------------
给你参考一下,端口常用到的包含文件目录
#include <linux/configfs.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/tty.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/fb.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/cdev.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/workqueue.h>
#include <linux/wait.h>
#include <linux/platform_device.h>
#include <linux/clk.h>
#include <linux/sched.h>
#include <linux/bounds.h>
#include <linux/gpio.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <asm/leds.h>
#include <asm/div64.h>
#include <plat/gpio-cfg.h>
#include <plat/regs-gpio.h>
#include <plat/regs-timer.h>
#include <plat/s3c6410.h>
#include <plat/gpio-bank-p.h>

------解决方案--------------------
内核代码在 userspace 用?
揉揉眼,结果发现没看错
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: