当前位置:网站首页>imx6ull看门狗使用
imx6ull看门狗使用
2022-07-31 11:52:00 【szembed】
一、内部看门狗
1、内部看门狗使用说明
内部看门狗使用WDOG1,
复位输出控制选择WDOG1_B —— MX6UL_PAD_GPIO1_IO08__WDOG1_WDOG_B
注:该引脚正常使用时为高电平,当看门狗超时或系统重启后输出低电平,仅设备重新上电才能够恢复为高电平。


【IMX6ULL参考手册(11/2017 )——59.5.6.2 WDOG_B generation (P4087)】
2、设备树配置
2.1配置输出引脚电器属性
&iomuxc {
pinctrl-names = "default";
……
pinctrl_gpio1_wdg1: gpio1_wdg1_grp {
fsl,pins = <
MX6UL_PAD_GPIO1_IO08__WDOG1_WDOG_B 0x30b0
>;
};
……
};
2.2配置看门狗参数
&wdog1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio1_wdg1>;
fsl,ext-reset-output;
timeout-sec = <5>;
status = "okay";
};
fsl,ext-reset-output 开启复位输出
timeout-sec 设置看门狗超时复位时间,上述配置为5S
3、内核配置
Device Drivers --->
[*] Watchdog Timer Support --->
[*] Update boot-enabled watchdog until userspace takes over
<*> IMX2+ Watchdog

4、验证
4.1烧写内核与设备树,重启系统
4.2查看设备

其中/dev/watchdog0便是内部看门狗WDOG1
4.3编写应用测试
-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <string.h>
-
#include <unistd.h>
-
#include <fcntl.h>
-
#include <sys/ioctl.h>
-
#include <linux/types.h>
-
#include <linux/watchdog.h>
-
-
#define cst_str2(c1, c2) (((unsigned int)0 | \
-
(char)c2) << 8 | \
-
(char)c1)
-
-
-
int main(int argc, char *argv[])
-
{
-
int fd;
-
int flags;
-
int timeout =
10;
-
int dummy =
0;
-
-
fd =
open(
"/dev/watchdog0", O_WRONLY);
-
-
if (fd ==
-1) {
-
printf(
"Watchdog open fail.\n");
-
exit(
-1);
-
}
-
-
if (argc >
1) {
-
switch (
cst_str2(argv[
1][
0], argv[
1][
1]))
-
{
-
case cst_str2('-','s'):
-
if(argc > 2)
-
timeout =
atoi(argv[
2]);
-
ioctl(fd, WDIOC_SETTIMEOUT, &timeout);
-
printf(
"set timeout : %d\n", timeout);
-
break;
-
case cst_str2('-', 'g'):
-
ioctl(fd, WDIOC_GETTIMEOUT, &timeout);
-
printf(
"get timeout : %d\n", timeout);
-
break;
-
case cst_str2('-', 'e'): //使能看门狗
-
flags = WDIOS_ENABLECARD;
-
ioctl(fd, WDIOC_SETOPTIONS, &flags);
-
printf(
"Watchdog card enabled.\n");
-
break;
-
case cst_str2('-', 'd'): //禁用看门狗
-
flags = WDIOS_DISABLECARD;
-
ioctl(fd, WDIOC_SETOPTIONS, &flags);
-
printf(
"Watchdog card disabled.\n");
-
close(fd);
-
return
0;
-
break;
-
-
default:
-
printf(
"\
-
\t-s set timeout.\n\
-
\t-g get timeout.\n\
-
\t-d to disable.\n\
-
\t-e to enable.\n\
-
");
-
break;
-
}
-
}
-
-
while (
1) {
-
ioctl(fd, WDIOC_KEEPALIVE, &dummy);
//喂狗
-
sleep(
1);
-
}
-
}
二、外部看门狗
1、使用说明
imx6ull外部看门狗使用GPIO控制,利用GPIO输出高低电平保证看门狗芯片(CAT823TTDI-GT3 )不重启。

2、设备树配置
2.1配置输出引脚电器属性
&iomuxc {
pinctrl-names = "default";
……
pinctrl_gpio_wdog: gpio_wdg_grp {
fsl,pins = <
MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x010b0
>;
};
……
};
2.2配置看门狗参数
/ {
model = "Freescale i.MX6 ULL 14x14 EVK Board";
compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull";
……
watchdog {
compatible = "linux,wdt-gpio";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_wdog>;
gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
hw_algo = "toggle";
always-running;
hw_margin_ms = <1000>;
};
……
};
hw_margin_ms 电平反转周期
3、内核配置
Device Drivers --->
[*] Watchdog Timer Support --->
[*] Update boot-enabled watchdog until userspace takes over
<*> Watchdog device controlled through GPIO-line
[*] Register the watchdog as early as possible

4、验证
4.1烧写内核与设备树,重启系统
4.2查看设备

其中/dev/watchdog1便是外部看门狗设备,无需控制,GPIO1_IO01引脚每隔1000ms自动进行两次电平反转。

边栏推荐
- JVS函数公式使用场景介绍
- After Effects 教程,如何在 After Effects 中修复曝光不足的镜头?
- [Virtualization Ecological Platform] Platform Architecture Diagram & Ideas and Implementation Details
- 透过开发抽奖小程序,体会创新与迭代
- CameraToolUnity中两种摄像机的两种观察控制方式
- WebGL给Unity传递参数问题1: Cannot read properties of undefined (reading ‘SendMessage‘)
- Cloudera Manager —— 端到端的企业数据中心管理工具
- 连续变量离散化教程
- 拥抱趋势!阿里这套微服务开源框架权威手册,实战到底层细致清晰
- strings包详细文档+示例
猜你喜欢

无法将“node.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

生信周刊第38期

MySQL 行级锁(行锁、临键锁、间隙锁)

ApiPost is really fragrant and powerful, it's time to throw away Postman and Swagger

ApiPost 真香真强大,是时候丢掉 Postman、Swagger 了

透过开发抽奖小程序,体会创新与迭代

一、excel转pdf格式jacob.jar

台达PLC出现通信错误或通信超时或下载时提示机种不符的解决办法总结

CoCube群机器人预览→资讯剧透←

In PLC communication error or timeout or download the prompt solution of the model
随机推荐
第十二章 使用中的 OpenAPI 属性
Docker practical experience: Deploy mysql8 master-slave replication on Docker
淀粉与纤维素
结构化查询语言SQL-关系数据库标准语言
MySQL 行级锁(行锁、临键锁、间隙锁)
三层架构service、dao、controller层
Three-tier architecture service, dao, controller layer
在 Excel 里使用 ODBC 读取 SAP BTP 平台上 CDS view 的数据
[Go Affair] See through Go's collections and slices at a glance
IDEA configure method annotation automatic parameters
CWE4.8 -- The 25 most damaging software security issues in 2022
如何正确地把服务器端返回的文件二进制流写入到本地保存成文件
【虚拟化生态平台】平台架构图&思路和实现细节
给你一个大厂面试的机会,你能面试上吗?进来看看!
SAP Commerce Cloud Product Review 的添加逻辑
Data Persistence Technology - MP
LeetCode - 025. 链表中的两数相加
Acwing第 62 场周赛【未完结】
VBA输出日志到工作簿demo
学习爬虫之Scrapy框架学习(1)---Scrapy框架初学习及豆瓣top250电影信息获取的实战!
