源地址:http://bbs.ivsok.com/blog-2-12.html


/*
* linux/arch/arm/mach-davinci/time.c
*
* DaVinci timer subsystem
*
* Author: MontaVista Software, Inc. <source@mvista.com>
*
* Copyright 2005 (c) MontaVista Software, Inc. This file is licensed
* under the terms of the GNU General Public License version 2. This
* program is licensed "as is" without any warranty of any kind,
* whether express or implied.
*
*/

#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/time.h>
#include <linux/timex.h>
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/hrtime.h>

#include <asm/io.h>
#include <asm/hardware.h>
#include <asm/system.h>
#include <asm/leds.h>
#include <asm/irq.h>
#include <asm/mach/irq.h>
#include <asm/mach/time.h>

#include <asm/arch/timex.h>
#include <asm/arch/irqs.h>
#include <asm/errno.h>
#include <linux/hrtime.h>        /*for cycles-to-nsec macros */
#include <asm/arch/cpu.h>

/*
DM644x平台共有三个64位定时器,T1和T2是通用定时器,可以分别拆分为2个32位的定时器,
能被ARM和DSP使用。T3定时器是看门狗,只能被ARM使用。
T0可以使用外部时钟来计数,T1定时器只能使用内部时钟源,也就是DM644x平台的27MHZ输入时钟。
T1可以有最大8分频(27MHZ/8),而T0没有。
所有定时器都有三种运行模式,一次定时模式(One-time operation)、
连续定时模式(Continuous operation)和禁止模式。

*/

/* T0 and T1 can be divided into 2 - 32 bit timer; however, T2 (watchdog
timer) can only be used as a single 64-bit timer */

enum {
T0_BOT = 0, T0_TOP, T1_BOT, T1_TOP, T2_WDT, MAX_TIMERS,
};
static int NUM_TIMERS;

#define IS_TIMER_TOP(id) ((id & 0x1))
#define IS_TIMER_BOT(id) (!IS_TIMER_TOP(id))

// 这些魔数在include/asm/arch/timex.h中定义

const unsigned int davinci_ck_rate[] = {
DM644X_CLOCK_TICK_RATE,        // 27000000

DM646X_CLOCK_TICK_RATE,        // 148500000

DM355_CLOCK_TICK_RATE        // 24000000

};

// 针对DM646x平台

static int dm646x_timer_irqs[] = {
IRQ_TINT0_TINT12,        
IRQ_TINT0_TINT34,        
IRQ_TINT1_TINT12,        
IRQ_TINT1_TINT34,        
IRQ_DM646X_WDINT,        
};

// 这些魔数在include/asm/arch/irqs.h中定义

static int davinci_timer_irqs[] = {
IRQ_TINT0_TINT12,        // 32

IRQ_TINT0_TINT34,        // 33

IRQ_TINT1_TINT12,        // 34

IRQ_TINT1_TINT34,        // 35

};
static int *timer_irqs;

/*
* This driver configures the 2 64-bit DaVinci timers as 4 independent
* 32-bit timers used as follows:
*
* T0_BOT: Timer 0, bottom: free-running counter, used for cycle counter
* T0_TOP: Timer 0, top : high-res timer programmable timer
* T1_BOT: Timer 1, bottom: reserved for DSP
* T1_TOP: Timer 1, top : Linux system tick
*/

static int tid_system = T1_TOP;
static int tid_freerun = T0_BOT;
static int tid_hrt = T0_TOP;

/* 
timer regs 
定时器控制寄存器组映射到一个结构体中,方便操作
*/


