Linux内核gpio

Linux内核gpio,第1张

本文基于 RockPI 4A 单板 Linux 4.4 内核介绍 RK3399 Linux GPIO 功能。

GPIO(General Purpose Input/Output Port) :通用输入输出端口。

除作为一般的输入/输出功能外,还可以配置为中断和模拟 PWM、I2C 等接口功能。

RK3399 GPIO 属性如下:

1、一共有5组 GPIO(GPIO0~4) ,每组 GPIO 为一个 Bank ,共32个引脚。每个 Bank 包括4个 Group (GPIOA(0~7) ~ D(0~7)) 。不是所有 Bank 都有 GPIOA~D 的编号, RK3399 共122个 GPIO 引脚。

2、穗辩和所有 GPIO 都可被配置为 CA55或CA53 的中断功能,且 GPIO0 和 GPIO1 可用于系统低功耗唤醒模式。

3、在上电复位后,所有 GPIO 默认输入状态。

4、软件可配置 GPIO 驱动强度。

RK3399 引脚在系统中显示如下:

RK3399 GPIO 引脚号计算方式:

例:

以 ROCKPI 4A 单板 WIFI 模块电源( GPIO0_B2 )为例,介绍 DTS 中 GPIO 配置。

在系统启动后,可以查看 GPIO ,命令如下:

注:

如果debugfs没有挂载,使用下面命令挂载

Linux 内核 GPIO 主要实现文件:

GPIO 子系统有两套 API :

1、基于描述符(descriptor-based)

前缀为: gpiod_ 。

参考: Documentation/gpio/consumer.txt

2、老版本接口(legacy)

前缀为: gpio_ 。

参考: Documentation/gpio/gpio-legacy.txt

3、常用API

GPIO 还有很多接口,就不一一列举了。

RK3399 GPIO 控制器驱动实现文件: drivers/pinctrl/pinctrl-rockchip.c ,涉及主要函数:

所有 GPIO 子系统的 API 最终都会调到 SOC 的 GPIO 控制器驱动函数。

ROCKPi 4A 单板有个40个引脚的扩展口,引用 radxa 图片,见下图。

1、进入测试目录

2、猜盯导出GPIO

在使用 GPIO2_A7 前,需要导出该引脚。方法:配置 export 后,会出现 gpio71 节点。

测试时,注意不要使用在程序中已经申请过或配置为其它功能的 GPIO 引脚。

3、配置GPIO方向

设置 GPIO2_A7 的输入/输出方向。

in :表示输入。

out :表示输出。

active_low :用于中断配置中高电平或低电平有效。

edge :用于中断配置中上升沿或下降沿有效。

4、配置GPIO输出值

在 GPIO 为输入时,通过 value 查询 GPIO 的输灶链入电平(高或低电平)。

在 GPIO 为输出时,通过 value 配置 GPIO 的输出电平(高或低电平)。

5、查看GPIO

查看已经导出的 GPIO71 。

6、取消导出

使用完 GPIO2_A7 后,需要进行释放。方法:配置 unexport 后, gpio71 节点会消失。

要想让GPIO口输出PWM波形的话。有雹悔旁两种方案:第一种就是准备好GPIO驱动程序,然后应用程序通过read函数和write函数或者ioctl函数来 *** 前中作GPIO驱动程序,也就是让应用程序模拟PWM波形。第二种方案就是直接自己编写或者用源橡系统现成的PWM驱动程序,因为ARM处理器肯定有对应的pwm控制管脚,然后应用程序直接 *** 作PWM驱动程序就可以了,就不用做类似模拟pwm波形那样的 *** 作了。

热门频道

首页

博客

研修院

VIP

APP

问答

下载

社区

推荐频道

活动

招聘

专题

打开CSDN APP

Copyright © 1999-2020, CSDN.NET, All Rights Reserved

打开APP

linux恢复成裸设备,Linux下的裸设备研究(转) ---rawdevices 转载

