在4418平台上如何配置GPIO口的状态
|
硬件
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
通过原理图找你需要配置的硬件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口的状态的更多相关文章
- 在Mac平台上安装配置ELK时的一些总结
一.前言 大数据处理是流行的一些表现,在不断壮大的数据处理中,怎么样处理数据才是我们继续做好开发的正道.本文章来自网络,不敢原创,但是也有很大借鉴. 二.MAC安装ELK 首先是安装elast ...
- STM32f10xxx 之 GPIO口配置
背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了 ...
- C6748的GPIO口配置使用
2018年1月17日更新: 这几天用了创龙的C6748的库,对于GPIO配置十分不爽,我移植了RK6748的库,用起来十分酸爽,把下面的文件加入到工程中,然后include头文件后就可以使用.非常好使 ...
- GPIO口的脚本配置之——全志H3script.bin
此脚本的作用之一是配置GPIO的默认状态: 如:功能,内部电阻状态,驱动能力等. 1.但是直接打开script.bin 文件则会出现乱码,那么我们怎么才可以打开并更改该脚本的配置呢? 在路径uboot ...
- 如何在Windows平台下安装配置Memcached
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一 ...
- Silicon C8051F340之GPIO口配置与使用
一.背景: 很久前用过C8051,现在有相关需求需要重新使用C8051,然后发现一年前开发的相关经验都忘得 基本上差不多了.连最基本的GPIO口配置还得重新来看手册,所以有此文,做个记录,以备下次快速 ...
- stm32寄存器版学习笔记01 GPIO口的配置(LED、按键)
STM32的I/O口可以由软件配置成如下8种模式:输入浮空.输入上拉.输入下拉.模拟输入.开漏输出.推挽输出.推挽式复用功能及开漏复用功能.每个I/O口由7个寄存器来控制:配置模式的端口配置寄存器CR ...
- 第二步 在D2RQ平台上配置jena环境
第二步 在D2RQ平台上配置jena环境 2013年10月16日 9:48:53 搞了这么长时间语义,只用过protege这样的工具,一直没有落实到实际代码上.jena也看过好久了,总认为是hp公司的 ...
- Linux平台上轻松安装与配置Domino
Linux平台上轻松安装与配置Domino Domino Server的编译安装过程中需要用到libstdc++-2.9和glibc-2.1.1(或者其更高的版本)两个编译模块,它们是Linux开发编 ...
随机推荐
- 如何挂载一个镜像文件(how to mount an image file)
如何挂载一个镜像文件(how to mount an image file) 08/16/2012master 4 Comments 在使用KVM或Xen虚拟化的情况下,经常需要使用镜像文件(imag ...
- Matlab-plot绘图
plot函数 形式 字符控制 常用的图形标记函数 subplot命令拆分窗口 其他常见命令 三维绘图plot3 mesh和contour命令 plot函数 形式 plot(a,'-s')如果a是实数矩 ...
- mysql 在线添加字段
使用工具pt-online-schema-change #! /bin/bash stime=`date +%s` echo "增加字段开始测试时间为:`date +%H:%M:%S`&qu ...
- NodeJS基础入门-Event
大多数Node.js核心API都采用惯用的异步事件驱动架构,其中某些类型的对象(触发器)会周期性地触发命名事件来调用函数对象(监听器). 例如,net.Server对象会在每次有新连接时触发事件;fs ...
- 使用jmeter做简单的压测(检查点、负载设置、聚合报告)
1.添加断言(检查点) 在需要压测的接口下添加--断言--响应断言,取接口响应中包含有的数据即可 检查点HTTP请求-->断言-->响应断言1.名称.注释2.Apply to//作用于哪里 ...
- 【mysql】【转发】[Err]1267 - Illegal mix of collations(utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,I
[Err]1267 - Illegal mix of collations(utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for o ...
- Java Web系统常用的第三方接口
1. Web Service 接口 1.1 接口方式说明和优点 在笔者的开发生涯中,当作为接口提供商给第三方提供接口时,以及作为客户端去调用第三方提供的接口时,大部分时候都是使用 Web Se ...
- 【HIHOCODER 1599】逃离迷宫4
描述 小Hi被坏女巫抓进一座由无限多个格子组成的矩阵迷宫. 小Hi一开始处于迷宫(x, y)的位置,迷宫的出口在(a, b).小Hi发现迷宫被女巫施加了魔法,假设当前他处在(x, y)的位置,那么他只 ...
- ACM Changchun 2015 J. Chip Factory
John is a manager of a CPU chip factory, the factory produces lots of chips everyday. To manage larg ...
- Android开发——减小APK大小
0. 前言 APK的大小对APP的加载速度,使用内存大小和消耗功率多少有一定影响.如何减小APK的大小对于Android开发者是一个永恒的话题. 查阅了很多相关资料,并将其做了删减以及总结.本文原创, ...
AD_LEVEL_LOW)