typedef volatile struct davinci_timer_regs_s {
unsigned int pid12;        /* 0x0 */
unsigned int emumgt_clksped;    /* 0x4 */
unsigned int gpint_en;        /* 0x8 */
unsigned int gpdir_dat;        /* 0xC */
unsigned int tim12;        /* 0x10 */
unsigned int tim34;        /* 0x14 */
unsigned int prd12;        /* 0x18 */
unsigned int prd34;        /* 0x1C */
unsigned int tcr;        /* 0x20 */
unsigned int tgcr;        /* 0x24 */
unsigned int wdtcr;        /* 0x28 */
unsigned int tlgc;        /* 0x2C */ // DM644x平台不存在

unsigned int tlmr;        /* 0x30 */ // DM644x平台不存在

} davinci_timer_regs_t;

// 定时器控制结构体

typedef struct davinci_timer_s {
char *name;
unsigned int id;
unsigned long period;
unsigned long opts;
davinci_timer_regs_t *regs;
struct irqaction irqaction;
} davinci_timer_t;

static davinci_timer_t *davinci_timers[MAX_TIMERS];

/* values for 'opts' field of davinci_timer_t */
#define TIMER_DISABLED 0x00
#define TIMER_ONE_SHOT 0x01
#define TIMER_CONTINUOUS 0x02

// 各定时器寄存器组的映射基地址(指针)数组

davinci_timer_regs_t *davinci_timer_base_index[] = {
(davinci_timer_regs_t *)IO_ADDRESS(DAVINCI_TIMER0_BASE),
(davinci_timer_regs_t *)IO_ADDRESS(DAVINCI_TIMER0_BASE),
(davinci_timer_regs_t *)IO_ADDRESS(DAVINCI_TIMER1_BASE),
(davinci_timer_regs_t *)IO_ADDRESS(DAVINCI_TIMER1_BASE),
(davinci_timer_regs_t *)IO_ADDRESS(DAVINCI_WDOG_BASE),
};

#define davinci_timer_base(id) \
((id >= 0) && (id < MAX_TIMERS) ? \
davinci_timer_base_index[id] : \
davinci_timer_base_index[0])

// 设置系统定时器控制结构体

static int davinci_timer32_config(davinci_timer_t *t)
{
davinci_timer_regs_t *regs = t->regs;
u32 enamode_shift, reset_shift;
int ret = 0;

// 检查是低32位还是高32位定时器

if (IS_TIMER_BOT(t->id)) {
regs->prd12 = t->period;
enamode_shift = 6;
reset_shift = 0;
} else {
regs->prd34 = t->period;
enamode_shift = 22;
reset_shift = 1;
}

/* 
reset timer
复位定时器 
*/

regs->tgcr &= ~(0x1 << reset_shift);

/* 
Register interrupt 
向内核注册中断
*/

if (t->irqaction.handler != NULL) {
ret = setup_irq(timer_irqs[t->id], &t->irqaction);
}

/* 
Set enable mode
设置定时器的运行模式 
*/

if (t->opts & TIMER_ONE_SHOT) {
regs->tcr |= 0x1 << enamode_shift;
} else if (t->opts & TIMER_CONTINUOUS) {
regs->tcr |= 0x2 << enamode_shift;
} else {        /* TIMER_DISABLED */
regs->tcr &= ~(0x3 << enamode_shift);
}

/* 
unreset
激活定时器 
*/

regs->tgcr |= (0x1 << reset_shift);

return ret;
}

// 从寄存器中读取定时器的计数值

static inline u32 davinci_timer32_read(davinci_timer_t *t)
{
davinci_timer_regs_t *regs = t->regs;

if IS_TIMER_TOP
(t->id) {
return regs->tim34;
} else {
return regs->tim12;
}
}

/*
Last processed system timer interrupt
系统中断服务例程。
*/

