linux驱动学习(十一)之看门狗

需要板子一起学习的可以这里购买(含资料):点击跳转

一、看门狗定时器功能

1、产生复位信号:当系统受到由于噪声或者干扰而造成系统死机,看门狗产生一个复位信号。

2、普通定时器:16bits定时器,产生周期性的中断信号

二、看门狗系统框图

设置计数值以每隔10S就会产生一个复位信号:

第一分频值:PCLK/256 ---> 255+1 ---->781250
第二次分频值:128 ----> 781250/128 -->6103
计数值:6103 * 10 ---> 61030 不能大于 65536(0-65535) 16bits

三、看门狗定时器相关的寄存器

1、WTCON(控制寄存器)

2、WTDAT(数据寄存器)

3、WTCNT(计数寄存器)

4、WTCLRINT(清中断寄存器)

四、编程

#define WDT_START  _IO('W',0)
#define WDT_KEEPALIVE  _IO('W',1)
#define WDT_STOP  _IO('W',2)static struct resource *gec6818_wdt_res = NULL;
static void __iomem *wdt_va_base = NULL; 
static void __iomem *wdt_va_con = NULL;//WDTCON  0XC0019000
static void __iomem *wdt_va_dat = NULL; //WDTDAT 0XC0019004
static void __iomem *wdt_va_cnt = NULL; //WDTCNT 0XC0019008
static void __iomem *wdt_va_clrint = NULL; //WTCLRINT 0XC001900C
static struct clk	*wdt_clock;
static unsigned long wdt_freq;long gec6818_wdt_ioctl(struct file *file, unsigned int cmd, unsigned long args)
{printk("gec6818_wdt_ioctl\n");switch(cmd){case WDT_START:printk("WDT_START\n");*(unsigned int*)wdt_va_con = (255<<8) | (3<<3) | (1<<2) | (1<<0);  //[15:8] [4:3] [2] [0]*(unsigned int*)wdt_va_con |= (1<<5); //开启看门狗功能break;case WDT_KEEPALIVE:*(unsigned int*)wdt_va_cnt = 0XEE66;break;case WDT_STOP:*(unsigned int*)wdt_va_cnt = 0;break;	default:return -ENOIOCTLCMD;/* No ioctl command */break;}return 0;
}//[2]
static struct file_operations gec6818_wdt_ops = {.owner = THIS_MODULE,.open = gec6818_wdt_open,.unlocked_ioctl = gec6818_wdt_ioctl,.release = gec6818_wdt_release,//当应用程序调用close时,执行驱动程序中的接口函数
};//[1] 定义混杂设备
static struct miscdevice wdt_misc = {.name = "wdt_drv",  //设备文件的名字.fops = &gec6818_wdt_ops,.minor = MISC_DYNAMIC_MINOR, //设置次设备号,MISC_DYNAMIC_MINOR --- 表示由系统动态分配一个次设备号
};
static int __init gec6818wdt_init(void) //执行insmod执行一次
{int ret;// char temp;printk("gec6818wdt_init\n");//[3] 注册混杂设备ret = misc_register(&wdt_misc);if(ret < 0){printk("misc_register error\n");ret = -EBUSY;goto misc_register_error;}//申请物理内存区gec6818_wdt_res = request_mem_region(0XC0019000,0x1000,"WDTC_MEM");if(gec6818_wdt_res == NULL){printk("request_mem_region error\n");ret = -EBUSY;goto request_mem_region_error;}//动态映射wdt_va_base = ioremap(0XC0019000,0x1000);if(wdt_va_base == NULL){printk("ioremap error\n");ret = -EFAULT;goto ioremap_error;}wdt_va_con = wdt_va_base + 0x00;wdt_va_dat = wdt_va_base + 0x04;wdt_va_cnt = wdt_va_base + 0x08;wdt_va_clrint = wdt_va_base + 0x0C;/***************给程序设置时钟源*********************/wdt_clock = clk_get(NULL, "pclk");if (IS_ERR(wdt_clock)) {ret = PTR_ERR(wdt_clock);goto err_map;}clk_enable(wdt_clock);wdt_freq = clk_get_rate(wdt_clock);printk("wdt_freq = %luHz\n",wdt_freq);nxp_soc_peri_reset_set(RESET_ID_WDT);nxp_soc_peri_reset_set(RESET_ID_WDT_POR);/**********************************************///给对应寄存器进行初始化*(unsigned int*)wdt_va_con = 0; //默认看门狗关闭*(unsigned int*)wdt_va_dat = 0XEE66;//61030 ---> *(unsigned int*)wdt_va_cnt = 0XEE66;*(unsigned int*)wdt_va_clrint = 0;return 0;err_map:ioremap_error:release_mem_region(0XC0019000,0x1000);gec6818_wdt_res = NULL;request_mem_region_error:misc_deregister(&wdt_misc);misc_register_error:return ret;	
}

觉得有帮助的话,打赏一下呗。。

           

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/347763.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能和机器学习的区别

目录 一、介绍人工智能 二、介绍机器学习 三、人工智能和机器学习的区别和联系&#xff1f; 一、介绍人工智能 先来说下人工智能&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff09;&#xff0c;英文缩写为AI&#xff0c;通俗来讲就是用机器去做在过去只有…

C++ bfS

岛屿的最大面积 . - 力扣&#xff08;LeetCode&#xff09; 1.刚开始mn又加了int 2.bfs里符合条件了&#xff0c;不push&#xff0c;&#xff0c;&#xff0c;在写什么几把 class Solution { public:int dx[4] {0, 0, 1, -1};int dy[4] {1, -1, 0, 0};bool vis[50][50];int…

AIGC之MetaHuman:HeyGen(基于AI驱动的视频生成平台+数字人)的简介、安装和使用方法、案例应用之详细攻略

AIGC之MetaHuman&#xff1a;HeyGen(基于AI驱动的视频生成平台数字人)的简介、安装和使用方法、案例应用之详细攻略 目录 HeyGen的简介 1、HeyGen是一款AI视频生成平台&#xff0c;它提供以下关键功能&#xff1a; HeyGen的安装和使用方法 1、使用方法 01创建或选择一个头…

pdf文件怎么改变大小?在线快速压缩pdf的方法

pdf作为一种常用的文件格式&#xff0c;使用这种文件类型的好处在于不仅拥有更好的兼容性&#xff0c;还可以设置密码来保证安全性&#xff0c;防止未授权用户查看内容&#xff0c;所以现在导出文件展示都会采用这种格式的来做内容展示。当遇到pdf文件过大问题时&#xff0c;想…

ping: www.baidu.com: 未知的名称或服务(IP号不匹配)

我用的是VMware上的Red Hat Enterprise Linux 9&#xff0c;出现了能联网但ping不通外网的情况。 问题描述&#xff1a;设置中显示正常连接&#xff0c;而且虚拟机右上角有联网的图标&#xff0c;但不能通外网。 按照网上教程修改了/etc/resolv.conf和/etc/sysconfig/network-…

MySQL密码自动过期配置

目录 一、密码自动过期 1、临时 2、永久 3、查看 4、账号设置 一、密码自动过期 登录数据库查看是否生效 mysql -u root -p #查看数据库账号状态 select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user; 1、passwo…

看了这面经,测开上岸不远了

前段时间和4位来自百度、美团、快手、滴滴的高级测开大厂学长学姐&#xff0c;进行了一场直播&#xff0c;负责解答24届春招补录&25届找实习同学的问题 当天直播时长达2个小时&#xff0c;对于如何找测开实习&#xff0c;需要怎么准备项目&#xff0c;简历怎么写&#xff…

GEE数据集——全球河流阻塞数据库 (GROD)1.1 版

全球河流阻塞数据库 (GROD) GROD v1.1&#xff08;文件名&#xff1a;GROD_v1.1.csv&#xff09;&#xff0c;即全球河流阻塞数据库 1.1 版&#xff0c;包含 30549 个人工识别的阻碍河流纵向流动的人为结构。谷歌地球引擎卫星地图上的所有河流障碍物都已在全球陆地卫星河宽&am…

Golang 依赖注入库Wire应用案例

文章目录 简介Github指南安装案例wire.NewSetwire.Buildwire.Bindwire.Structwire.Valuewire.InterfaceValue 简介 Go语言的依赖注入库Wire是由Google提供的一个代码生成工具&#xff0c;用于简化和自动化依赖注入过程。Wire主要通过生成代码来处理依赖关系&#xff0c;而不是…

炒币千万条,安全第一条,The First提示您:警惕账户风险,守护资产安全

随着区块链技术的飞速发展和数字资产的普及&#xff0c;越来越多的人选择进入加密货币的世界进行投资。与此同时&#xff0c;黑客和诈骗分子的手段也在不断升级&#xff0c;给投资者的账户安全带来了严峻挑战。 近期&#xff0c;交易所安全事件频发&#xff0c;有黑客和诈骗分子…

Hadoop3:MapReduce源码解读之Map阶段的Job任务提交流程(1)

3、Job工作机制源码解读 用之前wordcount案例进行源码阅读&#xff0c;debug断点打在Job任务提交时 提交任务前&#xff0c;建立客户单连接 如下图&#xff0c;可以看出&#xff0c;只有两个客户端提供者&#xff0c;一个是YarnClient&#xff0c;一个是LocalClient。 显然&a…

DevExpress WPF中文教程:Grid - 如何向项目添加GridControl并绑定到数据

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

知识付费平台功能模块详解

知识付费平台作为一种新兴的在线教育模式&#xff0c;以其用户需求导向的设计理念和便捷高效的学习方式&#xff0c;受到了广泛欢迎。这类平台汇集了职业技能、生活兴趣和人文社科等多领域的专业知识&#xff0c;并通过视频播放、在线问答、作业批改等工具和服务&#xff0c;助…

零售商为什么分析用户数据?盘点六大零售业用户分析常用模型

在当今这个数据驱动的时代&#xff0c;零售行业正面临着前所未有的机遇与挑战。随着消费者行为的日益多样化和市场竞争的不断加剧&#xff0c;零售商们迫切需要有效的方法来洞察市场动态&#xff0c;优化运营策略&#xff0c;并最终实现业务的持续增长。用户数据分析&#xff0…

DOS 命令

Dos&#xff1a; Disk Operating System 磁盘操作系统, 简单说一下 windows 的目录结构。 ..\ 到上一级目录 常用的dos 命令&#xff1a; 查看当前目录是有什么内容 dir dir d:\abc2\test200切换到其他盘下&#xff1a;盘符号 cd : change directory 案例演示&#xff1a;切换…

GEO ISP图像调试-PFC(蓝紫边校正)

目录 1、简单介绍 2、调试策略 3、输出结果 1、简单介绍 GEO中中调整图像蓝紫边可分为两步&#xff0c;第一步&#xff1a;调整蓝紫边检测区域&#xff0c;第二步&#xff1a;设置去蓝紫边强度。 2、调试策略 图1 该图像蓝紫边较严重 主要原因是由于蓝紫边检测不准导致的&…

使用GPT-soVITS再4060下2小时训练声音模型以及处理断句带来的声音模糊问题

B站UP主视频 感谢UP主“白菜工厂1145号员工”的“熟肉”&#xff0c;我这篇笔记就不展示整一个训练和推理流程&#xff0c;重点写的4060该注意的一些事项。如何解决断句模糊的问题&#xff0c;在本篇笔记的最末尾。 相关连接&#xff1a; 原项目github UP主的说明文档 1、训…

【全开源】JAVA短剧国际版源码支持H5+Android+IOS

&#x1f30d;探索国际版短剧源码&#xff1a;打造你的全球影视平台 &#x1f680;一、引言&#xff1a;短剧时代的崛起 在数字化快速发展的今天&#xff0c;短剧作为一种新兴的影视形式&#xff0c;凭借其紧凑的剧情和高效的观看体验&#xff0c;逐渐在全球范围内崭露头角。…

[ue5]建模场景学习笔记(5)——必修内容可交互的地形,交互沙(2)

1需求分析&#xff1a; 继续制作可交互沙子内容&#xff0c;前面我们已经让角色在指定区域留下痕迹&#xff0c;那么能否让区域移动起来&#xff0c;这样才能逐步满足角色走到哪里都能产生交互痕迹&#xff0c;满足更大的地图。 2.操作实现&#xff1a; 1.首先建立角色能产生…

5.4 安全策略和控制 方法实现探讨

安全策略概述: 定义 安全策略是一组规则和措施&#xff0c;旨在保护组织的信息和资产免受潜在的威胁和攻击。它的制定和实施需要考虑组织的特定需求和风险&#xff0c;并采取适当的措施来减少潜在的安全漏洞。安全策略的定义包括以下几个方面&#xff1a; 1. 目标和范围&…