3.u-boot-2016.03 修改时钟、设置内存控制器、支持UART

    从第一节新建单板最后的测试结果可知,把编译好的u-boot.bin烧写到Jz2440开发板的Nor Flash并重启开发板,串口没有任何输出,在这一节我们将解决这个问题。这一节的内容主要分为三个部分:修改时钟、修改内存控制器设置、修改配置支持UART。

3.1 修改时钟

通过对u-boot-2016.03启动过程的分析,在start.S文件中发现不足,如下图所示:
在这里插入图片描述
从图中可知:uboot里先以60MHZ的时钟计算参数来设置内存控制器,但是MPLL 还未设置;
处理措施:把MPLL的设置放到start.S里,取消board_early_init_f里对MPLL的设置,同时根据新设置的时钟参数设置内存控制器。

关于Jz2440开发板SOC的时钟体系,可以阅读韦东山老师的博客掌握Jz2440_ARM芯片时钟体系。
下面修改代码,把时钟修改为FCLK=400MHz,并设置时钟比例FCLK:HCLK:PCLK=1:4:8,把上图设置时钟比例参数的代码删掉,添加如下代码:

/* 2. 设置时钟 */ldr r0, =0x4c000014mov r1, #0x05;            // FCLK:HCLK:PCLK=1:4:8str r1, [r0]/* 如果HDIVN非0,CPU的总线模式应该从“fast bus mode”变为“asynchronous bus mode” */mrc p15, 0, r1, c1, c0, 0       /* 读出控制寄存器 */ orr r1, r1, #0xc0000000         /* 设置为“asynchronous bus mode” */mcr p15, 0, r1, c1, c0, 0       /* 写入控制寄存器 */#define S3C2440_MPLL_400MHZ     ((0x5c<<12)|(0x01<<4)|(0x01))/* MPLLCON = S3C2440_MPLL_200MHZ */ldr r0, =0x4c000004ldr r1, =S3C2440_MPLL_400MHZstr r1, [r0]/* 启动ICACHE */mrc p15, 0, r0, c1, c0, 0   @ read control regorr r0, r0, #(1<<12)mcr p15, 0, r0, c1, c0, 0   @ write it back

3.2 修改内存控制器设置

(1) uboot原理是依据HCLK=60MHz的时钟计算参数来设置内存控制器的,修改时钟后HCLK=100MHz,所以需要重新设置内存控制器。在board/samsung/jz2440/lowlevel_init.S中最后有如下代码:

SMRDATA:.word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28)).word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)).word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)).word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)).word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)).word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)).word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)).word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)).word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)).word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT).word 0x32.word 0x30.word 0x30                         

更改为如下代码:

SMRDATA:.long 0x22011110     //BWSCON.long 0x00000700     //BANKCON0.long 0x00000700     //BANKCON1.long 0x00000700     //BANKCON2.long 0x00000700     //BANKCON3  .long 0x00000740     //BANKCON4.long 0x00000700     //BANKCON5.long 0x00018005     //BANKCON6.long 0x00018005     //BANKCON7.long 0x008C04F4     // REFRESH.long 0x000000B1     //BANKSIZE.long 0x00000030     //MRSRB6.long 0x00000030     //MRSRB7

(2) 取消board_early_init_f里对MPLL的设置,修改 board/samsung/jz2440/jz2440.cboard_early_init_f函数代码如下:

int board_early_init_f(void)
{struct s3c24x0_clock_power * const clk_power =s3c24x0_get_base_clock_power();struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
#if 0/* to reduce PLL lock time, adjust the LOCKTIME register */writel(0xFFFFFF, &clk_power->locktime);/* configure MPLL */writel((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV,&clk_power->mpllcon);/* some delay between MPLL and UPLL */pll_delay(4000);
#endif/* configure UPLL */writel((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV,&clk_power->upllcon);/* some delay between MPLL and UPLL */pll_delay(8000);/* set up the I/O ports */writel(0x007FFFFF, &gpio->gpacon);writel(0x00044555, &gpio->gpbcon);writel(0x000007FF, &gpio->gpbup);writel(0xAAAAAAAA, &gpio->gpccon);writel(0x0000FFFF, &gpio->gpcup);writel(0xAAAAAAAA, &gpio->gpdcon);writel(0x0000FFFF, &gpio->gpdup);writel(0xAAAAAAAA, &gpio->gpecon);writel(0x0000FFFF, &gpio->gpeup);writel(0x000055AA, &gpio->gpfcon);writel(0x000000FF, &gpio->gpfup);writel(0xFF95FFBA, &gpio->gpgcon);writel(0x0000FFFF, &gpio->gpgup);writel(0x002AFAAA, &gpio->gphcon);writel(0x000007FF, &gpio->gphup);return 0;
}

(3) 做了以上修改后,重新make编译成功,烧写u-boot.bin到Nor Flash,重启开发板,串口输出如下:
在这里插入图片描述
从上图可知,串口输出的是乱码,究其原因应该是波特率设置的问题。

3.3 查看波特率的设置,解决乱码的问题

(1) 查看串口波特率的设置,在common/board_f.c有函数board_init_f,它通过数组init_sequence_f里的函数初始化硬件,board_init_f函数的代码如下:

void board_init_f(ulong boot_flags)
{
#ifdef CONFIG_SYS_GENERIC_GLOBAL_DATA/** For some archtectures, global data is initialized and used before* calling this function. The data should be preserved. For others,* CONFIG_SYS_GENERIC_GLOBAL_DATA should be defined and use the stack* here to host global data until relocation.*/gd_t data;gd = &data;/** Clear global data before it is accessed at debug print* in initcall_run_list. Otherwise the debug print probably* get the wrong vaule of gd->have_console.*/zero_global_data();
#endifgd->flags = boot_flags;gd->have_console = 0;if (initcall_run_list(init_sequence_f))hang();#if !defined(CONFIG_ARM) && !defined(CONFIG_SANDBOX) && \!defined(CONFIG_EFI_APP)/* NOTREACHED - jump_to_copy() does not return */hang();
#endif
}

source insight 里跳转找到这个数据,从第二节启动过程分析,去掉无关代码后的init_sequence_f数组如下:

static init_fnc_t init_sequence_f[] = {/* setup_mon_len函数是设置gd结构体成员gd->mon_len的函数;*在setup_mon_len函数中:gd->mon_len = (ulong)&__bss_end - (ulong)_start;*gd->mon_len等于uboot.bin大小加上bss段的大小,_start为0*从反汇编的setup_mon_len函数可知:(ulong)&__bss_end = 0x000c636c;*所以,gd->mon_len = 0x000c636c;*/setup_mon_len,/* 1.在initf_malloc函数里,由于CONFIG_SYS_MALLOC_F_LEN没定义,* 直接返回0,相当于一个空函数* 2.initf_console_record函数,同理*/initf_malloc,initf_console_record,/* 空函数 */arch_cpu_init,		/* 空函数 */ /* basic arch cpu dependent setup */initf_dm,           /* 空函数 */arch_cpu_init_dm,  /* 空函数 */mark_bootstage,		/* 标记名字 *//* need timer, go after init dm */board_early_init_f,  /* 设置系统时钟,设置各个GPIO引脚 */timer_init,		/* initialize timer */env_init,		/* 设置gd的成员,初始化环境变量 *//* initialize environment */init_baud_rate,		/* initialze baudrate settings */serial_init,		/* serial communications setup */console_init_f,		/* stage 1 init of console */display_options,	/* 打印uboot版本等信息 *//* say that we are here */display_text_info,	/* 打印uboot代码信息 *//* show debugging info if required */print_cpuinfo,		/* 打印uboot时钟频率信息 *//* display cpu info (and speed) */announce_dram_init,  /* 打印“ DRAM:  ” *//* TODO: unify all these dram functions? */dram_init,		/* 设置gd->ram_size= 0x04000000(64MB) *//* configure available RAM banks */setup_dest_addr, /* 将gd->relocaddr、gd->ram_top指向SDRAM最顶端 */reserve_round_4k, /* gd->relocaddr 4KB对齐 */reserve_mmu,  /* 预留16KB的MMU页表并且64KB对齐 */reserve_trace,  /* 空函数 *//*reserve_uboot的作用是在SDRAM预留存放u-boot的空间(加上bss段)*gd->relocaddr -= gd->mon_len; *gd->relocaddr &= ~(4096 - 1); * gd->start_addr_sp = gd->relocaddr;*/reserve_uboot,/* reserve_malloc函数:* gd->start_addr_sp = gd->start_addr_sp - TOTAL_MALLOC_LEN; * 因为jz2440.h默认定义了CONFIG_ENV_ADDR,所以此时在include/common.h中* 执行#define TOTAL_MALLOC_LEN (CONFIG_SYS_MALLOC_LEN + CONFIG_ENV_SIZE)* 也就是TOTAL_MALLOC_LEN=4*1024*1024+0x10000=4MB+64KB* 预留4MB+64KB MALLOC内存池 */reserve_malloc,/* reserve_board函数:* gd->start_addr_sp -= sizeof(bd_t);  预留bd_t结构体空间,查看反汇编可知为80字节* gd->bd = (bd_t *)gd->start_addr_sp; 指定重定位bd地址* memset(gd->bd, '\0', sizeof(bd_t)); 清零 */   reserve_board,/*setup_machine函数:*gd->bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */setup_machine,reserve_global_data,/* 预留gd结构体空间,查看反汇编可知为168字节。并设置gd->new_gd */reserve_fdt,  /* 如果设置了gd->new_fdt则预留fdt设备树空间,这里没有设置,不用管 */reserve_arch,/* 空函数 *//* reserve_stacks函数:* gd->start_addr_sp -= 16;* gd->start_addr_sp &= ~0xf;* return arch_reserve_stacks();这里调用的不是board_f.c里的arch_reserve_stacks函数* 因为该函数被__weak修饰符声明,调用的是arch/arm/lib/stack.c里的arch_reserve_stacks函数* gd->irq_sp = gd->start_addr_sp;* gd->start_addr_sp -= 16;*/reserve_stacks,setup_dram_config,/* 设置gd结构体的SDRAM地址与大小 */show_dram_config,/* 打印SDRAM信息 */display_new_sp, /* 打印新的栈地址 */reloc_fdt, /*没有设置设备树,忽略*//*setup_reloc函数:*gd->reloc_off = gd->relocaddr - CONFIG_SYS_TEXT_BASE;计算重定位地址与链接地址偏移值,CONFIG_SYS_TEXT_BASE在jz2440.h定义为0,gd->reloc_off = gd->relocaddr*memcpy(gd->new_gd, (char *)gd, sizeof(gd_t));*把旧的gd复制到新的gd地址里*/setup_reloc,NULL,
};

(2) 从上面的init_sequence_f数组,可以找到串口初始化相关的函数serial_init,在drivers/serial/serial.c找到该函数的代码如下:

int serial_init(void)
{gd->flags |= GD_FLG_SERIAL_READY;return get_current()->start();
}

同样在drivers/serial/serial.c可以找到get_current函数,如下所示:

static struct serial_device *get_current(void)
{struct serial_device *dev;if (!(gd->flags & GD_FLG_RELOC))dev = default_serial_console();else if (!serial_current)dev = default_serial_console();elsedev = serial_current;/* We must have a console device */if (!dev) {
#ifdef CONFIG_SPL_BUILDputs("Cannot find console\n");hang();
#elsepanic("Cannot find console\n");
#endif}return dev;
}

get_current函数可知,它返回的是一个serial_device 结构体,该结构如下:

struct serial_device {/* enough bytes to match alignment of following func pointer */char	name[16];int	(*start)(void);int	(*stop)(void);void	(*setbrg)(void);int	(*getc)(void);int	(*tstc)(void);void	(*putc)(const char c);void	(*puts)(const char *s);
#if CONFIG_POST & CONFIG_SYS_POST_UARTvoid	(*loop)(int);
#endifstruct serial_device	*next;
};

所以,serial_init函数是通过调用serial_device结构体的start成员函数来初始化串口的。

(3) 从第二节的uboot启动过程分析可以知道,gd->flags是uboot是否重定位的标记,在执行 board_init_f函数时,代码还没开始重定位 ,此时gd->flags=0,所以执行的是if (!(gd->flags & GD_FLG_RELOC))分支里的dev = default_serial_console();
drivers/serial/serial_s3c24x0.c可以找到default_serial_console函数,代码如下:

__weak struct serial_device *default_serial_console(void)
{
#if defined(CONFIG_SERIAL1)return &s3c24xx_serial0_device;
#elif defined(CONFIG_SERIAL2)return &s3c24xx_serial1_device;
#elif defined(CONFIG_SERIAL3)return &s3c24xx_serial2_device;
#else
#error "CONFIG_SERIAL? missing."
#endif
}

由于CONFIG_SERIAL1jz2440.h文件被定义,所以该函数返回的是s3c24xx_serial0_device结构体,搜索s3c24xx_serial0_device可以在drivers/serial/serial_s3c24x0.c发现s3c24xx_serial0_device =INIT_S3C_SERIAL_STRUCTURE(0, "s3ser0");,如下图所示:

那么我们继续往下看,看看**INIT_S3C_SERIAL_STRUCTURE**是如何定义的,如下图所示:

原来它是一个宏, 以上的“##”连接符在编译时被去掉,连接符内的变量被替代,最终s3c24xx_serial0_device被定义成如下:

s3c24xx_serial0_device = {	\.name	= "s3ser0",				\.start	= s3serial0_init,		\.stop	= NULL,					\.setbrg	= s3serial0_setbrg,		\.getc	= s3serial0_getc,		\.tstc	= s3serial0_tstc,		\.putc	= s3serial0_putc,		\.puts	= s3serial0_puts,		\
}

对于函数声明的宏DECLARE_S3C_SERIAL_FUNCTIONS(0);,展开后代码如下:

	int s3serial0_init(void) { return serial_init_dev(0); } void s3serial0_setbrg(void) { serial_setbrg_dev(0); } int s3serial0_getc(void) { return serial_getc_dev(0); } int s3serial0_tstc(void) { return serial_tstc_dev(0); } void s3serial0_putc(const char c) { serial_putc_dev(0, c); } void s3serial0_puts(const char *s) { serial_puts_dev(0, s); }

由此可见,宏DECLARE_S3C_SERIAL_FUNCTIONS(0);一下子就声明了多个函数,现在最关心的是s3serial0_init函数,它调用serial_init_dev函数,该函数的代码如下:

/* Initialise the serial port. The settings are always 8 data bits, no parity,* 1 stop bit, no start bits.*/
static int serial_init_dev(const int dev_index)
{/* 得到ULCON0控制寄存器基地址0x50000000 */struct s3c24x0_uart *uart = s3c24x0_get_base_uart(dev_index);/* FIFO enable, Tx/Rx FIFO clear */writel(0x07, &uart->ufcon);writel(0x0, &uart->umcon);/* Normal,No parity,1 stop,8 bit */writel(0x3, &uart->ulcon);/** tx=level,rx=edge,disable timeout int.,enable rx error int.,* normal,interrupt or polling*/writel(0x245, &uart->ucon);_serial_setbrg(dev_index); /*设置波特率*/return (0);
}

串口输出乱码,很大原因是波特率设置不正确,所以我们需要了解 _serial_setbrg函数是如何设置波特率的,_serial_setbrg函数的代码如下:

static void _serial_setbrg(const int dev_index)
{struct s3c24x0_uart *uart = s3c24x0_get_base_uart(dev_index);unsigned int reg = 0;int i;/* value is calculated so : (int)(PCLK/16./baudrate) -1 */reg = get_PCLK() / (16 * gd->baudrate) - 1;writel(reg, &uart->ubrdiv);for (i = 0; i < 100; i++)/* Delay */ ;
}

在这里终于看到有时钟相关的函数:get_PCLK() ,然后跳转到 arch/arm/cpu/arm920t/s3c24x0/speed.c 文件的get_PCLK() ,代码如下:

/* return PCLK frequency */
ulong get_PCLK(void)
{const uint8_t pclk_divisors[] = { 1, 2, 4, 8 };struct syscon_regs *syscon = (struct syscon_regs *)SYSCON_BASE;const uint32_t clkset1 = readl(&syscon->clkset1);const uint8_t pclk_div =pclk_divisors[(clkset1 >> SYSCON_CLKSET1_PCLK_DIV_SHIFT) & 3];const ulong pclk_rate = get_HCLK() / pclk_div;return pclk_rate;
}

从上面的代码看,PCLK通过HCLK频得到的,那么继续看get_HCLK函数,代码如下图所示:在这里插入图片描述
从上图中可以发现#ifdef CONFIG_S3C2440 这一句是黑色的,说明没有定义这个CONFIG_S3C2440
处理措施:include/configs/jz2440.h中去掉CONFIG_S3C2410 ,换成CONFIG_S3C2440,如下所示:
在这里插入图片描述
然后,执行如下命令重新编译:

make distclean
make jz2440_defconfig
make

编译成功,重新烧写到开发的Nor Flash,重启开发板,串口输出信息如下图所示:
在这里插入图片描述
从上图可知,串口终于可以正常输出了,但是Flash和NAND都是显示0,接下来会继续修改代码使uboot支持Flash和NAND,这一节就到此结束。

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

相关文章