static unsigned long davinci_timer32_last = 0;
static irqreturn_t system_timer_interrupt(int irq, void *dev_id,
struct pt_regs *regs)
{
unsigned long now, latency;

write_seqlock(&xtime_lock);// 顺序锁

now = davinci_timer32_read(davinci_timers[tid_freerun]);
latency = davinci_timer32_read(davinci_timers[tid_system]);
// 记当前时钟滴答时两个定时器计数值的差,以便后续获取当前时钟滴答后所增加的计数值

davinci_timer32_last = now - latency;

/* 
Do the Linux timer operations 
timer_tick()例程中主要做跟系统时钟相关的工作:
调用profile_tick()监管内核代码
调用do_set_rtc()同步外部时钟源(如网络时钟源),每11分钟写到CMOS RTC中
在do_timer()中增加jiffies_64值和调用update_times()更新系统日期和时间
*/

timer_tick(regs);
write_sequnlock(&xtime_lock);

return IRQ_HANDLED;
}

// 获取自最近一次时钟滴答后(由system_timer_interrupt()中断服务例程更新)所经历的微妙数

unsigned long davinci_gettimeoffset(void)
{
unsigned long now, elapsed, nsec;

now = davinci_timer32_read(davinci_timers[tid_freerun]);
// 获取最近一次时钟滴答后所增加的计数值,一个计数值的时间是1/27000000

elapsed = now - davinci_timer32_last;
// 把计数值转换为纳秒数,没有使用除法,代之以乘法和移位,速度快很多

nsec = arch_cycle_to_nsec(elapsed);
return nsec / 1000;
}

// freerun定时器中断服务例程,什么也没做

static irqreturn_t freerun_interrupt(int irq, void *dev_id,
struct pt_regs *regs)
{
/* TODO: keep track of roll-overs for 64-bit cycle-count */
return IRQ_HANDLED;
}

// 读取freerun定时器计数值

cycles_t davinci_get_cycles(void)
{
return davinci_timer32_read(davinci_timers[tid_freerun]);
}

#ifdef CONFIG_HIGH_RES_TIMERS
// 用于设定high-res定时器的定时时间并注册中断

int schedule_hr_timer_int(unsigned long ref_jiffies, int ref_cycles)
{
unsigned long temp_cycles, jiffies_f = jiffies;
davinci_timer_t *= davinci_timers[tid_hrt];

BUG_ON(ref_cycles < 0);

/*
* Get offset from last jiffy
*/

temp_cycles = (ref_jiffies - jiffies_f) * arch_cycles_per_jiffy +
ref_cycles - get_arch_cycles(jiffies_f);

if ((long)(ref_jiffies - jiffies_f) <= 0 && (long)temp_cycles < 0)
return -ETIME;

t->period = temp_cycles;    // 计数值

t->opts = TIMER_ONE_SHOT;    // 一次定时模式

davinci_timer32_config(t);    // 配置和注册


return 0;
}

// 获取自ref_jiffies后所增加的计数值

int get_arch_cycles(unsigned long ref_jiffies)
{
extern unsigned long do_getmachinecycles(void);
int ret;
unsigned now;
unsigned temp_jiffies;
unsigned diff_jiffies;

do {
/* snapshot jiffies */
temp_jiffies = jiffies;
barrier();

/* calculate cycles since the current jiffy */
now = davinci_timer32_read(davinci_timers[tid_freerun]);
ret = now - davinci_timer32_last;

/* compensate for ref_jiffies in the past */
if (unlikely(diff_jiffies = jiffies - ref_jiffies))
ret += diff_jiffies * arch_cycles_per_jiffy;

barrier();
/* repeat if we didn't have a consistent view of the world */
} while (unlikely(temp_jiffies != jiffies));

return ret;
}

// high-res定时器的中断服务例程,用于调度高精度软定时器

static irqreturn_t
hr_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
/* 
在include/linux/hrtime.h中又如下定义:
#ifdef HRTIME_PER_CPU
#define do_hr_timer_int() raise_softirq(HRTIMER_SOFTIRQ)
#else
extern struct tasklet_struct hrt_tasklet;
#define do_hr_timer_int() tasklet_schedule(&hrt_tasklet)
#endif
在DM644x平台,HRTIME_PER_CPU没有被定义,所以该中断例程只是用于调度高精度hrt_tasklet
软中断
*/

