linux 外部GPIO Watchdog驱动适配

前言

文章描述, 利用外部gpio看门狗芯片驱动芯片的复位功能。
芯片:RK3568
平台: Linux ubuntu.lan 4.19.232 #27 SMP Sat Sep 23 13:43:49 CST 2023 aarch64 aarch64 aarch64 GNU/Linux

硬件接线图示

在这里插入图片描述
看门狗芯片采用GPIO喂狗,WDI狗输入GPIO脉冲信号, 如果再1.6s内无脉冲电平变化, 那么产生RESET 信号, 看门狗模块会对芯片进行复位。
具体描述可看设备规格书:C6860_监控和复位芯片_SP706SEN-L-TR_规格书_MAXLINEAR监控和复位芯片规格书.PDF
在这里插入图片描述

DTS 配置

在这里插入图片描述
使用通用GPIO驱动 “linux,wdt-gpio” , 算法属性设置toggle模式, 边界模式设置: 1000 , 进行1s喂狗。
驱动代码位置:/kernel/drivers/watchdog/gpio_wdt.c

menuconfig

在这里插入图片描述
驱动支持GPIO WDT。 按上述进行路径配置即可

测试验证

在这里插入图片描述

您好!对于在Linux上使用Qt编写GPIO驱动,您可以按照以下步骤进行操作: 1. 首先,确保您的系统已经配置了GPIO驱动。如果没有,请参考相关文档来完成配置。 2. 在Qt项目中,使用QProcess类或者编写一个简单的shell脚本来调用GPIO命令行工具,如gpiogpiod等。这些工具可以用来读取和设置GPIO引脚的状态。 3. 在Qt代码中,使用QIODevice类来读取和写入GPIO设备文件。这些设备文件通常位于/sys/class/gpio目录下,每个GPIO引脚都有一个对应的文件。 例如,要设置GPIO引脚为输出模式并设置高电平,可以使用以下代码片段: ```cpp QFile gpioExportFile("/sys/class/gpio/export"); if (gpioExportFile.open(QIODevice::WriteOnly)) { gpioExportFile.write("gpio123"); // 替换为目标GPIO引脚号 gpioExportFile.close(); } QFile gpioDirectionFile("/sys/class/gpio/gpio123/direction"); if (gpioDirectionFile.open(QIODevice::WriteOnly)) { gpioDirectionFile.write("out"); gpioDirectionFile.close(); } QFile gpioValueFile("/sys/class/gpio/gpio123/value"); if (gpioValueFile.open(QIODevice::WriteOnly)) { gpioValueFile.write("1"); gpioValueFile.close(); } ``` 4. 根据需要,您可以使用信号与槽机制来实现GPIO状态的监测和更新。 请注意,GPIO驱动的具体实现可能因您使用的硬件平台和Linux发行版而有所不同。因此,您需要根据您的具体情况进行相应的调整和修改。此外,确保以root权限运行您的应用程序,以便具有对GPIO设备文件的访问权限。 希望这些信息能对您有所帮助!如果您有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的蕉尼基

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值