  1. django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3 ————

    问题现象: django连接数据库报错: django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3原因: Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3。 解决办法: 将MySQL驱动设置为pymysql,使用 pip install pymys…...

    2024/3/15 5:01:04
  2. 四、移植u-boot-2016.03到Jz2440之修改代码支持NAND启动

    4. 移植u-boot-2016.03之修改代码支持NAND启动对于Jz2440开发板,它不仅支持NOR Flash启动,还支持从NAND Flash启动。那么NOR Flash启动与NAND Flash启动有什么区别呢?NOR 启动,上电后NOR Flash被映射到0x00000000地址,然后CPU从0x00000000开始运行;NAND启动,上电后CPU自…...

    2024/3/14 7:11:52
  3. 五、移植u-boot-2016.03到Jz2440之修改代码支持NOR Flash

    5. 移植u-boot-2016.03修改代码支持NOR Flash 从上一节把uboot烧写到NAND启动后,最后打印出Flash: 0 Bytes,如下图所示。我们的Jz2440开发板的NOR Flash是2MB的,那么为什么显示Flash是0Bytes呢?显然,此时的uboot还没支持NOR Flash,所以不是识别开发板的NOR Flash大小。5.…...

    2024/3/20 7:01:46
  4. 六、移植u-boot-2016.03到Jz2440之修改代码支持NAND Flash

    6. 移植u-boot-2016.03修改代码支持NAND Flash 从前面串口的打印信息可知,uboot并没有识别出NAND Flash空间的大小,显示:NAND: 0 MiB,如下图所示:6.1 分析u-boot-2016.03源码之NAND Flash 我们在uboot的顶层目录输入命令:grep -nR "NAND:",在common/board_r.c…...

    2024/3/19 6:22:29
  5. 33、C语言常用库函数-字符操作类