do_hr_timer_int();    

return IRQ_HANDLED;
}

static int hr_timer_init(void)
{
int ret = 0;

/* Initialized by init of davinci_timers[] array */

return ret;
}

__initcall(hr_timer_init);
#endif                /* CONFIG_HIGH_RES_TIMERS */

static davinci_timer_t davinci_system_timer = {
.name = "system tick",    // 系统定时器,也就是系统的“心脏”,负责推动系统运行

.period = ((DM644X_CLOCK_TICK_RATE / HZ) - 1),    //设置系统定时器滴答时间(10ms)

.opts = TIMER_CONTINUOUS,    // 连续运行模式

.irqaction = {
// 快速无延迟中断,SA_NODELAY在打开内核抢占的情况下表明不使用内核线程处理中断

.flags = SA_INTERRUPT | SA_NODELAY,    
.handler = system_timer_interrupt,// 系统定时器中断处理例程

}
};
static davinci_timer_t davinci_freerun_timer = {
.name = "free-run counter",    
.period = 0xffffffff,    // 设置成这么大就是为了使他计时尽量久,作为标准值计数来参考

.opts = TIMER_CONTINUOUS,    // 连续运行模式

.irqaction = {
.flags = SA_INTERRUPT,    // 快速中断

.handler = freerun_interrupt, // 中断处理例程

}
};

#ifdef CONFIG_HIGH_RES_TIMERS
static davinci_timer_t davinci_hrt_timer = {
.name = "high-res timer",    // 高精度定时器,用于调度高精度软定时器

.opts = TIMER_DISABLED,        // 禁止运行模式,也就是不计数,但保留当前的值

.period = 0,                // 暂时设置成0

.irqaction = {
.flags = SA_INTERRUPT | SA_NODELAY,//快速无延迟中断

.handler = hr_timer_interrupt,// 中断处理例程

}
};
#endif
static davinci_timer_t davinci_default_timer = {
.name = NULL,
};

// DM6446平台定时器初始化例程

