当前位置: 首页 > news >正文

WDG看门狗

1 WDG

1.1 简介

WDG是看门狗定时器(Watchdog Timer)的缩写,它是一种用于计算机和嵌入式系统中的定时器,用来检测和恢复系统故障。

看门狗就像是一个忠诚的宠物狗,它时刻盯着你的程序,确保它们正常运行。如果程序因为设计上的小错误、硬件出了问题,或者受到了外界的干扰,导致程序卡住不动或者乱跑,看门狗就会立刻采取行动,让程序重新启动,防止它长时间处于无响应状态,这样就能保障系统的稳定和安全。

简单来说,看门狗就是一个特殊的计时器。它一旦开始计时,就需要程序在规定的时间内给它一个信号,告诉它一切都好。如果程序太忙了或者出了问题,没能在规定时间内给看门狗这个信号,看门狗就会自动启动一个重启程序,让系统回到正常状态。这个过程就像是给看门狗“喂骨头”,让它知道一切都在控制之中。如果没有按时“喂狗”,看门狗就会认为出了问题,然后采取行动。

1.2 主要功能与应用

  • 1.系统监控:监控系统运行状态,确保系统不会因软件故障而停止响应。

  • 2.防止死锁:如果程序进入无限循环,看门狗定时器可以检测到并重置系统。

  • 3.安全机制:在某些关键系统中,看门狗定时器可以作为一个安全机制,确保系统在异常情况下能够安全地重启。

1.3 分类

WDG(Watchdog Timer)看门狗通常分为以下几种类型:

  • 1.独立看门狗(Independent Watchdog, IWDG):独立于系统的其他部分运行,具有自己的时钟源,通常用于监视硬件错误。

  • 2.窗口看门狗(Window Watchdog, WWDG):与系统时钟相关联,具有一个时间窗口,在该窗口内必须重置计数器,否则会产生系统复位。主要用于监视软件错误。

  • 3.软件看门狗:由软件实现,依赖于操作系统的调度和运行环境,如果主程序卡死,软件看门狗可能无法触发重置。

  • 4.硬件看门狗:具有独立的硬件结构,即使主程序卡死,也能独立于软件运行并触发系统重置。

  • 5.周期性看门狗(AliveSupervision):监控周期性程序是否能正常执行,保证程序处于活跃状态。

  • 6.截止期限看门狗(DeadlineSupervision):监督软件在两个状态之间的转换时间,确保在预定时间内完成特定任务。

  • 7.逻辑看门狗(LogicalSupervision):监督软件执行顺序的正确性,确保程序按照预定逻辑运行。

这些看门狗类型可以根据不同的需求和应用场景进行选择和配置,以确保系统的稳定性和可靠性。

STM32中内置了两个看门狗:

  • 独立看门狗(Independent Watchdog, IWDG)

  • 窗口看门狗(Window Watchdog, WWDG)

2 IWDG

2.1 IWDG框图

在这里插入图片描述

  • 1.输入时钟LSI(40KHz),进入预分频器进行分频(8位,最多256分频,由预分频寄存器IWDG_PR控制分频系数)。

  • 2.时钟驱动递减计数器(每来一个时钟自减一个数,12位,最大值为4095),自减到0后产生IWDG复位信号。

  • 3.提前在重装载寄存器(IWDG_RLR)写一个值,在键寄存器(IWDG_KR)中写一个特定数据控制电路,进行喂狗,这时重装值就会复制到当前的计数器中。

  • 4.计数器回到重装值,重新自减运行。

预分频寄存器IWDG_PR、状态寄存器IWDG_SR(只读)、重装载寄存器IWDG_RLR、键寄存器IWDG_KR位于1.8V供电区;主要工作电路位于VDD供电区。

2.2 键寄存器IWDG_KR

键寄存器是IWDG系统中的核心控制组件,它的作用类似于一把精密的钥匙,用于精细调控看门狗的启动、寄存器的访问权限以及计数器的重载操作。

在嵌入式系统设计中,硬件电路可能会受到各种电磁干扰的影响,这些干扰有时会导致控制信号的误触发。为了避免这种情况,键寄存器采用了一种特殊的工作机制:通过在整个寄存器中写入一系列特定的值,而不是仅仅修改单个位,从而大大降低了因干扰而错误操作硬件电路的风险。

