英特尔芯片组-GPIO编程

用户名

从规范中,我知道以下信息:

JGPIO1 PIN# :10

SoC GPIO # : 71 

USE select: IO 0x532[7] ( 0 = native function, 1 = GPIO )

IO select: IO 0x536[7] (0 = output, 1 = input )

Level: IO 0x540[7] ( 0 = low, 1= high )

在这种情况下,我要对GPIO引脚#10进行编程。是否可以参考任何示例或示例代码?

我可以通过RW-everything [1]做到这一点但是,这是在Windows中。

我想在C和linux环境中执行此操作。

请指教。

================================================== =============

例如,如果我要设置

0x532处的第7位为1

0x536处的第7位为0

在0x540处,第7位为1。

锯末

在Linux用户空间中,用于访问GPIO的典型方法是通过/ sys伪文件系统(也称为sysfs)。这提供了某种可移植的接口,该接口试图最小化硬件依赖性并避免与设备驱动程序发生冲突。

要确定您要在板上访问的GPIO编号,您必须查阅SoC文档。/ sys / class / gpio /中的目录名称需要与其硬件寄存器对应的名称进行标识。这些目录名称的格式为gpiochip N,其中N表示该寄存器中的基本GPIO号。文件gpiochipN / label应该有助于识别寄存器,例如通过其(内存或端口)地址。

请注意,N可能不会以0开头。IntelBayTrail系统可能将gpiochip82作为其第一个目录,因此编号最小的GPIO将为82。应将寄存器的位号添加到基数中以获得GPIO号。

有关正式文档,请参阅Sysfs Userspace接口

我可以通过RW-everything 1做到这一点但是,这是在Windows中。

可以编写类似的程序在Linux下执行。但是,Linux程序(与以x86为中心的Windows不同)应该可以移植到其他体系结构,因此这种需要了解底层硬件详细信息的程序几乎不可能编写/维护。设备驱动程序的一个目的是隔离/模块化此类硬件详细信息,而此类程序正试图规避那些驱动程序!

另外,使用这样的程序可能会使系统不稳定或出现故障。在正在运行的系统上,对内存和/或设备寄存器进行处理是不安全的。FWIW我编写了一个实用程序,该实用程序报告一个特定SoC的引脚配置,但只读取寄存器,而从不修改任何设置。

请注意,大多数SoC文档(以及Linux)都将引脚控制和配置视为与GPIO分开的子系统(但如果不重叠则紧密相关)。引脚控制和配置通常包括:

  • 多路复用引脚以实现不同的外设/功能,
  • 方向性(即输入或输出),
  • 连接上拉或下拉电阻,
  • 输入过滤(即去毛刺),
  • 输出驱动器(例如漏极开路),以及
  • 中断控制。

GPIO子系统通常处理:

  • 方向性
  • 引脚状态,以及
  • 中断控制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在英特尔编程?

来自分类Dev

在英特尔的Z87芯片组上构建降级的RAID 1?

来自分类Dev

英特尔芯片组Q75支持GTX 960吗?

来自分类Dev

“英特尔图形”如何在微处理器和芯片组之间划分?

来自分类Dev

将三星 EVO 980 从英特尔更换为 AMD 芯片组

来自分类Dev

安装图形卡驱动程序:“ ATI RV370上的Galium 0.4”和“移动式英特尔®GM45 Express芯片组”

来自分类Dev

对于Intel cpu来说,如果芯片组和主板也来自英特尔,那么它将提供最佳性能。是真的吗

来自分类Dev

安装图形卡驱动程序:“ ATI RV370上的Galium 0.4”和“移动式英特尔®GM45 Express芯片组”

来自分类Dev

如何通过 C# 中的英特尔图形以编程方式更改屏幕亮度

来自分类Dev

带有集成英特尔图形芯片的Linux上的OpenCL

来自分类Dev

较旧游戏的着色器未被较新的英特尔图形芯片识别

来自分类Dev

英特尔虚拟化技术未出现在明显受支持的芯片上

来自分类Dev

多个蓝牙芯片组?

来自分类Dev

无线卡芯片组

来自分类Dev

选择新的笔记本电脑进行编程:Lenovo g500(英特尔GPU)或lenovo g580(专用GPU)

来自分类Dev

芯片组中的多排芯片

来自分类Dev

英特尔Edison模块

来自分类Dev

英特尔XDK + jsPDF

来自分类Dev

英特尔SSD术语

来自分类Dev

英特尔Nextbook降级

来自分类Dev

英特尔XDK信息

来自分类Dev

英特尔x86组装-读取和复制进位标志

来自分类Dev

英特尔8086组件:加/减数量非常大?

来自分类Dev

在英特尔 FPGA 上如何安排 OpenCL 工作组?

来自分类Dev

避免芯片组受到检查

来自分类Dev

芯片组和主板之间的区别

来自分类Dev

Nouveau安装时未知的芯片组

来自分类Dev

Broadcom芯片组TX电源

来自分类Dev

FASM是否使用英特尔语法?

Related 相关文章

  1. 1

    在英特尔编程?

  2. 2

    在英特尔的Z87芯片组上构建降级的RAID 1?

  3. 3

    英特尔芯片组Q75支持GTX 960吗?

  4. 4

    “英特尔图形”如何在微处理器和芯片组之间划分?

  5. 5

    将三星 EVO 980 从英特尔更换为 AMD 芯片组

  6. 6

    安装图形卡驱动程序:“ ATI RV370上的Galium 0.4”和“移动式英特尔®GM45 Express芯片组”

  7. 7

    对于Intel cpu来说,如果芯片组和主板也来自英特尔,那么它将提供最佳性能。是真的吗

  8. 8

    安装图形卡驱动程序:“ ATI RV370上的Galium 0.4”和“移动式英特尔®GM45 Express芯片组”

  9. 9

    如何通过 C# 中的英特尔图形以编程方式更改屏幕亮度

  10. 10

    带有集成英特尔图形芯片的Linux上的OpenCL

  11. 11

    较旧游戏的着色器未被较新的英特尔图形芯片识别

  12. 12

    英特尔虚拟化技术未出现在明显受支持的芯片上

  13. 13

    多个蓝牙芯片组?

  14. 14

    无线卡芯片组

  15. 15

    选择新的笔记本电脑进行编程:Lenovo g500(英特尔GPU)或lenovo g580(专用GPU)

  16. 16

    芯片组中的多排芯片

  17. 17

    英特尔Edison模块

  18. 18

    英特尔XDK + jsPDF

  19. 19

    英特尔SSD术语

  20. 20

    英特尔Nextbook降级

  21. 21

    英特尔XDK信息

  22. 22

    英特尔x86组装-读取和复制进位标志

  23. 23

    英特尔8086组件:加/减数量非常大?

  24. 24

    在英特尔 FPGA 上如何安排 OpenCL 工作组?

  25. 25

    避免芯片组受到检查

  26. 26

    芯片组和主板之间的区别

  27. 27

    Nouveau安装时未知的芯片组

  28. 28

    Broadcom芯片组TX电源

  29. 29

    FASM是否使用英特尔语法?

热门标签

归档