void __init davinci_timer_init(void)
{
int i;
davinci_timer_regs_t *t0 = davinci_timer_base(T0_BOT);
davinci_timer_regs_t *t1 = davinci_timer_base(T1_BOT);
davinci_timer_regs_t *t2 = davinci_timer_base(T2_WDT);

// 针对DM6467平台

if (cpu_is_davinci_dm6467()) {
davinci_system_timer.period = (DM646X_CLOCK_TICK_RATE / HZ) - 1;
timer_irqs = dm646x_timer_irqs;
NUM_TIMERS = ARRAY_SIZE(dm646x_timer_irqs);
/*
* T0_BOT: Timer 0, bottom: AV Sync
* T0_TOP: Timer 0, top: free-running counter,
used for cycle counter
* T1_BOT: Timer 1, bottom: reserved for DSP
* T1_TOP: Timer 1, top : Linux system tick
* T2_WDT: Timer 2, : high-res timer programmable timer
*/

tid_system = T1_TOP;
tid_freerun = T0_TOP;
tid_hrt = T2_WDT;
} else {
if (cpu_is_davinci_dm355())
davinci_system_timer.period =
(DM355_CLOCK_TICK_RATE / HZ) - 1;

timer_irqs = davinci_timer_irqs;
NUM_TIMERS = ARRAY_SIZE(davinci_timer_irqs);
/*
* T0_BOT: Timer 0, bottom: free-running counter,
used for cycle counter
* T0_TOP: Timer 0, top : high-res timer programmable timer
* T1_BOT: Timer 1, bottom: reserved for DSP
* T1_TOP: Timer 1, top : Linux system tick
*/

tid_system = T1_TOP;
tid_freerun = T0_BOT;
tid_hrt = T0_TOP;
}
for (= 0; i < NUM_TIMERS; i++)
davinci_timers[i] = &davinci_default_timer;

// 设置系统定时器控制结构体

davinci_timers[tid_system] = &davinci_system_timer;
davinci_timers[tid_freerun] = &davinci_freerun_timer;

#ifdef CONFIG_HIGH_RES_TIMERS
davinci_timers[tid_hrt] = &davinci_hrt_timer;
#endif

/* 
Disabled, Internal clock source 
T0和T1采用内部时钟源,且被禁止
*/

t0->tcr = 0x0;
t1->tcr = 0x0;

/* 
reset both timers, no pre-scaler for timer34 
T1禁止分频
*/

t0->tgcr = 0;
t1->tgcr = 0;

/* 
Set both timers to unchained 32-bit 
T0和T1设置成非级联的32位定时器
*/

t0->tgcr |= 0x4;    //TIMMODE = 1

t1->tgcr |= 0x4;

/* 
Unreset timers 
激活定时器T0和T1
*/

t0->tgcr |= 0x3;
t1->tgcr |= 0x3;

/* 
Init both counters to zero 
计数寄存器置为0
*/

t0->tim12 = 0;
t0->tim34 = 0;
t1->tim12 = 0;
t1->tim34 = 0;

/* do the same thing for timer 2 if cpu is dm6467 */
if (cpu_is_davinci_dm6467()) {
t2->tcr = 0x0;
t2->tgcr = 0;

/* T2 can only operate as a single 64-bit timer
* t2->tgcr |= 0x4; */

t2->tgcr |= 0x3;
t2->tim12 = 0;
t2->tim34 = 0;
}

for (= 0; i < NUM_TIMERS; i++) {
davinci_timer_t *= davinci_timers[i];

if (t->name) {
t->id = i;
t->regs =    // 映射各个定时器的寄存器组

(davinci_timer_regs_t *) davinci_timer_base(t->id);
t->irqaction.name = t->name;    //用户中断名称

t->irqaction.dev_id = (void *)t;    //用户中断私有数据    


// 配置和注册时钟中断

davinci_timer32_config(t);
}
}
}

/*
这个结构体在arch/arm/mach-davinci文件中被调用,保存在机器描述符里(struct machine_desc),
在系统启动时会调用davinci_timer_init()例程初始化定时器。调用的过程是:
start_kernel()-->setup_arch()-->system_timer = mdesc->timer(system_timer是个全局
指针变量,mdesc->timer指针指向的就是本文中的已经注册到机器描述符里的davinci_timer结构体),
然后便是start_kernel()-->time_init()-->system_timer->init()(也就是
davinci_timer_init())。
从上可以看出经历了两个过程,才调用davinci_timer_init()例程来初始化定时器。
*/

struct sys_timer davinci_timer = {
.init = davinci_timer_init,
.offset = davinci_gettimeoffset,
};

/* 
使用看门狗复位系统.
用户使用重启命令reboot后,会调用到该例程,具体过程是:sys_reboot()-->machine_restart()
-->arch_reset()-->davinci_watchdog_reset()。
*/

void davinci_watchdog_reset(void)
{
davinci_timer_regs_t *davinci_wdt =
(davinci_timer_regs_t *)IO_ADDRESS(DAVINCI_WDOG_BASE);

davinci_wdt->tcr = 0x0;        /* disable timer */
davinci_wdt->tgcr = 0x0;    /* reset timer */
davinci_wdt->tgcr = 0x8;    /* configure timer2 as64-bit */
davinci_wdt->tgcr |= 0x3;    /*release timer from reset */
davinci_wdt->tim12 = 0;        /* clear counter andperiod regs */
davinci_wdt->tim34 = 0;
davinci_wdt->prd12 = 0;
davinci_wdt->prd34 = 0;
davinci_wdt->wdtcr |= 0x4000;    /*enable watchdog timer */

/* put watchdog in pre-active state */
davinci_wdt->wdtcr = 0xA5C64000;

/* put watchdog in active state */
davinci_wdt->wdtcr = 0xDA7E4000;

/* 
write an invalid value to the WDKEY field to trigger 
a watchdog reset
如果要喂看门狗,则使用:
davinci_wdt->wdtcr = 0xA5C64000;
davinci_wdt->wdtcr = 0xDA7E4000;
必须成对顺序使用。
*/

davinci_wdt->wdtcr = 0x00004000;
}