2021-05-07 16:15:51

此号已死

码龄2年

关注

Linux平台下,缺省没有提供对磁盘设备的字符访问方式,必须通过配置rawdevices服务饥型雀,把块设备绑定到裸设备上才行,具体方法有3种。这3种方法创建裸设备的方式完全一样,区别在于对Oracle用户权限处理方法的不同。RHEL5推荐使用第3种方法

第一种方法:# vim /etc/sysconfig/rawdevices

/dev/raw/raw1 /dev/sdb1

/dev/raw/raw2 /dev/sdb2

#/etc/init.d/rawsdevices start

#chkconfig --level 235 rawdevices on 成功开启裸设备的标志为 # /etc/init.d/rawdevices status

/dev/raw/raw1: bound to major 8, minor 17

/dev/raw/raw2: bound to major 8, minor 18

为裸设备赋予权限# chown oracle:oinstall /dev/raw/raw1

/dev/raw/raw2

# ll /dev/raw/raw*

crw-rw---- 1 oracle oinstall 162, 1 Jan 22 14:09

/dev/raw/raw1

crw-rw---- 1 oracle oinstall 162, 2 Jan 22 14:12

/dev/raw/raw2 配置成功。

种方法的问题在租世于,虽然创建了裸设备,但是这些裸设备是在rawdevices服务启动时创建的,而rawdevices是以root用户身份运行的。因

此这些裸设备缺省的owner是root:root。烂早所以每次服务重启后都要重新修改这些设备的owner为oracle:oinstall.

第二种方法:

为了解决上述的问题,可以采用第二种方法。即用mknod提前创建出一个字符方式访问的文件,然后在文件绑定到块设备上,并把该文件的owner设置为oracle,因为这个文件是手工创建的,所以这个文件的owner不会被修改# mknod /oradata c 162 1

# chown oracle:oinstall /oradata

# vim /etc/sysconfig/rawdevices

/oradata /dev/sdd2 #/etc/init.d/rawsdevices

start

#chkconfig --level 235 rawdevices on 第三种方法:

使用udev管理设备的权限#vim

/etc/udev/rules.d/50-udev.rules KERNEL=="raw[0-9]*",MODE="0660",GROUP="oinstall",OWNER="oracle",NAME="raw/%k"

# vim /etc/sysconfig/rawdevices

/dev/raw/raw1 /dev/sdb1

/dev/raw/raw2 /dev/sdb2

#/etc/init.d/rawsdevices start

#chkconfig --level 235 rawdevices on 参考至:《大话Oracle RAC》张晓明著

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:czmcj@163.com

相关资源:Linux裸设备相关命令_设备退出,怎样添加上-Linux文档类资源-CSDN...

文章知识点与官方知识档案匹配

CS入门技能树Linux入门初识Linux

26057 人正在系统学习中

打开CSDN APP,看更多技术内容

...及 还原至裸设备状态_胖胖胖胖胖虎的博客_linux磁盘...

Linux添加磁盘、挂载 及 还原至裸设备状态 磁盘划分区 [hadoop@hadoop03 ~]$sudofdisk-l Disk /dev/sda:42.9GB,42949672960bytes,83886080sectors Units=sectors of1*512=512bytes Sector size(logical/physical):512bytes /512bytes I...

继续访问

linux系统制作裸设备,在unix下和linux下创建裸设备总结_爱卡汽车的博 ...

4.链接裸磁盘: #ln -s /dev/raw/raw1 /oracle/oradata/dgdemo/temp.dbf 5.创建oracle的数据文件: create tablespace temp datafile '/oracle/oradata/dgdemo/temp.dbf' size 1000M reuse备注:如果使用LVM来创建LV类型的裸设...

继续访问

oracle 备份 裸设备,玩转裸设备的备份恢复

