硬件
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
通过原理图找你需要配置的硬件IO口的管脚
在 4418 6818 内核中,所有 GPIO 引脚被分为 ABCDE 等几组,每组 32 个。
每组引脚起始地址定义如下图:
硬件引脚都对应分配在这几组引脚中:
例如:
GPIOB29 对应 PAD_GPIO_B + 29
硬件上的命名: GPIOB29
软件上的命名: PAD_GPIO_B + 29
GPIOC10 对应 PAD_GPIO_C + 10
硬件上的命名: GPIOC10
软件上的命名: PAD_GPIO_C + 10  
 
软件
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GPIO配置文件
u-boot\boart\s5p4418\drone\include\Cfg_gpio.h
kernel\arch\arm\plat-s5p4418\drone\include\Cfg_gpio.h
 
在u-boot与kernel中
例如:
#define PAD_GPIOAO    (PAD_MODE_OUT | PAD_FUNC_ALT0 | PAD_LEVEL_HIGH | PAD_PULL_OFF | PAD_STRENGTH_0)           
第一个参数:输出,输入              (输入为:PAD_MODE_IN, 输出为:PAD_MODE_OUT)
第二个参数:功能选择
        ——————————————————————————————————————         
        | 注:                                                                                                                                  |
        |  // 0: GPIO          1: VIP1_VD[4]           ,2: MPEGTSI_TDATA1[0]   ,3:_                    =        |
        |  这里的GPIO对应的是0,那么第二个参数就是 PAD_FUNC_ALT0                                       |
        |----------------------------------------------------------------------------------------------|
        |    // 0: MCUS_SD[15]   ,1: GPIO       ,2: MPEGTSI0_TDATA[7]   ,3: UART5_TXD       =      |
        |  若GPIO对应的是1,那么第二个参数就是PAD_FUNC_ALT1                                               |
        ——————————————————————————————————————
第三个参数:高低电平            (高电平:PAD_LEVEL_HIGH,低电平AD_LEVEL_LOW)               
第四个参数:上拉,下拉,关闭上下拉   (上拉:PAD_PULL_UP, 下拉:PAD_PULL_DN,  关闭上下拉:PAD_PULL_OFF)
第五个参数:驱动能力
 
注:
最好不要在cfg_gpio.h文件中配置GPIO,因为有些GPIO会有复用功能,可能会影响其他的功能,最好用GPIO有关的函数来实现
 
GPIO有关的函数
GPIO 输出功能设置
如果要对 GPIO 配置为输出功能,输出高或输出低,就是拉高拉低的意思。
我们可以用 int gpio_direction_output(unsigned gpio, int value)
从函数的参数来看
unsigned gpio:这个单个 GPIO 的值 ;
int value:这个是要设置的值( 0 代表低电平, 1 代表高电平)
比如我要对 LCD 供电的 GPIO 拉高,那么软件上这样写
gpio_direction_output(PAD_GPIO_C + 10, 1);
如果要拉低:
gpio_direction_output(PAD_GPIO_C + 10, 0);
我们在 LCD 驱动、触摸屏驱动、按键驱动等都有对 GPIO 设置,请参考源码对应的修改进行理解。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GPIO 输入功能设置
如果我们想了解一个外部的电平的高低情况,那么我们可以通过 GPIO 连接该路电平,接着把 GPIO 设成输入功能即可。
软件上用一个函数即可让 GPIO 变成输入功能
int gpio_direction_input(unsigned gpio)
从这上面我们只看到一个参数,就是对应 GPIO 的值
比如我要让 GPIOC10 改成输入功能
gpio_direction_input( PAD_GPIO_C + 10);
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GPIO 电平读取
当我们需要读取当前 GPIO 的值(输出、输入、复用功能都可以读取),我们也可以通过函
数去读取
static inline int gpio_get_value(unsigned gpio)
参数 GPIO 代表需要读取 GPIO 对应的值
比如我要读 GPIOC10 的值
gpio_get_value(PAD_GPIO_C + 10)  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GPIO 中断功能设置
当我们需要引脚中断功能的时候,那么我们就需要实现 GPIO 的中断功能。
参数:
void nxp_soc_gpio_set_int_enable(unsigned int io, int on)
unsigned io :代表单个 GPIO 引脚
int on:置为 1,则代表使能中断功能,置为 0,则说明不使能中断功能,即不作为中断引脚。  