    与字符操作相关(ctype.h)int isalpha(intch) 若ch是字母(A-Z,a-z)返回非0值,否则返回0 int isalnum(intch) 若ch是字母(A-Z,a-z)或数字(0-9) 返回非0值,否则返回0 int isascii(intch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(intch) 若ch是作废字符(0x…...

    2024/3/22 19:04:52
  6. 七、移植u-boot-2016.03到Jz2440之修改代码支持DM9000网卡

    7. 移植u-boot-2016.03修改代码支持DM9000网卡 从前面uboot的打印信息可知, 网卡打印的是CS8900,然后Jz2440开发板的网卡是DM9000网卡,u-boot-2016.03也带有DM9000网卡的驱动程序,我们需要把移植过来支持JZ2440开发板。7.1 网卡初始化过程分析 通过之前uboot启动过程的分析…...

    2024/3/26 18:08:02
  7. 八、移植u-boot-2016.03到Jz2440之剪裁、修改默认参数、设置分区

    8. u-boot-2016.03移植之剪裁、修改默认参数、设置分区 从前面编译出来的u-boot.bin文件大小490多KB,其实其中有很多我们不用的代码,我们可以通过裁减uboot去掉我们没用的功能,以减少u-boot.bin文件的大小,同时也方便我们烧uboot。 8.1 修改include/configs/jz2440.h文件剪…...

    2024/3/26 11:03:07
  8. 九、移植u-boot-2016.03到Jz2440之修改源码支持LCD、显示logo

    9. 移植u-boot-2016.03修改代码支持LCD、显示logo前我们修改uboot的代码支持了NOR Flash、NAND Flash、DM9000网卡等,在uboot启动总是可以看到开发板的LCD由于uboot不支持出现花屏的现象,总感觉不爽。因此,这一节我们来修改uboot的代码支持LCD、显示logo。 9.1 u-boot-2016.…...

    2024/3/25 5:38:14
  9. 19、内部排序之快速排序

    内部排序指排序记录存放在计算机随机存储器中进行的排序过程,外部排序指,由于待排序的记录数量太大,以致排序过程中尚需对外存进行访问的排序过程。一、快速排序的基本思想1、快速排序(Quick Sorting)又称分区交换排序,是对冒泡排序算法的改进,是一种基于分组进行互换的…...

    2024/3/28 14:16:19
  10. 32、再论函数传值中指针和引用的区别

    一、回忆前面我们谈到过指针和引用的区别及联系,认识到,指针是一个实体,而引用仅是个别名(绰号);对引用型变量进行除赋值以外的一切操作,相当于对被引用变量进行操作。但是,问题还没有结束,今天我想到一个问题,开始破灭我心中对前面引用的认识。对引用的介绍,见http…...

    2024/3/26 22:21:40
  11. POJ-1797-Heavy-Transportation

    title: POJ-1797-Heavy Transportation categories:ACM dij tags: 最大最小距离 date: 2020-03-06 08:57:10dij用途还是很广的,稍微分析一下可行性就可以。可行性主要表现在两部分,第一部分筛选最优解,第二部分更新当前状态。只要这两点可行就可以。注意不能图省事两个循环同…...

    2024/3/11 22:43:57
  12. 18、树和森林的存储结构、转换、遍历

    一、树的存储结构1、双亲存储表示法 一般采用顺序存储结构实现。用一组地址连续的存储单元来存放树的结点,每个结点有两个域:data域-----存放结点的信息;  parent域-----存放该结点双亲结点的位置。特点:求结点的双亲很容易,但求结点的孩子需要遍历整个向量。存储结构描…...

    2024/3/21 21:06:47
  13. dotcpp-1004

    title: dotcpp-1004 categories:ACM 水题 tags: 斐波那契 兔子问题 date: 2020-02-16 15:59:20第一年一头成年母牛,每年生一小牛,小牛四年后才成年,求第N年的牛的个数题目 题目描述 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛…...

    2024/3/27 22:11:27
  14. 17、线索二叉树的生成和遍历

    一、相关概念及思想介绍1、n个结点有n-1个前驱和n-1个后继;一共有2n个链域,其中:n+1个空链域,n-1个指针域;因此, 可以用空链域来存放结点的前驱和后继。线索二叉树就是利用n+1个空链域来存放结点的前驱和后继结点的信息。2、线索:有效利用二叉链表中空的存储空间,指定原…...

    2024/3/11 22:43:54
  15. HDU-1005

    title: HDU-1005 categories:ACM 大数动态周期 tags: 斐波那契取余版 动态周期 date: 2020-02-09 12:33:27这个题大家第一次应该都是超时吧,这个题网上流传的%49或者%48都是错误的,大家反而觉得他们解释的逻辑很对,我也是服了,这么一份错答案竟然能够横扫CSDN!能够在网络上…...

    2024/3/28 16:46:35
  16. 16、二叉树的遍历

    一、相关概念0、树的结点包含一个数据元素及若干指向其子树的分支;1.、树的结点:包含一个数据元素和指向其子树的所有分支;2.、结点的度:一个结点拥有的子树个数,度为零的结点称为叶结点;3.、树的度:树中所有结点的度的最大值 Max(D(I));含义:树中最大分支数为树的度;4.、结点的…...

    2024/3/11 22:43:52
  17. Django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using passwo...

    Django 链接 Mysql 数据库 的时候出现了一个错误,出错信息: Django.db.utils.OperationalError: (1045, "Access denied for user root@localhost (using password...原因: 由于Mysql 8.0 的部分语法,密码的加密方式发生了改变,在8.0 中的用户密码采用的是cha2 加密方…...

    2024/3/11 22:43:50
  18. 15、构造最优二叉树-赫夫曼(Huffman)树算法

    一、基本概念1、赫夫曼(Huffman)树又称最优二叉树或最优搜索树,是一种带权路径长度最短的二叉树。在许多应用中,常常赋给树中结点一个有某种意义的实数,称此实数为该结点的权。从树根结点到该结点之间的路径长度与该结点上权的乘积称为结点的带权路径长度(WPL),树中所有叶…...

    2024/3/29 6:02:36
  19. 14、求关键路径

    1、重要概念(1)AOE (Activity OnEdges)网络 如果在无有向环的带权有向图中用有向边表示一个工程中的各项活动(Activity),用边上的权值表示活动的持续时间(Duration),用顶点表示事件(Event),则这样的有向图叫做用边表示活动的网络,简称AOE (Activity On Edges)网络。AOE网…...

    2024/3/13 3:22:39
  20. 13、弗罗莱(Fleury)算法,求欧拉(Euler)通路/回路

    1、基本概念:(1)定义 欧拉通路 (欧拉迹)—通过图中每条边一次且仅一次,并且过每一顶点的通路。欧拉回路 (欧拉闭迹)—通过图中每条边一次且仅一次,并且过每一顶点的回路。欧拉图—存在欧拉回路的图。欧拉图就是从一顶出发每条边恰通过一次又能回到出发顶点的那种图,即不重…...

    2024/3/11 22:43:47

最新文章

  1. 【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术

    ꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …...

    2024/3/29 19:08:22
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 对话 Mines of Dalarnia: Web3 游戏创新,社区驱动与公链共建

    作者&#xff1a;stellafootprint.network 嘉宾&#xff1a;Manfred Pack&#xff0c;Mines of Dalarnia 游戏开发总监 采访者&#xff1a;Alex Cooper&#xff0c;Footprint Analytics 北美社区与 BD 负责人 在区块链游戏领域&#xff0c;去中心化和玩家经济正在颠覆传统游戏…...

    2024/3/29 9:00:37
  4. verilog设计-CDC:单bit脉冲快时钟域到慢时钟域

    一、前言 当单bit信号由快时钟域传递给慢时钟域时&#xff0c;快时钟域的异步信号最小可为快时钟信号的一个时钟周期脉冲&#xff0c;快时钟域的单时钟周期脉冲长度小于慢时钟域的时钟周期&#xff0c;很有可能该脉冲信号在慢时钟域的两个时钟上升沿之间&#xff0c;导致该脉冲…...

    2024/3/29 1:30:13
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/3/29 18:08:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/3/29 18:08:34
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

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

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

    2024/3/29 16:26:39
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

    2024/3/29 5:19:52
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

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

    2024/3/29 18:08:00
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/3/29 11:11:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/3/29 1:13:26
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/3/29 8:28:16
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/3/29 7:41:19
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/3/29 18:07:15
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

    2024/3/29 9:57:23
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

    2024/3/29 0:49:46
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/3/29 18:06:57
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/3/29 17:27:19
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/3/29 18:06:36
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/3/29 18:06:22
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/3/28 18:26:34
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/3/29 18:06:01
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/3/28 20:09:10
  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