写入键寄存器的值作用
0xCCCC启动独立看门狗
0xAAAA将IWDG_RLR中的值重新加载到计数器(喂狗)
0x5555解除IWDG_RP与IWDG_RLR的写保护
0x5555之外的值启动IWDG_RP与IWDG_RLR的写保护

2.3 IWDG超时时间

超时时间 == TIWDG = TLSI × PR预分频系数 × (RL + 1)==

TLSI = 1/FLSI ,FLSI = 40KHz

在这里插入图片描述

例如:当预分频系数为4时,最短超时时间 = 1/40000 * 4 * 1 = 0.0001s = 0.1ms;最长超时时间 = 1/40000 * 4 * 4096 = 0.4096s = 409.6ms

在多个可选择的预分频系数中,应该优先选择预分频系数小的,这样可以最大化利用计数器的值来减小时间误差。
原因:有的时候,带入上面公式计算,得到的RL值是一个小数,但RL只能给整数,所以四舍五入取整就会造成误差,这时,如果预分频系数小,时钟快,那么取整后造成的误差就比较小。

3 WWDG

3.1 WWDG框图

在这里插入图片描述

  • 1.PCLK1时钟(默认36KHz)进入看门狗分频器WDGTB。

    PCLK1时钟进入到WDGTB之前会先进行了4096分频。

  • 2.分频之后的时钟驱动计数器(6位递减计数器)进行计数。

  • 3.当T6位等于0时,产生复位信号。

    T5~T0为有效计数值,T6用来当作溢出标志位,T6等于1时表示计数器没溢出,为0时表示计数器溢出。

    • 把T6当作计数器的一部分,整个计数器的值减到0x40(二进制:10 0000)之后溢出;

    • 把T6当作溢出标志位,低6位的计数值减到0后溢出。

WDGA:窗口看门狗的激活位(使能),为1启用窗口看门狗。

窗口看门狗的最晚界限由看门狗控制寄存器(WWDG_CR)控制;最早界限由看门狗配置寄存器(WWDG_CFR)控制。

3.2 WWDG工作特性

  • 一. 递减计数器T[6:0]的监控机制:

    • 当WWDG的递减计数器T[6:0]的值降至0x40以下时,系统将触发一个复位,以确保在预定的监控时间内系统能够正常响应。
  • 二.窗口值W[6:0]的作用:

    • 如果递减计数器T[6:0]在窗口值W[6:0]设定的范围之外被重新装载,WWDG将立即产生复位。这个特性确保了系统在预设的监控窗口内必须进行重置,以防止潜在的系统故障。

    喂狗时把当前计数值与预设的窗口值进行比较,如果T[6:0] > W[6:0] 就产生复位信号。

  • 三.早期唤醒中断(Early Wakeup Interrupt, EWI):

    • 当递减计数器T[6:0]的值达到0x40时,WWDG可以发出早期唤醒中断信号。这个中断允许系统及时重装载计数器,从而避免因计数器归零而触发的WWDG复位。

    1、早期唤醒中断中可以用来执行一些紧急操作,比如保持重要数据、关闭危险设备等。

    2、当超时喂狗时,我们可以在中断里执行一些代码进行解决,或者任务不是很危险,超时了只想做一些提示,可以在早期唤醒中断中直接执行喂狗,阻止系统复位,提示信息。

  • 四.维护WWDG的正常运行:

    • 为了防止WWDG因计数器归零而引发复位,系统必须定期向WWDG控制寄存器(WWDG_CR)写入新的值,这一操作通常被称为“喂狗”。这是确保系统稳定运行的重要维护步骤。

在这里插入图片描述

总结:喂狗太晚,6位计数器减到0了复位;喂狗太早,计数器的值超过窗口值了,复位。

3.3 超时时间

  • 超时时间:TWWDG = TPCLK1 × 4096 × WDGTB预分频系数 × (T[5:0] + 1)

    要乘一个4096是因为PCLK1时钟进入到WDGTB之前先进行了4096分频。

  • 窗口时间:TWIN = = TPCLK1 × 4096 × WDGTB预分频系数 × (T[5:0] - W[5:0])

  • TPCLK1 = 1 / FPCLK1