// 读取定时器clock_id的计数值

u32 davinci_timer_read(int clock_id)
{
davinci_timer_t *= davinci_timers[clock_id];    //获取该定时器的控制结构体


return davinci_timer32_read(t);
}


2.timex.h

/*
* linux/include/asm-arm/arch-davinci/timex.h
*
* BRIEF MODULE DESCRIPTION
* DAVINCI Virtual memofy definitions
*
* Copyright (C) 2006 Texas Instruments.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/


#ifndef __ASM_ARCH_TIMEX_H
#define __ASM_ARCH_TIMEX_H


#include <asm/arch/cpu.h>

/* The source frequency for the timers is the 27MHz MXI clock */
#define CLOCK_TICK_RATE                24000000
#define DM644X_CLOCK_TICK_RATE            27000000
#define DM646X_CLOCK_TICK_RATE            148500000
#define DM355_CLOCK_TICK_RATE            24000000

#define DAVINCI_CLOCK_TICK_RATE ((cpu_is_davinci_dm6467()) ? \
DM646X_CLOCK_TICK_RATE : ((cpu_is_davinci_dm644x()) ? \
DM644X_CLOCK_TICK_RATE : DM355_CLOCK_TICK_RATE))

extern void davinci_watchdog_reset(void);
extern cycles_t davinci_get_cycles(void);
static inline cycles_t get_cycles(void)
{
return davinci_get_cycles();
}

#endif                /* __ASM_ARCH_TIMEX_H__ */


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