在4418平台上如何配置GPIO口的状态的更多相关文章

  1. 在Mac平台上安装配置ELK时的一些总结

    一.前言 大数据处理是流行的一些表现,在不断壮大的数据处理中,怎么样处理数据才是我们继续做好开发的正道.本文章来自网络,不敢原创,但是也有很大借鉴.   二.MAC安装ELK   首先是安装elast ...

  2. STM32f10xxx 之 GPIO口配置

    背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了 ...

  3. C6748的GPIO口配置使用

    2018年1月17日更新: 这几天用了创龙的C6748的库,对于GPIO配置十分不爽,我移植了RK6748的库,用起来十分酸爽,把下面的文件加入到工程中,然后include头文件后就可以使用.非常好使 ...

  4. GPIO口的脚本配置之——全志H3script.bin

    此脚本的作用之一是配置GPIO的默认状态: 如:功能,内部电阻状态,驱动能力等. 1.但是直接打开script.bin 文件则会出现乱码,那么我们怎么才可以打开并更改该脚本的配置呢? 在路径uboot ...

  5. 如何在Windows平台下安装配置Memcached

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一 ...

  6. Silicon C8051F340之GPIO口配置与使用

    一.背景: 很久前用过C8051,现在有相关需求需要重新使用C8051,然后发现一年前开发的相关经验都忘得 基本上差不多了.连最基本的GPIO口配置还得重新来看手册,所以有此文,做个记录,以备下次快速 ...

  7. stm32寄存器版学习笔记01 GPIO口的配置(LED、按键)

    STM32的I/O口可以由软件配置成如下8种模式:输入浮空.输入上拉.输入下拉.模拟输入.开漏输出.推挽输出.推挽式复用功能及开漏复用功能.每个I/O口由7个寄存器来控制:配置模式的端口配置寄存器CR ...

  8. 第二步 在D2RQ平台上配置jena环境

    第二步 在D2RQ平台上配置jena环境 2013年10月16日 9:48:53 搞了这么长时间语义,只用过protege这样的工具,一直没有落实到实际代码上.jena也看过好久了,总认为是hp公司的 ...

  9. Linux平台上轻松安装与配置Domino

    Linux平台上轻松安装与配置Domino Domino Server的编译安装过程中需要用到libstdc++-2.9和glibc-2.1.1(或者其更高的版本)两个编译模块,它们是Linux开发编 ...

随机推荐

  1. CentOS7下Mysql5.7主从数据库配置

    本文配置主从使用的操作系统是Centos7,数据库版本是mysql5.7. 准备好两台安装有mysql的机器(mysql安装教程链接) 主数据库配置 每个从数据库会使用一个MySQL账号来连接主数据库 ...

  2. (69)zabbix监控惠普打印机

    假设公司有多个楼层或者分布在不同楼,打印机自然分布很广泛,打印机缺少油墨或者卡纸了,都需要员工找IT部门.我们使用zabbix对打印机进行监控,一旦缺少油墨,zabbix发出报警,it人员能够及时更换 ...

  3. JAVA中文字符串编码--GBK转UTF-8

    转载自:https://www.cnblogs.com/yoyotl/p/5979200.html 一.乱码的原因 gbk的中文编码是一个汉字用[2]个字节表示,例如汉字“内部”的gbk编码16进制的 ...

  4. linux 下 docker-compose安装

    docker和dockers-compose的版本兼容对照 以下是我的服务器的相关信息 linux版本 [root@izbp16fm097gaw3tdaog2wz bin]# cat /proc/ve ...

  5. 常用排序算法的总结以及编码(Java实现)

    常用排序算法的总结以及编码(Java实现) 本篇主要是总结了常用算法的思路以及相应的编码实现,供复习的时候使用.如果需要深入进行学习,可以使用以下两个网站: GeeksForGeeks网站用于学习相应 ...

  6. python面试题之什么是lambda函数?

    lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用l ...

  7. day24 01 初识继承

    day24 01 初识继承 面向对象的三大特性:继承,多态,封装 一.继承的概念 继承:是一种创建新类的方式,新建的类可以继承一个或者多个父类,父类又可称基类或超类,新建的类称为派生类或者子类 cla ...

  8. golang(go语言)调试和查看gc信息,以及gc信息解析

    这里记录一下调试golang gc的方法 启用gc打印: # GODEBUG=gctrace=1 go run ./main.go 程序启动后gc将打印如下信息: gc 65 @16.996s 0%: ...

  9. TypeError: cannot use a string pattern on a bytes-like object

    一劳永逸解决:TypeError: cannot use a string pattern on a bytes-like object TypeError: cannot use a string ...

  10. centos7 bond 和 网桥配置

    rhel7系统bond配置(更新版本):https://www.cnblogs.com/zhangjianghua/p/9119808.html Bonding的模式一共有7种: 1.mode=0(b ...