在这里插入图片描述

例如:超时时间为50ms,窗口时间为30ms,WDGTB预分频系数为8:

  • 超时时间:TWWDG = 50 * 10-3 = 1 / 36000 * 4096 * 8 * (T[5:0] + 1) -> T[5:0] = 54

  • 窗口时间:Twin = 30 * 10-3 = 1 / 36000 * 4096 * 8 * (T[5:0] - W[5:0]) -> W[5:0] = 21

4 软件设计

4.1 IWDG

4.1.1 配置流程:

  • 1.开启LSI时钟

  • 2.解除预分频器和重装寄存器写保护

  • 3.写入预分频和重装值

  • 4.启动看门狗

  • 5.喂狗

在喂狗或使能的时候,会在键寄存器写入5555之外的值,就顺便给寄存器写保护了,不需要再手动执行写保护。

4.1.2 IDWG软件设计

// main.c
/***** 1000ms ******/
void IWDG_Init(void)
{IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);IWDG_SetPrescaler(IWDG_Prescaler_16);IWDG_SetReload(2499);IWDG_ReloadCounter();IWDG_Enable();
}int main(void)
{USART_Config();if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST) == SET) {printf("\r\n -----------看门狗复位\r\n");Delay_ms(100);RCC_ClearFlag();}else{printf("\r\n -----------程序复位\r\n");}IWDG_Init();while(1){IWDG_ReloadCounter();printf("\r\n -----------IWDG_ReloadCounter\r\n");Delay_ms(900);}}
  • 如果看门狗不会自动复位,拔掉DAP之后再按复位键。

4.2 WWDG

4.2.1 配置流程

  • 1.开启窗口看门狗APB1的时钟

  • 2.配置各寄存器(预分频、窗口值)

    窗口看门狗没有写保护,所以可以在这一步直接写这些寄存器

  • 3.写入控制寄存器CR

包含看门狗使能位、计数器溢出标志位和计数器有效位

  • 4.在运行过程中,不断向计数器写入想要的重装值喂狗

4.2.2 WWDG软件设计

// main.c
void WWDG_Init()
{RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);WWDG_SetPrescaler(WWDG_Prescaler_8);/*** 设置窗口时间 ***/WWDG_SetWindowValue(0x40 | 21); // 低6位有效,第7位置1  	  30ms/*** 设置超时时间 ***/WWDG_Enable(0x40 | 54); // 0x40 WWDG_CR T6为1   		  50ms
}int main(void)
{USART_Config();if(RCC_GetFlagStatus(RCC_FLAG_WWDGRST) == SET) {printf("\r\n -----------窗口看门狗复位\r\n");Delay_ms(100);RCC_ClearFlag();}else{printf("\r\n -----------程序复位\r\n");}WWDG_Init();while(1){Delay_ms(40);WWDG_SetCounter(0x40 | 54);printf("\r\n -----------WWDG_SetCounter\r\n");}}

注意:

  • 1.在WWDG_ENABLE后注意不要喂狗,会导致复位。

  • 2.在开启窗口看门狗时,一定要给个重装值,并且T6位置1,以防止开的时候立刻就复位了。

    即使窗口看门狗被禁止,递减计数器仍继续递减计数。

5 IWDG与WWDG对比

IWDGWWDG
复位计数器减到0后计数器T[5:0]减到0后、在窗口时间外重装计数器
中断早期中断唤醒
时钟源LSI(40KHz)PCLK1(默认36KHz)
预分频系数4、8、16、32、64、128、2561、2、4、8
计数器12位(有效计数)6位
超时时间0.1ms~26214.4ms113us~58.25ms
喂狗方式写入键寄存器,重装固定值RLR直接写入计数器,写入多少重装值为多少
防误操作键寄存器和写保护
应用场合独立工作,对时间精度要求较低要求看门狗在精确计时窗口起作用

无论是独立看门狗还是窗口看门狗,一旦启动就无法关闭

相关文章:

WDG看门狗

1 WDG 1.1 简介 WDG是看门狗定时器(Watchdog Timer)的缩写,它是一种用于计算机和嵌入式系统中的定时器,用来检测和恢复系统故障。 看门狗就像是一个忠诚的宠物狗,它时刻盯着你的程序,确保它们正常运行。…...