相关文章

  1. C语言-括号匹配的检验

    使用下面代码前,需要引入基本算法。另外数据结构的基本算法已经更新,新增了“队列”的基本算法。 基本算法地址:https://www.orbpi.cn/article/shujujiegoujibensuanfaluru.html 问题描述 假设表达式中允许有两种括号:圆括号和方括号,其嵌套的顺序随意,即(()[ ])或[(…...

    2024/4/27 23:01:05
  2. 考网络工程师需要看的书

    考网络工程师需要看的书 和大部分人一样的观点,我本人也认为水平第一,考试第二!但来这里的朋友毕竟还是以考试为目标的。说明白点:水平再高,过不了网工也没说服力。当然,此话并不绝对。比如说,每次都有很多研究生和大学的教师参加考试而未能顺利通过考试的嘛,但是人家的…...

    2024/4/28 22:26:17
  3. 【小甲鱼Python】类和对象:给大家介绍对象

    笔记对象对象 = 属性 + 方法创建对象首先要创建一个类。类就好比模具,有了类才能量产对象,此时创建出的对象是类的实例,故称该对象为实例化对象。类的首字母必须大写。通过类创建对象:调用对象的方法:面向对象(OO,Object Oriented)特征:1.封装:对象的方法和属性都被封…...

    2024/4/28 10:27:42
  4. layui 弹出界面弹框

    学习文档:https://www.layui.com/1:先引入需要的相关的文件<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script> <!-- 弹框 --> <script src="layer/layer.js"></script> <script src="layer/ex…...

    2024/4/28 6:27:34
  5. 第085讲: Pygame:动画精灵 | 学习记录(小甲鱼零基础入门学习Python)

    我们已经学会了Pygame 的事件、Pygame 图片的转换以及移动、基本的图形绘制、透明度调整这些内容。但距离我们真正的实现一个小游戏还差一个重要的环节,那就是碰撞检测,在讲碰撞检测之前,我们需要补充一个新的知识点,叫做动画精灵。 动画精灵是指在游戏开发中,那些被赋予灵…...

    2024/4/28 11:26:09
  6. 黄聪:YSlow使用指南_最新2.0使用指南中文版

    YSlow分析网页,并提出如何提高其性能的基础上一套规则,高性能的网页。我搜索一下”Yslow使用说明“,发现都是旧版本Yslow的使用介绍。于是翻译了一下yahoo官方关于新版Yslow的的使用帮助,希望给初次使用Yslow的朋友一些帮助。 注:英文不是很好,对着翻译软件翻译的,有不对的…...

    2024/4/11 18:19:37
  7. 备考网络工程师该看哪些书?

    马上就要开始网络工程师的考试了,转载一些与之相关的东西过来,希望对大家有所帮助! 转至:天极 虽然是水平第一,考试第二的,但朋友们毕竟还是以考试为目标的。说明白点,水平再高,过不了网络工程师也没说服力。 网络知识是电脑技术的十分重要的分支,除了网络之外,我…...

    2024/4/19 17:59:37
  8. 括号匹配问题(并给出括号的位置)

    在纸上写了一个串,只包含(和)。一个(能唯一匹配一个),但是一个匹配的(必须出现在)之前。请判断蒜头君写的字符串能否括号完全匹配,如果能,输出配对的括号的位置(匹配的括号不可以交叉,只能嵌套)。 输入格式 一行输入一个字符串只含有(和),输入的字符串长度不大于 5000…...

    2024/4/11 18:19:35
  9. Linux设备驱动学习-Davinci开发板上运行的hello模块

    Linux设备驱动学习-Davinci开发板上运行的hello模块看了很多个hello world了,自己来写一个在davinci板卡上跑的吧。 主体很简单,就是一个C文件hello_davinci.c。 /*================hello_davinci.c==============*/ #include <linux/module.h> /*所有模块都需要的头…...

    2024/4/11 18:19:34
  10. layui的穿梭框绑定实时数据并使用

    为layui穿梭框绑定实时数据的方法有很多,我这里的只是其中一个比较简单的为layui绑定实时数据的方法。 为穿梭框绑定实时肯定是先要使用到layui的穿梭框, 使用layui穿梭框的第一步,正常情况下肯定是先要加载穿梭框的模块 transfer,但如果想要实时数据绑定在穿梭框在初始化之…...

    2024/4/19 18:30:39
  11. 网易2016年Java工程师实习编程题目之括号匹配的验证

    题目描述:一个字符串中包含圆括号()、中括号[ ]、大括号{ },其嵌套的顺序随意。即()(){({})([])}是有效的,([)(]){]}是无效的。验证括号是否匹配的方法就是用“期待的急迫程度”这个概念来解决。关于“期待的急迫程度”概览大家自己晚上查阅了解。package neteaseprograme…...

    2024/4/11 18:19:32
  12. 【榆钱】小甲鱼python课后习题第8课

    【仅供学习交流使用,如有错误感谢道友指出】0.if not(money < 100):上边这行代码相当于?if money>=1001.assert 的作用是什么?assert的作用为断言,其使用方法为:assert expression具体起的作用就是判断expression是否为真,如果不为真的话就抛出异常,相当于:if no…...

    2024/4/28 5:44:54
  13. 网络工程师学习Linux的亲身历程

    由于上学时学的是通信工程专业,大四找工作时找到了一个网络工程师的职位。在入职之前把思科的CCNA、CCNP都学了一遍,然后认为学了这些东西在工作中一定绰绰有余了吧,学完就开始忙着毕业旅行和跟朋友花天酒地,享受最后的大学时光了。在入职培训的第一天,现实就把我拍醒了,…...

    2024/4/23 6:34:46
  14. 安装Yslow

    1, 打开yslow.org网页并单击"Install YSlow"即可...

    2024/4/12 5:19:30
  15. 小甲鱼《零基础学习Python》课后笔记(三十四):丰富的else语句及简洁的with语句

    测试题 0.在Python中,else语句能跟哪些语句进行搭配? a)if…else语句,“要么怎样。要么不怎样” b)while或for…else语句,“干完了能怎样,干不完就别想怎样” c)异常处理搭配,“没有问题,那就干吧”1.请问以下例子中,循环中的break语句会跳过else语句吗? def showMa…...

    2024/4/12 5:20:00
  16. 利用STL栈实现括号匹配算法

    华为一个校招题目: 输入一组字符串,其中有普通的字符与括号组成,例如()及[],要求验证括号是否匹配,如果匹配则输出零,不然输出1. Sample input:dfa(sdf)df[dfds(dfd)] Sample output:0 解题思路:通过将左括号( [入栈,然后比较与下一个右括号是否匹配。如果匹配,栈执…...

    2024/4/13 18:08:50
  17. 网络工程师——初步了解

    网络工程师 [http://baike.baidu.com/view/24738.htm?fr=ala0_1]概述 网络工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员。网络工程师能够从事计算机信息系统的设计、建设、运行和维护工作。 职位定义  网络工程师是通过学习和训练,掌握网络技术…...

    2024/4/11 18:19:30
  18. layui 的常用元素操作 element

    “页面中有许多元素需要自动去完成一些处理,譬如导航菜单的小滑块、Tab的切换等操作,他们往往不需要去单独调用一个方法来开启一项功能,而页面上恰恰有太多这样的小交互,所以我们统一归类为element组件。跟表单一样,基于元素属性和事件驱动的接口书写方式。”——引 自lay…...

    2024/4/11 18:19:29
  19. davinci报表截图邮件,中文字体消失

    总括:由于服务器没有相应的中文字体,此时只要安装下即可1.查看所有字体命令:fc-list2.查看中文字体命令:fc-list :lang=zh3.查看更多字体命令:fc-match -v "AR PL UKai CN"示例:前言 报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系…...

    2024/4/11 18:19:28
  20. 【April Fools Day Contest 2016A】【OEIS】Da Vinci Powers 达芬奇power

    A. Da Vinci Powerstime limit per test 2 secondsmemory limit per test 64 megabytesinput standard inputoutput standard outputInput The input contains a single integer a (0 ≤ a ≤ 35).Output Output a single integer.Examplesinput 3output 8input 10output 1…...

    2024/4/11 18:19:27

最新文章

  1. 设置UIProgressView的样式

    UIProgressView是UIKit框架中的一个控件&#xff0c;用于显示任务的完成进度。你可以使用UIProgressView来展示任务的完成情况&#xff0c;例如下载文件、上传数据等。 要设置UIProgressView的样式&#xff0c;包括粗细、颜色等&#xff0c;你可以使用UIProgressView的一些属性…...

    2024/4/29 2:35:48
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 【stm32】I2C通信协议

    【stm32】I2C通信协议 概念及原理 如果我们想要读写寄存器来控制硬件电路&#xff0c;就至少需要定义两个字节数据 一个字节是我们要读写哪个寄存器&#xff0c;也就是指定寄存器的地址 另一个字节就是这个地址下存储寄存器的内容 写入内容就是控制电路&#xff0c;读出内容就…...

    2024/4/22 20:59:35
  4. 6.9物联网RK3399项目开发实录-驱动开发之PWM的使用(wulianjishu666)

    嵌入式实战开发例程&#xff0c;珍贵资料&#xff0c;开发必备&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1149x7q_Yg6Zb3HN6gBBAVA?pwdhs8b PWM 使用 前言 AIO-3399J 开发板上有 4 路 PWM 输出&#xff0c;分别为 PWM0 ~ PWM3&#xff0c;4 路 PWM 分别使用在…...

    2024/4/28 2:14:12
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/28 13:52:11
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/28 13:51:37
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/28 15:57:13
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57