近期在linux下测试了数据的备份和恢复:1、裸设备的创建:在/etc/sysconfig/rawdevices 下添加如下:/dev/raw/raw1 /dev/sdb1 (100M)/dev/raw/raw2 /dev/sdb2 (120M)/dev/raw/raw3 /dev/sdb3 (130M)/dev/raw/raw4 /dev/sdb4 (150M)/dev/...

继续访问

SUSE Linux 10 配置裸设备(raw devices)

裸设备,是没有经过格式化的分区或磁盘,也叫裸分区(原始分区),不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写 *** 作。不经过文件系统的缓冲,是不被 *** 作系统直接管理的设备。由于跨过 *** 作系统管理,使得I/O效率更高。在基于SUSE Linux 10上安装Oracle 10g RAC的话,由于Oracle 10g 不支持将ocr与votingdisk 存放在ASM 磁盘中,因此,

继续访问

linux asm 裸设备,ASM+裸设备_铝单车上的镁男子的博客

通过gui程序安装数据库软件,然后在dbca创建数据库,数据文件放在asm磁盘上即可。 来自“ ITPUB博客 ” ,链接:http://blog.itpub.net/22123669/viewspace-678501/,如需转载,请注明出处,否则将追究法律责任。

继续访问

linux raw设备格式化,SUSE Linux 10配置裸设备(raw devices)_owl-ler...

SUSE Linux 10配置裸设备(raw devices) 裸设备,是没有经过格式化的分区或磁盘,也叫裸分区(原始分区),不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写 *** 作。不经过文件系统的缓冲,是不被 *** 作系统直接管理的设备...

继续访问

linux gpio设备驱动程序,嵌入式Linux设备驱动开发之:GPIO驱动程序实例-嵌入式系统-与非网...

11.3GPIO驱动程序实例11.3.1GPIO工作原理FS2410开发板的S3C2410处理器具有117个多功能通用I/O(GPIO)端口管脚,包括GPIO8个端口组,分别为GPA(23个输出端口)、GPB(11个输入/输出端口)、GPC(16个输入/输出端口)、GPD(16个输入/输出端口)、GPE(16个输入/输出端口)、GPF(8个输入/输出端口)、GPH(11个输入/输出端口)...

继续访问

linux内存给hdd当缓存,linux块设备加速缓存之bcache [转]

转载请注明出处:http://blog.csdn.net/liumangxiongbcache是linux内核块层cache。它使用类似SSD来作为HDD硬盘的cache,从而起到加速作用。HDD硬盘便宜并且空间更大,SSD速度快但更贵。如果能两者兼得,岂不快哉?bcache能做到。bcache使用SSD作为其他块设备cache。类似ZFS的L2Arc,但bcache还增加了写回策略,并且是与文件...

继续访问

linux裸设备详解,Linux裸设备管理详解_无敌道道的博客

裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。 字符设备:对字符设备的读写不需要通过OS的buffer。它不可被文件系统mount。

继续访问

linux创建裸磁盘,Linux上如何创建裸设备_一颗大球糖bobo的博客-CSDN博 ...

其中最关键的就是共享设备了,在一个独立硬盘上创建裸设备,作为OCR和Voting DISK甚至ASM的磁盘,下面就介绍一下,在Linux下面如何创建裸设备,也就是create raw device. 大致这么几个步骤: 1. Check iscsi has been autoenable...

继续访问

主线剧情02-ARM-Linux基础学习记录

对 Linux 的系统概念、Linux 文件系统、常用命令、Vim 使用、GCC、Make 与 Makefile 及其模板、ubuntu 包管理、换源等等等做一个大总结,对 ARM Linux 的编译工具链、应用、系统编译的流程做简单介绍,最后对 PC 与 嵌入式板 传输文件的方式做一个汇总。

继续访问

linux 块设备驱动实例,linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)...