zabbix server client 安装配置

Zabbix Server 采用源码包部署,数据库采用 MySQL8.0 版本,zabbix-web 使用 nginxphp 来实现。具体信息如下: 软件名 版本 安装方式 Zabbix Server 6.0.3 源码安装 Zabbix Agent 6.0.3 源码安装 MySQL 8.0.28 yum安装 Nginx 1.20…...

Unity关于Addressables.Release释放资源内存问题

前言 最近在编写基于Addressables的资源管理器,对于资源释放模块配合MemoryProfiler进行了测试,下面总结下测试Addressables.Release的结论。 总结 使用Addressables.Release释放资源时,通过MemoryProfiler检查内存信息发现加载的内容还在…...

运算放大器(运放)带宽和带宽平坦度

运算放大器带宽和带宽平坦度 电压反馈型运算放大器的带宽 下图1显示电压反馈型运算放大器的开环频率响应。有两种可能:图1A是最常见的情况,高直流增益以6dB/倍频程从极低频率下降至单位增益,也就是典型的单极点响应。相比之下,图…...

npm常用命令使用与事件案例

概述 npm(Node Package Manager)是一个JavaScript编程语言的包管理器,用于Node.js应用程序。它允许用户安装、共享和管理具有重复使用价值的代码(包),这些代码可以是库、工具或应用程序。 npm常用命令详解…...

Spring Boot中的定时任务调度

Spring Boot中的定时任务调度 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨如何在Spring Boot应用中实现定时任务调度,这在实际…...

Hadoop3:MapReduce中的ETL(数据清洗)

一、概念说明 “ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。ETL一词较常用在数据仓库&#…...

python解锁图片相似度的神奇力量

在这个信息爆炸的时代,图片成为了我们传递信息、表达情感和记录生活的重要方式。然而,面对海量的图片资源,如何快速准确地找到相似的图片,成为了一个亟待解决的问题。现在,让我们为您揭开图片相似度的神秘面纱,带您领略这一创新技术的魅力! 图片相似度技术,就像是一位…...

TensorFlow 的原理与使用

文章目录 TensorFlow 的基本原理1. 计算图(Computation Graph)2. 张量(Tensor)3. 会话(Session)4. 自动微分(Automatic Differentiation) TensorFlow 的使用安装 TensorFlow基本使用…...

[数据库]事务的隔离级别存储引擎

事务的隔离级别 存储引擎 举例 myisam 进行回滚操作后可以发现有一个警告没有行受到影响 memory 比如用于qq的在线离线状态...

使用nvm切换node版本时报错:exit status 1解决办法

作者介绍:计算机专业研究生,现企业打工人,从事Java全栈开发 主要内容:技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流(SCI论文两篇) 上点关注下点赞 生活越过…...

Kafka~高吞吐量设计

Kafka 之所以能够实现高性能和高速度,主要归因于以下几个关键因素: 分布式架构:Kafka 采用分布式架构,可以水平扩展,通过增加服务器节点来处理更多的流量和数据存储。顺序写入磁盘:Kafka 将消息顺序地写入…...

STM32小项目———感应垃圾桶

文章目录 前言一、超声波测距1.超声波简介2.超声波测距原理2.超声波测距步骤 二、舵机的控制三、硬件搭建及功能展示总结 前言 一个学习STM32的小白~ 有问题请评论区或私信指出 提示:以下是本篇文章正文内容,下面案例可供参考 一、超声波测距 1.超声波…...

嵌入式MCU平台汇总

