2.NanoPi M1(全志H3)的GPIO控制总结(内核驱动)

2023-10-27

开发环境:VM+Ubuntu

编译环境:linux3.4

交叉编译工具:arm-linux-gcc 4.4.3

GPIO内核驱动程序链接:https://download.csdn.net/download/ddffyhg/11022291

用户应用程序链接:https://download.csdn.net/download/ddffyhg/11022286

注意:开发板的linux的版本和pc端Ubuntu的版本可以不一致,但是得与编译驱动的linux内核版本一致

开发板:linux 3.4

pc端下载的linux内核:/home/linux/Documents/lichee/linux3.4

1.物理连接如下:

硬件平台使用的是nanopi-m1,GPIO输出引脚对应的物理引脚是pin7

LED灯正极---------->PIN7(linux 213引脚)

LED灯负极---------->GND

2.在PC端lichee/linux3.4/drivers/char/目录下放置gpio的驱动文件gpio.c

3.修改Makefile文件,在文件末尾添加

obj-m            += gpio.o

4.在lichee目录下重新编译内核

./build.sh -p sun8iw7p1 -b nanopi-h3 -m kernel

编译成功后,在lichee/linux3.4/drivers/char/目录下会生成gpio.ko文件

5.将gpio.ko文件拷贝至开发板

gpio.ko文件为编译通过的驱动文件,app.c文件为对应的用户应用程序。

6.挂载内核模块:

insmod gpio.ko

查看内核模块列表:

lsmod

查看是否有设备节点:

ls /dev/gpio*

编译应用程序:

gcc -o app app.c

执行应用程序:

./app

运行结果:

由于手头没有LED灯,使用传感器的电源指示灯代替:

卸载内核模块:

rmmod gpio

实现GPIO内核驱动模块的控制功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2.NanoPi M1(全志H3)的GPIO控制总结(内核驱动) 的相关文章

  • Tensorflow运行机制

    TensorFlow是一种基于数据流图的编程框架 它使用数据流图来描述计算过程 其中节点表示操作 边表示数据流 从而实现了高效的分布式计算和自动求导 在TensorFlow中 计算过程分为两个阶段 构建阶段和执行阶段 在构建阶段 我们使用T
  • 达梦数据库-分区表维护

    分区表的维护主要有增加分区 删除分区 交换分区 合并分区 拆分分区 1 增加分区 添加一个新的分区 2 删除分区 删除一个就分区 3 交换分区 将分区数据跟普通表交换 2张表结构必须一样 4 合并分区 将临近的两个分区合并为一个分区 目前仅
  • 绘图中的渐变

    绘图渐变 指的就是在指定区域内 指定开始位置到指定结束为止 一种颜色颜色逐渐变成另一种颜色的图 qt中的渐变分为三个类别 1线性类别 QLinearGradient 2 角度渐变 QConicalGradient 3 辐射渐变 QRadia
  • Android Studio 给方法添加注释自动生成参数的快捷设置

    没有废话 直接上图 Android Studio gt File gt Setting gt Keymap gt 发现框输入comment gt 选择Other的Fix doc comment 2 选择 Add keyboard short
  • Videos from Embedded Linux Conference 2014

    本文转载至 http free electrons com blog elc2014 videos As the summer is coming to an end we finally managed to publish the vi
  • Kubernetes详解(二十)——ReplicaSet控制器

    今天继续给大家介绍Linux运维相关知识 本文主要内容是ReplicaSet控制器 一 ReplicaSet控制器概述 ReplicaSet控制器是Pod类控制器的一种实现 该控制器用于确保其管控的Pod对象副本数量在任意时刻都能够满足用户
  • XXE-lab(全踩坑)实录

    在bWAPP中有一关是XML External Entity Attacks XXE 传送门 比较简单的了解了一下XXE 师傅的博客 浅谈XML实体注入漏洞 XXE漏洞全称XML External Entity Injection即xml外
  • 解决Windows系统下VNC Viewer无法连接到远程主机上的VNC Server的问题

    问题如下 笔记本 IP 10 100 172 194 上装了VNC Viewer 台机 IP 10 100 100 103 上装了VNC Server 原本笔记本连接无线网 可以通过VNC远程连接到办公网的台机的桌面 自从台机重装了系统后
  • 去掉suse里ls默认显示隐藏文件的特性

    以root权限suse终端时 执行ls命令 隐藏文件 文件名以 开头 也都显示出来了 这一点 我是不太喜欢 既然是隐藏文件 一般情况下就不要出现 尤其是 root目录 一堆隐藏文件 很影响我查找文件 要去掉这个特性 先执行alias命令 一
  • arxiv文章下载很慢怎么办?

    对于我们这样的深度学习屌丝来说 没钱 没资源 没数据 没时间 只能看看别人的论文生存了 经常会到arxiv上下载一些文章 比如cvpr的文章 但是 由于国内封锁 下载很慢 甚至接连几天打不开arxiv的网站 咋办 强烈推荐使用中科院arxi
  • usb描述符以及传输方式

    lsusb命令 Bus 002 表示第2个usb主控制器 Device 002 表示系统给usb鼠标分配的设备号 ID 8087 8002 Intel Corp 表示usb设备的ID 这个ID由芯片制造商设置 可以唯一表示该设备 8087
  • 洛谷P5731 【深基5.习6】蛇形方阵

    include
  • 电脑itunes,iTunes

    Music TV and podcasts take center stage iTunes forever changed the way people experienced music movies TV shows and podc
  • 内存管理之分段与分页

    内存管理之分段与分页 转载自多名技术分享者 仅供参考 第一篇 要理解分段和分页 那么得理解为什么会出现分段和分页的技术 首先 这两个技术都是为了利用和管理好计算机的资源 内存 在分段这个技术还没有出现之前 程序运行是需要从内存中分配出足够多
  • 【Verilog】Verilog定义二维数组(2D Array)

    目录 定义的种类 第一种 赋值方法 第二种 赋值方法 第三种 赋值方法 定义的种类 首先看几组定义类型 第一种 定义一个位宽为8的 data1 reg 和 data2 wire 的变量 reg 7 0 data1 wire 7 0 data