块设备驱动的模型还是基本基于字符设备驱动的,可以简单理解为块设备仅仅增加了 *** 作缓冲区,对用户请求顺序进行队列重拍等等。字符设备驱动的相关分析可以查看本博客相关的博文。按照本博客的行文习惯,在具体分析块设备驱动代码之前,我们会从整体上了解一下研究对象的特征,以及用户空间的使用方法。下面我们就自己写一个小工具(可以读取Rom中任意一个物理扇区的内容)来分析一下高通的分区信息。在用户空间看到的块设备当然...

继续访问

linux asm 裸设备,为ASM生成裸设备_weixin_39980711的博客

在oracle推荐的存储机制中,ASM性能是比较好的,为了使用ASM存储,先需要为共享磁盘或者共享磁盘的分区生成裸设备,以下为裸设备生成相关记录。linux环境为linux AS 5.4。 1、裸设备,可以用共享磁盘或者共享磁盘中的分区来生成,这个相差不是很...

继续访问

linux创建裸磁盘,linux 使用裸设备创建表空间_射命丸咲的博客

TNS for Linux: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production 查看磁盘 [root@node1 ~]# fdisk -l Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders ...

继续访问

最新发布 linux设备模型:设备及设备节点创建过程分析

本篇分析设备的初始化及注册过程,包括设备与驱动绑定,设备与电源管理之间的联系、中断域的储存及物理设备之间的关系等等。这一篇内容较多,结合kobject、kset、class、bus等众多概念,也是从理论阶段转换为实际使用阶段的重要过程。 设备初始化阶段,创建kset容器结构对象devices_kset,用于设备的uevent(用户事件通知) *** 作。dev_kobj表示设备根对象,在它的基础上扩展(延伸)sysfs_dev_block_kobj("block") 块设备根对象和sysfs_dev_ch

继续访问

热门推荐 linux查看新增串口、USB设备,Minicom + Usb转串口

linux查看新增串口、USB设备,Minicom + Usb转串口注意:虚拟机环境下的ubuntu默认情况下是不能自动识别的,需要在虚拟机窗口右下角点击"Prolific USB-Serial Controller",然后选择"Connect(Disconnect from Host)",这样才能被ubuntu系统识别。查看新增串口、USB设备1)显示已经加载到内核中的模块的状态...

继续访问

Linux配置裸设备_黄宝康的博客

Linux配置裸设备 在配置Oracle10g RAC中,会遇到裸设备的配置,高版本的RAC,从11g开始,已经不支持了,在这里只是学习记录下。 裸设备是指通过字符方式访问的设备,这种设备在读写数据时不需要缓冲区,在Linux环境下默认不提供裸设备服务,...

继续访问

转 Linux块设备加速缓存bcache和dm-cache 使用SSD来加速服务器

转 Linux块设备加速缓存bcache和dm-cache 使用SSD来加速服务器

继续访问

【vbox】Linux安装Virtual Box虚拟机实践记录--编辑中

一、安装 1.进入virtualbox官网 https://www.virtualbox.org/ 2.点击download 方法一: 3.点击Linux distributions 4.向下翻至如图,并且进入同种框选页面 5.在/etc/yum.repos.d/目录下新建virtualbox.repo并写入如下内容 [virtualbox] name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - V.

继续访问

linux文件系统-文件的写与读

只有打开可文件以后,或者建立起进程与文件之间的连接之后,才能对文件进行读写。文件的读写主要是通过系统调用read和write来完成的,对于读写的进程,目标文件由一个打开文件号代表。 为了提高效率,稍微复杂一点的 *** 作系统对文件的读写都是带缓冲的,linux也不例外。像vfs一样,linux文件系统的缓冲机制也是它的一大特色。所谓缓冲,是指系统为最近的读写过的文件内容在内核中保留一份副本,以便当再次需要已经缓冲存储在副本的内容时不必再临时从设备上读入,而需要写的时候则可以先写到副本中,待系统较为空闲时再从副本

继续访问

DAVINCI DM365-DM368开发攻略——linux-2.6.32的移植

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zjbintsystem.blog.51cto.com/964211/768652 2012年的春节就这样过了,假期期间,在接到的大项目没有进展的情况下(团队的人都回家过年了),利用这三天深圳最冷的时间(5°C):1月25~27号,赶紧完成这篇文章的稿子,毕竟很长时间