文章目录 1. 单片机(MCU) 2. 数字信号处理器(DSP) 3. ARM Cortex 系列 4. 超低功耗MCU 5. 物联网MCU(IoT MCU) 6. 开源架构MCU(RISC-V) 7. 可编程逻辑器件(FPGA&a…...

C#udpClient组播

一、0udpClient 控件: button(打开,关闭,发送),textbox,richTextBox 打开UDP: UdpClient udp: namespace _01udpClient {public partial class Form1 : Form{public Form1(){Initi…...

《昇思25天学习打卡营第14天 | 昇思MindSpore基于MindNLP+MusicGen生成自己的个性化音乐》

14天 本节学了基于MindNLPMusicGen生成自己的个性化音乐。 MusicGen是来自Meta AI的Jade Copet等人提出的基于单个语言模型的音乐生成模型,能够根据文本描述或音频提示生成高质量的音乐样本。 MusicGen模型基于Transformer结构,可以分解为三个不同的阶段…...

新奥集团校招面试经验分享、测评笔试题型分析

一、走进新奥集团 新奥集团成立于1989年,总部位于河北廊坊,是中国领先的清洁能源企业集团。业务涵盖城市燃气、能源化工、环保科技等多个领域,致力于构建现代能源体系,提升生活品质。 二、新奥集团校招面试经验分享 新奥集团的…...

【推荐】Prometheus+Grafana企业级监控预警实战

新鲜出炉!!!PrometheusGrafanaAlertmanager springboot 企业级监控预警实战课程,从0到1快速搭建企业监控预警平台,实现接口调用量统计,接口请求耗时统计…… 详情请戳 https://edu.csdn.net/course/detai…...

深度剖析:前端如何驾驭海量数据,实现流畅渲染的多种途径

文章目录 一、分批渲染1、setTimeout定时器分批渲染2、使用requestAnimationFrame()改进渲染2.1、什么是requestAnimationFrame2.2、为什么使用requestAnimationFrame而不是setTimeout或setInterval2.3、requestAnimationFrame的优势和适用场景 二、滚动触底加载数据三、Elemen…...

AI时代,你的工作会被AI替代吗?

AI在不同领域的应用和发展速度是不同的。在智商方面,尤其是在逻辑推理、数据分析和模式识别等领域,AI已经取得了显著的进展。例如,在国际象棋、围棋等策略游戏中,AI已经能够击败顶尖的人类选手。在科学研究、医学诊断、股市分析等…...

Java_日志

日志技术 可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中) 可以随时以开关的形式控制日志启停,无需侵入到源代码中去进行修改。 日志技术的体系结构 日志框架:JUL、Log4j、Logback、其他实现。 日志接口&#xf…...

springcould-config git源情况下报错app仓库找不到

在使用spring config server服务的时候发现在启动之后的一段时间内控制台会抛出异常,spring admin监控爆红,控制台信息如下 --2024-06-26 20:38:59.615 - WARN 2944 --- [oundedElastic-7] o.s.c.c.s.e.JGitEnvironmentRepository : Error occured …...

MySQL serverTimezone=UTC

在数据库连接字符串中使用 serverTimezoneUTC 是一个常见的配置选项,特别是当数据库服务器和应用程序服务器位于不同的时区时。这个选项指定了数据库服务器应当使用的时区,以确保日期和时间数据在客户端和服务器之间正确传输和处理。 UTC(协…...

基于YOLOv9的PCB板缺陷检测

数据集 PCB缺陷检测,我们直接采用北京大学智能机器人开放实验室数据提供的数据集, 共六类缺陷 漏孔、鼠咬、开路、短路、杂散、杂铜 已经对数据进行了数据增强处理,同时按照YOLO格式配置好,数据内容如下 模型训练 ​ 采用YOLO…...

高考结束,踏上西北的美食之旅

高考的帷幕落下,暑期的阳光洒来,是时候放下书本,背上行囊,踏上一场充满期待的西北之旅。而在甘肃这片广袤的土地上,除了壮丽的自然风光,还有众多令人垂涎欲滴的美食等待着您的品尝。当您踏入甘肃&#xff0…...

人工智能 (AI) 在能源系统中应用的机会和风险

现代文明极度依赖于电力的获取。电力系统支撑着我们视为理所当然的几乎所有基本生活功能。没有电力的获取,大多数经济活动将是不可能的。然而,现有的电网系统并未设计来应对当前——更不用说未来的——电力需求。与此同时,气候变化迫切要求我…...

[AIGC] 定时删除日志文件

文章目录 需求实现脚本解释 需求 实现一个定时任务,定时删除两天前的日志文件,如果某个目录使用量超过80%,则删除文件 实现 要实现这样的要求,我们可以创建一个shell脚本,在该脚本中使用find命令查找两天前的日志文…...

C++:typeid4种cast转换

typeid typeid typeid是C标准库中提供的一种运算符,它用于获取类型的信息。它主要用于类型检查和动态类型识别。当你对一个变量或对象使用typeid运算符时,它会返回一个指向std::type_info类型的指针,这个信息包含了关于该类型名称、大小、基…...

vue3的配置和使用

vue的使用需要配置node且node版本需要在15以上。管理员方式打开cmd,输入node -v,可以查看node版本。 创建vue有以下两种方式 npm init vuelatestnpm create vuelatest创建后输入项目名,其它的输入否即可,新手可以先不用 按照要求…...

决策树划分属性依据

划分依据 基尼系数基尼系数的应用信息熵信息增益信息增益的使用信息增益准则的局限性 最近在学习项目的时候经常用到随机森林,所以对决策树进行探索学习。 基尼系数 基尼系数用来判断不确定性或不纯度,数值范围在0~0.5之间,数值越低&#x…...

短视频利器 ffmpeg (2)

ffmpeg 官网这样写到 Converting video and audio has never been so easy. 如何轻松简单的使用: 1、下载 官网:http://www.ffmpeg.org 安装参考文档: https://blog.csdn.net/qq_36765018/article/details/139067654 2、安装 # 启用RPM …...

【计算机毕业设计】基于Springboot的智能物流管理系统【源码+lw+部署文档】

包含论文源码的压缩包较大,请私信或者加我的绿色小软件获取 免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…...

【2024】LeetCode HOT 100——图论

目录 1. 岛屿数量1.1 C++实现1.2 Python实现1.3 时空分析2. 腐烂的橘子2.1 C++实现2.2 Python实现2.3 时空分析3. 课程表3.1 C++实现3.2 Python实现3.3 时空分析4. 实现 Trie (前缀树)4.1 C++实现4.2 Python实现4.3 时空分析1. 岛屿数量 🔗 原题链接:200. 岛屿数量 经典的Fl…...

解析Java中1000个常用类:Currency类,你学会了吗?

在线工具站 推荐一个程序员在线工具站:程序员常用工具(http://cxytools.com),有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。程序员资料站 推荐一个程序员编程资料站:程序员的成长之路(http://cxyroad.com),收录了一些列的技术教程…...

5.x86游戏实战-CE定位基地址

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:4.x86游戏实战-人物状态标志位 上一个内容通过CE未知的初始值、未变动的数值、…...

istitle()方法——判断首字母是否大写其他字母小写

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 istitle()方法用于判断字符串中所有的单词首字母是否为大写而其他字母为小写。istitle()方法的语法格式如下: str.istitle() …...

Linux实用命令练习

目录 一、常用命令 二、系统命令 三、用户和组 四、权限 五、文件相关命令 六、查找 七、正则表达式 八、输入输出重定向 九、进程控制 十、其他命令 1、远程文件复制:scp 2、locate查找 3、which命令 4、设置或显示环境变量:export 5、修…...

刷题——二叉搜索树与双向链表

二叉搜索树与双向链表_牛客题霸_牛客网 方法一: void dfs(TreeNode* pRootOfTree, TreeNode* &pre){if(pRootOfTree NULL)return;dfs(pRootOfTree->left, pre);//所有左子树if(pre)pre->right pRootOfTree;pRootOfTree->left pre;pre pRootOfTree…...

【Linux】进程优先级 | 环境变量

目录 Ⅰ. 进程优先级(Process Priority) 1. 什么是进程优先级? 2. 查看系统进程 3. 修改进程优先级 4.优先级调度原理 Ⅱ. 进程的切换(Process Switch) 1. 竞争与独立 2. 并行与并发 3. 进程抢占 4.实现切换…...

最新手动迁移WordPress方法

手动迁移WordPress网站主要步骤有:迁移文件、迁移数据库、修复数据库连接。 对于WordPress Installations,只有两个主要组件,您需要访问手动将安装迁移到新主机:文件和数据库。 迁移文件 将文件从旧主机迁移到新的最简单方法之…...

ChatGPT在程序开发中的应用:提升生产力的秘密武器

在当今飞速发展的科技时代,程序开发已经成为许多企业和个人必不可少的技能。然而,编写代码并非总是顺风顺水,面对复杂的算法、繁琐的调试、持续不断的需求变更,程序员们常常感到压力山大。在这种情况下,ChatGPT应运而生…...

AI与Python共舞:如何利用深度学习优化推荐系统?

AI与Python共舞:如何利用深度学习优化推荐系统? 当你在浏览新闻、电影或是购物平台时,那些仿佛读懂你心思的个性化推荐背后,正是AI技术与Python语言的精妙协作。今天,我们将通过一个实际案例,探索如何利用…...

URLSearchParams: 浏览器中的查询字符串处理利器

一、 概述 在Web开发中,处理URL的查询字符串是一个常见任务。URLSearchParams API 提供了一种简单而强大的方法来处理Web URL的查询参数。它是一个内置的浏览器API,允许你以名称/值对的形式轻松地创建、读取、更新和删除查询参数。 二、URLSearchParam…...

2024最新初级会计职称题库来啦!!!

16.根据增值税法律制度的规定,下列各项中,属于"提供加工、修理修配劳务"的是()。 A.修理小汽车 B.修缮办公楼 C.爆破 D.矿山穿孔 答案:A 解析:选项AB:修理有形动产(…...

Stirling PDF 部署 - 强大的PDF Web在线编辑工具箱

简介 这是一个强大的、可本地托管的、基于 Web 的 PDF 操作工具,可使用 Docker部署。它使您能够对 PDF 文件执行各种操作,包括拆分、合并、转换、重组、添加图像、旋转、压缩等。这个本地托管的 Web 应用程序已经发展到包含一套全面的功能,可…...

大数据面试题之MapReduce(3)

目录 reduce任务什么时候开始? MapReduce的reduce使用的是什么排序? MapReduce怎么确定MapTask的数量? Map数量由什么决定 MapReduce的map进程和reducer进程的ivm垃圾回收器怎么选择可以提高吞吐量? MapReduce的task数目划分 MapReduce作业执行的过程中,中…...

[leetcode]squares-of-a-sorted-array. 有序数组的平方

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> sortedSquares(vector<int>& nums) {int n nums.size();vector<int> ans(n);for (int i 0, j n - 1, pos n - 1; i < j;) {if (nums[i] * nums[i] > nums[j] *…...

使用Spring Boot和Spring Data JPA进行数据库操作

使用Spring Boot和Spring Data JPA进行数据库操作 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在现代的Web应用开发中&#xff0c;数据库操作是不可或缺的一…...

《昇思25天学习打卡营第17天 | 昇思MindSporeCycleGAN图像风格迁移互换》

17天 本节学习了CycleGAN图像风格迁移互换。 CycleGAN即循环对抗生成网络&#xff0c;该模型实现了一种在没有配对示例的情况下学习将图像从源域 X 转换到目标域 Y 的方法。该模型一个重要应用领域是域迁移&#xff0c;可以通俗地理解为图像风格迁移。其实在 CycleGAN 之前&a…...

SecureCRT使用SSH登录服务器报错:Key exchange failed

SecureCRT使用SSH登录Ubuntu服务器报错&#xff1a;Key exchange failed 原因&#xff1a; ssh客户端与服务器的公钥协商失败&#xff0c;SecureCRT客户端所指定的秘钥交换算法&#xff08;KexAlgorithms &#xff09;&#xff0c;不在服务端支持范围内。可能是服务端的sshd版…...

02:vim的使用和权限管控

vim的使用 1、vim基础使用1.1、vim pathname 2、vim高级用法2.1、查找2.2、设置显示行号2.3、快速切换行2.4、 行删除2.5、行复制粘贴 3、权限管理3.1、普通用户和特权用户3.2、文件权限表示 vim是Linux中的一种编辑器&#xff0c;类似于window中的记事本&#xff0c;可以对创建…...

基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建基于Hadoop的全分布式集群---任务4:安装并配置JDK

任务描述 Hadoop 2.8需要JDK 1.6及以上版本的JDK&#xff0c;建议安装JDK 1.8&#xff0c;如果Cent OS是最小化安装&#xff0c;可能没有Open JDK&#xff0c;即使已经安装过Open JDK也可以使用JDK 1.8替换系统自带的Open JDK。 任务的内容为检查各个节点的JDK的安装情况&…...

tcpdump命令详解及使用实例

1、抓所有网卡数据包&#xff0c;保存到指定路径 tcpdump -i any -w /oemdata/123.pcap&一、tcpdump简介 tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤&#xff0c;并提供and、or、not等逻辑语句来去掉无用的信…...

后端系统的安全性

后端系统的安全性 后端系统的安全性是任何Web应用或服务的核心组成部分&#xff0c;它涉及保护数据、用户隐私以及系统免受恶意攻击。以下是后端安全的一些关键点&#xff1a; 认证和授权&#xff1a;确保只有经过身份验证的用户才能访问特定资源。这通常包括使用用户名/密码…...

Hack The Box-Editorial

端口扫描 web 先打开网页&#xff0c;没啥内容&#xff0c;扫个后台。 about没啥东西&#xff0c;主要应该是upload页面。 文件上传功能&#xff0c;上传本地文件&#xff0c;会被重命名&#xff0c;后缀名会被删除并且文件名重命名&#xff0c;若尝试打开链接&#xff0c…...

STM32 HAL库里 串口中断回调函数是在怎么被调用的?

跟着正点原子学习的HAL库写串口接收程序的时候一直有困惑&#xff0c;使用HAL_UART_Receive_IT开启接收中断后&#xff0c;为啥处理函数要写在HAL_UART_RxCpltCallback里&#xff0c;中断发生的时候是怎么到这个回调函数里去的&#xff1f; void MX_USART1_UART_Init(void) {h…...

那么大的一个车卖24.9万?一起来看24款大众途昂

记得大众途昂刚上市的时候,所有看到这台车的人都会由衷感叹——“这车可真大”,那时的途昂还算是大众旗下偏高端的SUV,售价还要30多万起步。而如今,途昂还是那么大,但地位已不比当年,而且起售价格已经来到了24.9万。随着近年来汽车价格战的愈演愈烈,相比前几年,我们手持…...

安全与智能完美联合,问界新M5通过易车主动安全测试

随着汽车技术的不断完善,如今新能源汽车市场竞争更加激烈。各大车企也更重视汽车安全性层面的打造。在5月30日,由易车推出的《易起鏖战》节目正式上线,节目中也通过实测方式,针对问界新M5、特斯拉Model Y和理想L6这三款行业代表作进行了主动安全的测试。结果可想而知,问界…...

订单超13000台,配激光雷达+空悬+CDC,增程/纯电

前不久,星途星纪元ET开启预售,新车提供增程和纯电两种动力,官方给出的预售价格区间为:增程版19.9万-23.9万元,纯电动版为23.9-32.9万元,作为一台长度接近5米,轴距为3米的大5座车型,它的目标竞品为理想L7/L6以及问界M7等车型,星纪元ET的优势是动力组合丰富,价格便宜,另…...

五菱高管发文“明年更卷”,消费者:车市越卷,我越幸福

日前,上汽通用五菱品牌事业部副总经理周钘在社交平台上发文称,“2024年初至今,宝骏停掉了所有的市场费用。企业认为如果产品、市场、渠道三者节奏都不对则是‘白费’”,“虽然今年行业确实卷,明年会更卷,但我们所有准备”。周钘从车企的角度,说出了车市竞争的残酷。不仅…...

入境游复苏拉动旅游消费,免税、餐饮、酒店等行业迎来利好

随着疫情防控常态化,中国入境旅游市场正逐步回暖,跨境游消费呈现复苏态势。有分析预测,入境游景气复苏将与消费内生增长动力恢复形成合力,对服务消费相关的多业态产生正向辐射效应。免税、餐饮、酒店作为旅游消费三大支柱行业,有望受益于入境游复苏带来的红利。免税行业迎…...

惊爆价!荣威D7EV限时优惠至12.98万起,B级纯电轿车新选择!

在新能源汽车市如火如荼的竞争中,上汽荣威凭借其一系列策略性的优惠活动,再次引发了市场的热烈讨论。4月2日,一场涵盖多个车型、针对不同需求的优惠派对拉开帷幕,呈现在消费者眼前的是诸如轿车荣威D7 EV、全新荣威i5,SUV车型eRX5以及MPV车型iMAX8等价位更亲民、品质不减的…...