4 个版本
使用旧的 Rust 2015
0.3.0 | 2019 年 1 月 28 日 |
---|---|
0.1.2 | 2018 年 4 月 3 日 |
0.1.1 | 2017 年 11 月 21 日 |
0.1.0 | 2016 年 4 月 25 日 |
#2010 在 命令行工具 中
49KB
990 行
Linux GPIO 工具
GPIO 工具提供了对 Linux 系统上 GPIO 的便捷访问。该库构建在内核暴露的 sysfs 接口之上,并提供了大多数嵌入式系统所需的必备功能。
安装
要安装 gpio utils 的最新发布版本,请确保您已安装 Rust,然后运行
cargo install gpio-utils
特性
- 为系统中的 GPIO 提供名称的基础设施,这些名称映射到单个引脚。这些名称(除 GPIO 编号外)还可以与其他命令一起使用。
- 能够通过 GPIO "友好" 名称导出/取消导出 GPIO 并创建符号链接,使操作更简单。
- 能够设置每个引脚的输入/输出状态
- 能够设置每个引脚的激活低电平状态
- 能够通过引脚编号或名称(包括必要时临时导出)获取/设置 GPIO 值
- 能够阻塞等待引脚状态变化(带超时)
- 能够设置已导出 GPIO 的权限
系统集成
GPIO 工具提供了两个主要组件,可集成到最终系统中
gpio
命令。这提供了 GPIO 工具的核心功能,并且本身就是很有用的。gpio
初始化脚本/systemd 服务。这可以集成到目标系统中,并确保在系统启动时导出已配置的 GPIO(GPIO 命令搜索/etc/gpio.toml
和/etc/gpio.d/*.toml
配置)
GPIO 工具库建立在 Rust sysfs-gpio 库之上,该库可以独立于此项目使用。
GPIO 配置文件
GPIO 工具使用 TOML。配置有一定的灵活性,但以下示例展示了如何配置 GPIO 的基本方法。
#
# Example GPIO configuration (e.g. /etc/gpio.toml)
#
# The main configuration consists of zero or more pins, each of which may have
# the following keys:
#
# - `num`: Required. The GPIO number.
# - `names`: Required. One or more names for the GPIO
# - `direction`: Default: `"in"`. Must be either "in" or "out"
# - `active_low`: Default: `false`. If set to true, the polarity of the pin will
# be reversed.
# - `export`: Default: `true`. If true, this GPIO will be automatically
# exported when `gpio export-all` is run (e.g. by an init script).
# - `user`: User that should own the exported GPIO
# - `group`: Group that should own the exported GPIO
# - `mode`: Mode for exported directory
[[pins]]
num = 73 # required
names = ["reset_button"] # required (may have multiple)
direction = "in" # default: in
active_low = false # default: false (really means invert logic)
export = true # default: true
user = "root" # default: (OS Default - root)
group = "gpio" # default: (OS Default - root)
mode = 0o664 # default: (OS Default - 0o644)
[[pins]]
num = 37
names = ["status_led", "A27", "green_led"]
direction = "out"
# ...
实现说明
与许多其他现有解决方案不同,此项目是用 Rust(一种现代系统编程语言,与 C 的工作级别相同,但具有提供更高生产力和可靠性的类型系统)实现的,并力求以最小的开销运行。
贡献
贡献非常受欢迎。有关如何报告错误、提交更改、测试更改、获取支持等更多信息,请参阅CONTRIBUTING.md。
许可协议
根据以下任意一个许可协议授权:
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可协议定义,您有意提交给作品的所有贡献,都将按照上述方式双重许可,不附加任何额外条款或条件。
行为准则
对本软件包的贡献按照Rust 行为准则进行组织,本软件包的维护者、嵌入式 Linux 团队(Embedded Linux Team)承诺将介入以维护该行为准则。
依赖项
~8–18MB
~241K SLoC