首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    驱动GPIO操作总结

    笔者使用的S5PV210是IO与内存统一编址的,在裸机中直接操作IO端口的物理地址,而在驱动中必须使用虚拟地址。直接基于IO的虚拟地址用指针解引用的方式来读写有两种方式,静态映射和动态映射。...考虑到GPIO作为硬件资源,存在着被多个驱动使用,还有复用的问题,所以内核提供了GPIO驱动gpiolib框架来统一管控GPIO资源,gpiolib在内核中作为一个驱动所实现。...框架 对外接口的标准头文件为linux/gpio.h,其中根据是否定义CONFIG_GENERIC_GPIO宏来判断是否支持gpiolib。...gpiolib的代码实现在driver/gpio/gpiolib.c路径下。...gpio) #define gpio_get_value __gpio_get_value gpio: gpio编号,相关宏定义在linux/gpio.h中 返回值: 获取的值 使用示例 if (gpio_request

    94420

    05_GPIO子系统层次与数据结构

    资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...GPIO子系统的层次 1.1 层次 1.2 GPIOLIB向上提供的接口 descriptor-based legacy 说明 获得GPIO gpiod_get gpio_request gpiod_get_index...gpio_free gpiod_put gpio_free_array gpiod_put_array devm_gpiod_put devm_gpiod_put_array 1.3 GPIOLIB...需要提供函数,设置引脚方向、读取/设置数值 需要提供函数,把引脚转换为中断 以Linux面向对象编程的思想,一个GPIO Controller必定会使用一个结构体来表示,这个结构体必定含有这些信息: GPIO...2.3 gpio_desc 我们去使用GPIO子系统时,首先是获得某个引脚对应的gpio_desc。 gpio_device表示一个GPIO Controller,里面支持多个GPIO。

    80830

    Linux中gpio接口的使用方法示例

    前言 Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0~MAX_INT之间的整数标识,...不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎么使用使用gpio...使用gpio接口需要包含#include ,在驱动中使用延时函数mdelay,需要包含#include 文件,Documentation/gpio.txt...IRQ_TYPE_EDGE_FALLING); } else { set_irq_type(gpio_to_irq(sw->gpio), IRQ_TYPE_EDGE_RISING); } } 参考文章 Linux...中的gpio口使用方法 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn的支持。

    2.6K53

    Linux内核设备树覆盖(Device Tree Overlay)原理和使用场景

    Linux内核设备树覆盖(Device Tree Overlay)入门前言本文基于Linux kernel 5.15版本进行说明,旨在解析Linux设备树覆盖(Device Tree Overlay,...应用场景举例:假设一个硬件平台在V1版本时使用了A器件,而在V2版本中,该器件被更新为B设备。...如果平台软件团队只维护一套Linux代码库,通过使用设备树覆盖,可以根据硬件版本动态选择合适的.dtbo文件,从而使同一套代码同时满足V1和V2硬件版本的需求,极大地增加了项目的灵活性和可维护性。...gpiolib.c4395 WARN_ON(of_reconfig_notifier_register(&gpio_of_notifier)); in gpiolib_dev_init()spi.c4344...这三个函数涉及到Linux设备模型,在后续的文章会继续介绍。

    1.2K60

    08_调试与使用虚拟的GPIO控制器

    目录 资料下载 视频观看 调试与使用虚拟的GPIO控制器 1. 硬件功能 2. 编写设备树文件 3. 上机实验 3.2 编译、替换设备树 3.3 编译、安装驱动程序 4....STM32MP157上的bug 百问网技术交流群,百万嵌入式工程师聚集地: https://www.100ask.net/page/2248041 资料下载 coding无法使用浏览器打开,必须用git...工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git 视频观看 百问网驱动大全 调试与使用虚拟的...硬件功能 假设使用这个虚拟的GPIO Controller的pinA来控制LED: 2....96.297803] get pin 1, it's val = 0 [ 96.312604] get pin 1, it's val = 0 cat value这个操作,会导致驱动drivers/gpio/gpiolib-sysfs.c

    62140

    LinuxLinux调试器-gdb使用

    前言 在前面的博客【Linux】编译器-gcc/g++使用已经分享了关于编译器的使用,而编译器的使用离不开调试,这次就来分享一下Linux调试器-gdb使用。 2....使用 3.1 进入gdb 默认系统中会安装gdb,使用方法就是gdb后面直接加上调试的可执行程序名: gdb myprocess-debug 就会默认进入到调试模式 想要退出就直接输入quit或者...如果想要从程序第一行开始查就用命令: l 0 还可以使用l加程序名再加0的方式 l myprocess.c:0 不可以直接查文件,但是加上行号就可以查。...进入到函数体里面就退不出来 如果想要跳转到某一行,就用到命令: until 试一下跳转到12行: 总结一下gdb使用就是: set var:修改变量的值 把指定变量直接修改为目标值

    16310

    Linux Deploy:使用Repository部署Linux系统

    文章更新   20170408 初次成文 问题提出:   在之前的文章中,小苏为大家介绍过使用常规方式和使用镜像方式部署Linux系统的方法,但是这两种方法各有利弊:   使用常规方式部署时,镜像大小可以灵活调节...使用镜像方式部署Linux系统时,虽然可以免去部署时下载大量数据的麻烦,但是使用别人部署好的镜像,初始实现的功能依别人部署好的镜像而定,不能个性化定制系统,也不能调整镜像大小。   ...那就是先在Linux Deploy中部署和安装所需要的环境和软件包,然后使用Linux Deploy的导出功能,将Rootfs打包为tar.gz文件,之后,我们只需要将此tar.gz文件导入Linux...Deploy,就可以完整还原打包时的Linux系统了。...因为在Repository中,作者使用各发行版的官方软件源作为软件源,这样一来,一是服务器节点远离中国,软件包下载速度一般都很慢,二是在我国ipv6还未普及,使用官方软件源在部署过程中有一定几率解析到ipv6

    6.2K20

    Linux 之 crontab 使用

    定时任务 任务调度的crond常驻命令 crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。...而linux任务调度的工作主要分为以下两类: 1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存 2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信...Day 每月的第几天执行该任务 Month 每年的第几个月执行该任务 DayOfWeek 每周的第几天执行该任务 对于程序员来说最关注的莫过于使用示例...,通过示例可以一目了然的掌握如何使用定时任务 注意:在 crontab 命令中只有 “绝对路径”,不存在相对路径,故执行任何命令都需要写绝对路径 1、每小时的第5分钟执行 ls 命令 5 * * * *...对应的 mdd.toml 和 mdd.log 都是在 cd 到的目录下,此时就不需要全部写全目录了,如果不使用 cd 命令,最终的写法如下: 0 * * * * /data/GoProjects/bin

    2.9K20

    Linux终端的使用

    也就是说终端就是为主机提供了人机接口,每个人都通过终端使用主机的资源。 终端有字符终端和图形终端两种模式。...在linux的图形环境下,我们可以通过鼠标点击来完成所有的管理任务,这是图形界面终端,另外一种就是文本界面的终端,在这个界面的终端下我们可以使用linux命令来控制系统完成响应的工作,而这个文本终端也是服务器常用的模式...命令控制系统的工具,我们点击屏幕左上角的“活动”就可以找到这个它 打开之后我们会看到linux的命令行,在这里面我们可以输入linux命令来进行操作 第二种 打开文本终端,这个需要键盘上的组合键[Ctrl...] + [Alt] + [F1] - [F6] ,其中F1和F2是两个可供登录的图形终端,F3-F6为文本终端,现在我们使用[Ctrl] + [Alt] + [F3]打开文本终端,然后使用root用户登录...以上的快捷键都是在工作中可能会经常用到的,不论是在图形界面打开的终端还是字符界面的终端都可以使用,在这里面就不挨个演示了,各位可以在终端中使用任意字幕和空格模拟命令输入然后多多熟悉,尽快掌握。

    11.8K20

    Linux终端使用总结

    基础常识 ---- 使用 ls 命令显示文件或目录时的不同颜色:(一般情况下) 白色 —— 普通文件 蓝色 —— 目录 绿色 —— 可执行文件(相当于 Windows .EXE) 红色 ——...压缩文件 青色 —— 链接文件(相当于 Windows 快捷方式) 黄色 —— 设备文件 灰色 —— 其他文件 Linux 下的文件类型: 普通文件类型 (-) Linux 中最多的一种文件类型...引自 Linux 下的 7 种文件类型 - CYYZ 古月 ls -a 显示路径下全部文件(包括隐藏的) ls -l 查看路径下文件的详细信息 tip:在 Linux 下文件夹(目录...)所占用的磁盘空间都是 4096byte,目录大小不包括目录内的文件大小 目录必须有执行权限才能进入 Linux 下隐藏文件以。...gzip 和 bzip2 默认都不保留源文件,只有 bzip2 可以加 - k 参数保留源文件 # 进阶工具 tar —— 不使用 z/j 参数,该命令只能对文件或目录打包 参数: c —— 创建

    11.3K30

    linux shell快速使用

    (1) who是查看当前谁登录了linux系统 |是在两个程序之间建立一个管道, who | wc -l who的输出成为了wc 的输入 当然也可以自己创建linux的命令,创建一个文件,赋值给其执行的权限...x ,当然也可以直接在脚本中使用set -x 来打开执行跟踪的功能,使用set +x 来关闭执行跟踪功能 ctrl +a 快速切换命令到行首 ctrl + e 快速切换命令到行尾 (2)查找与替换...sed 命令进行替换 's;被替换值;要替换的值;'使用s后紧跟的界定符分割; 如果末尾是以g结尾则会进行全局替代,当然在后面添加数字代表替代哪一个,使用p结尾代表是否打印 当然可以将替换的命令放入脚本中使用...; anonuid/anongid :要和root_squash 以及 all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid...启动完NFS后,就该使用NFS服务了。

    1.3K10

    Linux 之 crontab 使用

    定时任务 任务调度的crond常驻命令 crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。...而linux任务调度的工作主要分为以下两类: 1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存 2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信...Day 每月的第几天执行该任务 Month 每年的第几个月执行该任务 DayOfWeek 每周的第几天执行该任务 对于程序员来说最关注的莫过于使用示例...,通过示例可以一目了然的掌握如何使用定时任务 注意:在 crontab 命令中只有 “绝对路径”,不存在相对路径,故执行任何命令都需要写绝对路径 1、每小时的第5分钟执行 ls 命令 5 * * * *...对应的 mdd.toml 和 mdd.log 都是在 cd 到的目录下,此时就不需要全部写全目录了,如果不使用 cd 命令,最终的写法如下: 0 * * * * /data/GoProjects/bin

    3.5K20
    领券