继续访问

Linux-常用命令

3.1 概述 很多人可能在电视或电影中看到过类似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完成了窃取资料的任务。 Linux 刚出世时没有什么图形界面,所有的 *** 作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。可以说不会命令行,就不算会 Linux。 Linux 提供了

继续访问

linux设备模型:bus概念及pci_bus分析

bus(总线)是一种特殊的抽象框架,与class有着本质上的不同,class感觉上只是把一些核心组件聚集在一起,它主要为访问组件提供便利(如提供组件地址),而bus则是实实在在的功能性框架,它即可负责管理、维护驱动与设备之间的关系,也可作为主桥设备与硬件之间的访问通道等等。 如pci总线,当pci硬件设备插入卡槽后,首先通过pci_bus_type(pci总线 *** 作结构) 中的 pm(电源 *** 作结构) *** 作相关函数唤醒设备,然后通过pci_bus_match函数查找硬件设备是否被注册到驱动(通过pc

继续访问

Linux入职基础-3.1_了解proc目录文件(设备管理)

了解proc目录文件(设备管理)/proc 文件系统是一种内核和内核模块用来向进程(process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取有关进程的有用信息,在运行时访问内核内部数据结构、改变内核设置的机制。/proc 由内核控制,没有承载 /proc 的设备,它只存在内存当中,而不占用外存空间,对 /proc 进行一次 'ls -l' ...

继续访问

linux文件系统-文件系统的安装与拆卸

在一块设备上按一定的格式建立起文件系统的时候,或者系统引导之初,设备上的文件和节点都还是不可访问的。也就是说,还不能按一定的路径名访问其中特定的节点或文件(虽然设备是可访问的)。只有把它安装到计算机系统的文件系统中的某个节点上,才能使设备上的文件和节点成为可访问的。经过安装以后,设备上的文件系统就成为整个文件系统的一部分,或者说一个子系统。一般而言,文件系统的结构就好像一棵倒立的树,不过由于可能存在着的节点间的链接和符号链接不并不一定是严格的图论意义上的一棵树。最初,整个系统只有一个节点,那就是整个文件系统

继续访问

linux文件系统-访问权限与文件安全性

Unix *** 作系统从一开始就在其文件系统中引入了文件、访问权限等概念,并在此基础上实现了有利于提高文件安全性的机制。从那以后这些概念和机制就一直被继承下来并进一步得到改进和完善。即使在经过了很多年后的今天,而且在计算机系统的安全性已经成为一个突出问题的情况下,这一套机制仍然不失其先进性。尽管还存在一些缺点和需要进一步改进的地方,从总体上说还是瑕不掩瑜。与当今正在广泛使用的其他 *** 作系统相比,可以说Unix的安全性总的来说至少不会差于这些系统;如果考虑到近年来在Unix及linux中已经作出的改进以及不难作出的进

继续访问

[转]Linux块设备加速缓存bcache和dm-cache:使用SSD来加速服务器

dm-cache 与 bcache在 LSFMM 2013 峰会上,Mike Snitzer, Kent Overstreet, Alasdair Kergon, 和 Darrick Wong 共同主持了一个讨论,内容是关于两个彼此独立的块设备层缓存方案 —— dm-cache 和 bcache。 Snitzer 首先介绍了 3.9 kernel 引入的 dm-cache。这个方案使用率内核中的

继续访问

计算机 *** 作系统实验代码(6个实验)

计算机 *** 作系统实验代码,包括先来先服务FCFS和短作业优先SJF进程调度算法、时间片轮转RR进程调度算法、预防进程死锁的银行家算法、动态分区分配算法、虚拟内存页面置换算法、磁盘调度算法

linux将磁盘还原为裸设备

linux恢复成裸设备

写评论

评论

收藏

点赞

分享


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12552240.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存