随机推荐

  • java.io.IOException: InvalidResourceRequestException: Invalid resource request

    1 背景 做一次kylin计算选择mr进行计算cube 但是报错 首先是 这一报错 报错打开是 yarn上的原因为 2019 05 09 15 07 38 495 ERROR Thread 52 org apache hadoop mapr
  • R文本挖掘之五情感分析

    本文是转载 原文地址 CSDN R语言做文本挖掘 Part5情感分析 Part5情感分析 这是这个系列里面最后一篇文章了 其实这里文本挖掘每一个部分单拎出来都是值得深究和仔细研究的 我还处于初级研究阶段 用R里面现成的算法 来实现自己的需求
  • java 多线程 并发实例_java编程多线程并发处理实例解析

    本文主要是通过一个银行用户取钱的实例 演示java编程多线程并发处理场景 具体如下 从一个例子入手 实现一个银行账户取钱场景的实例代码 第一个类 Account java 账户类 package cn edu byr test public
  • ctfshow-Misc入门 图片篇(50-60)

    八神出的misc入门系列 misc57 59做的比较晚了 本来想着等解了misc61一块发wp的 忙着比赛和推免就忘了 今天看到群里有人用g4 的工具一把梭了才想起来这个事 misc61等能把原理讲清楚了再发 图片篇 图片篇 颜色通道 mi
  • 经典运放电路详细分析(模拟电子技术)

    运放电路 何为运放电路 由运算放大器组成的电路 简称为运放电路 这些电路可以说是五花八门 是我们学习模拟电子技术的一个重要内容 更是一个电子工程师必须掌握的电路之一 运放电路有多种类型 是不是我们把它们牢牢记住就行了呢 显然不是啦 作为知识
  • Excel打开csv文件时中文内容显示为乱码或问号的解决办法

    有同事遇到这样一个问题 就是打开csv文件后 里面的中文显示乱码或者问号 网上找了很久 没有找到有效的解决方法 改非Unicode编码 windows显示语言 office显示语言都没有用 随后自己研究了一下 发现只要改一个地方就可以正常显
  • JWT校验

    JWT JSON Web Token 的缩写 由三部分组成 Header 头部 Payload 负载 Signature 签名 随着技术的发展 分布式web应用的普及 通过session管理用户登录状态成本越来越高 因此慢慢发展成为toke
  • 特征选择和特征理解

    特征选择和特征理解 特征选择 排序 对于数据科学家 机器学习从业者来说非常重要 好的特征选择能够提升模型的性能 更能帮助我们理解数据的特点 底层结构 这对进一步改善模型 算法都有着重要作用 特征选择主要有两个功能 减少特征数量 降维 使模型
  • Java List与ArrayList

    目录 List的介绍 什么是List List的使用 ArrayList与顺序表 ArrayList简介 ArrayList的使用 ArrayList的常见操作 ArrayList的扩容机制 ArrayList的模拟实现 List的介绍 什
  • 安卓绕过隐藏api限制

    安全设置 出于测试目的 Google 内置了一种在给定 Android 设备上全局禁用隐藏 API 限制的方法 标题为如何启用对非 SDK 接口的访问的问题中链接中的部分 说如下 您可以通过使用以下 adb 命令更改 API 强制策略来启用
  • 云上城之个服务器维护时间,云上城之歌幻乐之城开服时间表_云上城之歌新区开服预告_第一手游网手游开服表...

    今日开服 15 00 三十八区苍炎之门 已经开服 2021 08 10 10 00 三十八区巨石林野 已经开服 2021 08 09 15 00 三十八区荧光要塞 已经开服 10 00 三十八区雷神圣所 已经开服 2021 08 07 10
  • springboot 读取配置报错java.lang.IllegalArgumentException: Could not resolve placeholder ‘xxx.xxx‘

    springboot 读取配置报错java lang IllegalArgumentException Could not resolve placeholder xxx xxx 代码中写的是 Value xxx xxx 由于配置文件中没有
  • 协同无法关闭的问题之一

    StartCoroutine 方法名 和StartCoroutine 方法名 是不一样的 用StartCoroutine 方法名 无法用StopCoroutine 方法名 关闭协同 但是StartCoroutine 方法名 就可以用Stop
  • spdlog同时输出到控制台和文件中,可设置文件大小及数目,define方式

    因为自己想要个题目那种效果的 又没找到很符合的博客 就整合了下大佬们的博客封了个 具体的内容都放到代码注释里了 我这个目前在windows下只能将log文件创建到exe所处的目录中 暂时仍未解决该问题 欢迎大佬指正 已解决 直接将文件名设置
  • acwing 博弈论 拆分-Nim游戏

    include
  • 安装最新版Calico

    准备calico yaml 进入calico网站 Install Calico networking and network policy for on premises deployments 找到 Install Calico gt K
  • Android 对data/data/(your packagename)目录下的数据读写、删除操作

    一 数据存储 App自身的数据存储在 data data packagename 目录下 大致结构如下图 Activity提供了getCacheDir 和getFilesDir 方法 getCacheDir getAbsolutePath
  • qt std::cout 中文乱码

    char out 输入操作 r n std cout lt lt out QString qOut 输入操作 r n std cout lt lt qOut toStdString std cout lt lt qOut toStdWStr
  • python3---情感分析(基于词典中文)

    写在前面 现有的情感分析比较常用的有两种 分别是基于词典的和机器学习 前者也属于非监督学习 后者自然一般属于监督学习 刚开始学情感分析 下面先从 基于词典的情感分析 开始进行 词典 我东搜西找找到了一些感觉是常用的字典 主要有 台湾大学NT
  • 2.NanoPi M1(全志H3)的GPIO控制总结(内核驱动)

    开发环境 VM Ubuntu 编译环境 linux3 4 交叉编译工具 arm linux gcc 4 4 3 GPIO内核驱动程序链接 https download csdn net download ddffyhg 11022291 用