首页 > 系统相关 >在Linux中使用GPIO线【ChatGPT】

在Linux中使用GPIO线【ChatGPT】

时间:2023-12-11 15:45:00浏览次数:29  
标签:驱动程序 ABI 用户 内核 Linux GPIO ChatGPT

在Linux中使用GPIO线

Linux内核的存在是为了将硬件抽象化并呈现给用户。GPIO线通常不是面向用户的抽象。使用GPIO线的最明显、自然和首选方式是让内核硬件驱动程序处理它们。

对于任何您想要编写的其他内核驱动程序的示例,可以参考已经存在的通用驱动程序,这些驱动程序也将是很好的示例,参见使用GPIO的子系统驱动程序。

对于任何您想要支持的大规模生产系统,例如服务器、笔记本电脑、手机、平板电脑、路由器以及任何使用适当内核驱动程序的消费品、办公用品或商业产品都是至关重要的。当您觉得代码足够成熟时,可以将其提交给上游Linux内核以获取帮助进行改进,参见提交补丁:将您的代码纳入内核的基本指南。

在Linux中,GPIO线还具有用户空间ABI。

用户空间ABI适用于一次性部署。例如原型、工厂生产线、创客社区项目、车间样本、生产工具、工业自动化、PLC类型用例、门控制器,简而言之,一种需要操作员对设备有深入了解并了解软件硬件接口设置的专用设备。它们不应该自然适用于任何现有的内核子系统,也不适合操作系统,因为它们不够可重用或抽象,或涉及大量与计算机硬件无关的策略。

有充分理由从用户空间使用工业I/O(IIO)子系统的应用程序很可能也适合从用户空间使用GPIO线。

绝对不要滥用GPIO用户空间ABI来在任何产品开发项目中采取捷径。如果您用于原型设计,那么不要将原型产品化:请使用适当的内核驱动程序进行重写。绝对不要在任何情况下使用GPIO从用户空间部署任何统一产品。

用户空间ABI是每个GPIO硬件单元(GPIO芯片)的字符设备。这些设备将出现在系统上,如/dev/gpiochip0到/dev/gpiochipN。如何直接使用用户空间ABI的示例可以在内核树的tools/gpio子目录中找到。

对于结构化和受控的应用程序,我们建议您使用libgpiod库。该库提供了辅助抽象、命令行实用程序和对同一GPIO芯片上的多个同时使用者的仲裁。

标签:驱动程序,ABI,用户,内核,Linux,GPIO,ChatGPT
From: https://www.cnblogs.com/pengdonglin137/p/17894570.html

相关文章

  • ChatGPT叫你如何在centos中配置javapath变量
    当使用vim编辑器时,你可以按照以下步骤来编辑bash配置文件:打开~/.bashrc文件:bashvim~/.bashrc或者,如果你选择在系统级别配置,可以使用:bashsudovim/etc/environment在vim中编辑文件:移动光标到文件末尾,按下i进入插入模式,然后添加以下行:bashexportJ......
  • GreatSQL登陆Arch Linux:成功的数据库安装之旅
    了解ArchLinuxArchLinux是一个轻量、灵活、基于x86-64架构的Linux发行版,遵循K.I.S.S.原则。注重代码正确、优雅和极简主义,期待用户能够愿意去理解系统的操作。1.简洁ArchLinux将简洁定义为:避免任何不必要的添加、修改和复杂增加。简单来说,archlinux是一个可以让用户自己动......
  • Linux基线安全检查脚本(很全)
    Linux安全基线加固点击关注......
  • Linux中连接端口命令有哪些?
    端口是计算机网络中一个应用程序或进程与外界通信的接口。通常用一个16位的数字来表示,范围从0到65535。而Linux操作系统在IT界有着广泛的应用,尤其是在服务器领域表现十分优异,成为了服务器的首选系统,其也提供了诸多命令帮助我们完成各种各样的工作,那么Linux中连接端口命令有哪些......
  • linux 多线程写同一个文件
    来自:https://blog.popkx.com/linux-multithreaded-programming-in-io-read-write-security-functions-pread-pwrite-and-read-write-what-is-the-difference-and-relat/ #include<unistd.h>ssize_tpread(intfd,void*buf,size_tcount,off_toffset);ssize_t......
  • Linux学习36- python3.9出现ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+
    遇到问题python3.9上安装requests库,requests包引入了urllib3,而新版本v2.x的urllib3需要OpenSSL1.1.1+以上版本所以就出现了报错File"/root/python39/lib/python3.9/site-packages/_pytest/assertion/rewrite.py",line186,inexec_moduleexec(co,module.__dict__......
  • Linux下删除当前目录下的所有文件夹及文件保留最新的几个文件夹及文件
    一、查找目录或文件1.1、查找指定文件夹和文件具体的示例:查找当前目录下指定文件夹和文件find./-maxdepth1-name"jobs"-o-name"config.xml"命令说明-maxdepth目录深度,1表示只搜索一级目录-name后面跟文件夹或文件,多个文件夹或文件,用-o组合连接jobs、config.xml指定的文......
  • Linux学习35- python3.9出现ModuleNotFoundError: No module named '_ctypes'的解决
    遇到问题pip安装第三方库的时候报错ModuleNotFoundError:Nomodulenamed'_ctypes'File"/usr/local/python3/lib/python3.9/ctypes/__init__.py",line7,in<module>from_ctypesimportUnion,Structure,ArrayModuleNotFoundError:Nomodulen......
  • [linux] [Centos8] 一台虚拟机的安装配置全过程
    今年7月的时候刚学linux,写过几篇配置,结果学得越多才发现已经过时了,这两天重装的时候被自己的文章搞晕了......
  • 万字长文专访“AI之父”Geoffrey Hinton: 我使用ChatGPT之后,为什么也开始害怕现在AI技
     “蜻蜓的幼虫就像水下的怪兽,”Hinton说。“它就像电影《异形》中的场景,蜻蜓从这个怪兽的背部破壳而出。幼虫经历了一个变成汤的阶段,然后蜻蜓就从这种汤中诞生。”在他的比喻中,幼虫象征着用于训练现代神经网络的数据;而蜻蜓则代表了由此诞生的敏捷的人工智能。深度学习——Hinto......