seo免费网站建设/网站设计论文
目录
1 问题描述
2 解决过程
2.1 查看内核日志
2.2 新建一个交换分区
2.3 指定交换分区的位置
1 问题描述
CPU:G6900E
OS:ubuntu22.04
Kernel:6.8.0-49-generic
使用“echo disk > /sys/power/state”命令进入 S4,但是无法进入, 操作如下所示。
root@jw-Windows-cpmpact-G6900E:/home/jw# echo disk > /sys/power/state
bash: echo: 写入错误:没有那个设备
root@jw-Windows-cpmpact-G6900E:/home/jw#
2 解决过程
2.1 查看内核日志
进入 S4 失败后,使用“dmesg”命令查看内核日志,内核日志如下所示,其中重要的日志为“PM: Cannot find swap device, try swapon -a”,提示找不到 swap 设备。执行“swapon -a”命令无法解决问题。
[78840.042887] PM: hibernation: hibernation entry
[78840.055243] Filesystems sync: 0.006 seconds
[78840.055376] Freezing user space processes
[78840.057843] Freezing user space processes completed (elapsed 0.002 seconds)
[78840.057849] OOM killer disabled.
[78840.058011] PM: hibernation: Marking nosave pages: [mem 0x00000000-0x00000fff]
[78840.058017] PM: hibernation: Marking nosave pages: [mem 0x0009e000-0x0009efff]
[78840.058019] PM: hibernation: Marking nosave pages: [mem 0x000a0000-0x000fffff]
[78840.058024] PM: hibernation: Marking nosave pages: [mem 0x6e5f2000-0x6e5f2fff]
[78840.058027] PM: hibernation: Marking nosave pages: [mem 0x71a6c000-0x75ffefff]
[78840.058535] PM: hibernation: Marking nosave pages: [mem 0x76000000-0xffffffff]
[78840.066112] PM: hibernation: Basic memory bitmaps created
[78840.066427] PM: hibernation: Preallocating image memory
[78840.504280] PM: hibernation: Allocated 775548 pages for snapshot
[78840.504283] PM: hibernation: Allocated 3102192 kbytes in 0.43 seconds (7214.40 MB/s)
[78840.504286] Freezing remaining freezable tasks
[78840.505560] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[78840.523683] printk: Suspending console(s) (use no_console_suspend to debug)
[78840.524511] serial 00:01: disabled
[78840.543352] ata7.00: Entering standby power mode
[78840.681487] ACPI: PM: Preparing to enter system sleep state S4
[78840.683132] ACPI: PM: Saving platform NVS memory
[78840.683886] Disabling non-boot CPUs ...
[78840.685459] smpboot: CPU 1 is now offline
[78840.688214] PM: hibernation: Creating image:
[78840.814946] PM: hibernation: Need to copy 767085 pages
[78840.814948] PM: hibernation: Normal pages needed: 767085 + 1024, available pages: 1269914
[78841.313751] PM: hibernation: Image created (676706 pages copied, 90379 zero pages)
[78840.688625] ACPI: PM: Restoring platform NVS memory
[78840.689477] Enabling non-boot CPUs ...
[78840.689502] smpboot: Booting Node 0 Processor 1 APIC 0x2
[78840.690614] CPU1 is up
[78840.691569] ACPI: PM: Waking up from system sleep state S4
[78840.722662] serial 00:01: activated
[78840.732302] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.20.0
[78840.732310] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[78840.740852] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
[78840.740859] i915 0000:00:02.0: [drm] GT0: GUC: submission disabled
[78840.740862] i915 0000:00:02.0: [drm] GT0: GUC: SLPC disabled
[78840.758499] iwlwifi 0000:00:14.3: WRT: Invalid buffer destination
[78840.853462] iwlwifi 0000:00:14.3: WFPM_UMAC_PD_NOTIFICATION: 0x20
[78840.853500] iwlwifi 0000:00:14.3: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[78840.853510] iwlwifi 0000:00:14.3: WFPM_AUTH_KEY_0: 0x90
[78840.853521] iwlwifi 0000:00:14.3: CNVI_SCU_SEQ_DATA_DW9: 0x10
[78840.854622] iwlwifi 0000:00:14.3: RFIm is deactivated, reason = 5
[78840.930832] r8168 0000:01:00.0 enp1s0: Device reseting!
[78840.942417] workqueue: rtl8168_reset_task [r8168] hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
[78840.956487] PM: Cannot find swap device, try swapon -a
[78840.956490] PM: Cannot get swap writer
[78840.958898] r8152 2-2.1:1.0 enx00e04c600172: carrier on
[78841.016028] PM: hibernation: Basic memory bitmaps freed
[78841.016097] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
[78841.016249] OOM killer enabled.
[78841.016251] Restarting tasks ...
[78841.017162] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
[78841.017840] done.
[78841.018337] PM: hibernation: hibernation exit
[78841.086574] ata6: SATA link down (SStatus 4 SControl 300)
[78841.086632] ata8: SATA link down (SStatus 4 SControl 300)
[78841.086686] ata5: SATA link down (SStatus 4 SControl 300)
[78841.086716] ata7: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[78841.088885] ata7.00: configured for UDMA/133
[78841.098998] ahci 0000:00:17.0: port does not support device sleep
使用“swapon --show”命令查看交换分区,显示有/swapfile,但是其类型为 file 而不是partition。
jw@jw-EloPOS-Compact-G6900E:~$ swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2
使用“lsblk”命令查看不到交换分区。
jw@jw-EloPOS-Compact-G6900E:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 73.9M 1 loop /snap/core22/1722
loop1 7:1 0 74.2M 1 loop /snap/core22/1122
loop2 7:2 0 4K 1 loop /snap/bare/5
loop3 7:3 0 266.6M 1 loop /snap/firefox/3836
loop4 7:4 0 497M 1 loop /snap/gnome-42-2204/141
loop5 7:5 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop6 7:6 0 12.2M 1 loop /snap/snap-store/1216
loop7 7:7 0 12.3M 1 loop /snap/snap-store/959
loop8 7:8 0 40.4M 1 loop /snap/snapd/20671
loop9 7:9 0 44.4M 1 loop /snap/snapd/23545
loop10 7:10 0 568K 1 loop /snap/snapd-desktop-integration/253
loop11 7:11 0 452K 1 loop /snap/snapd-desktop-integration/83
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
└─sda2 8:2 0 118.7G 0 part /var/snap/firefox/common/host-hunspell/
nbd0 43:0 0 0B 0 disk
nbd1 43:32 0 0B 0 disk
nbd2 43:64 0 0B 0 disk
nbd3 43:96 0 0B 0 disk
nbd4 43:128 0 0B 0 disk
nbd5 43:160 0 0B 0 disk
nbd6 43:192 0 0B 0 disk
nbd7 43:224 0 0B 0 disk
zram0 252:0 0 0B 0 disk
nbd8 43:256 0 0B 0 disk
nbd9 43:288 0 0B 0 disk
nbd10 43:320 0 0B 0 disk
nbd11 43:352 0 0B 0 disk
nbd12 43:384 0 0B 0 disk
nbd13 43:416 0 0B 0 disk
nbd14 43:448 0 0B 0 disk
nbd15 43:480 0 0B 0 disk
jw@jw-EloPOS-Compact-G6900E:~$
2.2 新建一个交换分区
在安装系统时手动分区,新建一个交换分区。操作过程如下所示。
点击“中文(简体)”,然后点击“安装 Ubuntu”。
点击“继续”。
选择以下内容,然后点击“继续”。
选择“其选项”,然后点击“继续”。
如果原始硬盘有其他分区,请先删除分区,只剩一块空闲区域,如下所示。
保留BIOS启动分区,这个是必须的,但是只要求大于1M就行,我给32M,使用的主分区。
EFI系统分区,这个也是必须的,也不用太大,给512M就行,逻辑分区。
交换空间,系统进入 S4 必须要有的分区,如果内存低的话(1-4G),建议为物理内存的两倍;>4G的话,要么等于物理内存,要么物理内存+2g左右,我这里直接给 16G。
/boot分区,/boot分区在挂载点选项中,这个也是必须的,存放的是linux内核和启动引导文件。给2G,逻辑分区。
安装系统的分区,这个分区的大小就看情况而定了,如果装的软件多就大点。当然安装软件的目录也可以单独分区,我这里把剩余的储存都分到这个区域。需要注意:这是系统,必须主分区!
点击“继续”。
点击“继续”。
填写信息和密码,点击“继续”。
等待安装成功。安装成功后,使用“swapon --show”命令查看交换分区,可以看到有/dev/sda3 交换分区,而且类型为partition。
jw@jw-EloPOS-Compact-G6900E:~$ swapon --show
NAME TYPE SIZE USED PRIO
/dev/sda3 partition 15.3G 0B -2
jw@jw-EloPOS-Compact-G6900E:~$
使用“lsblk”命令查看能查看到 sda3 后面有 SWAP 的标志。
jw@jw-EloPOS-Compact-G6900E:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 74.2M 1 loop /snap/core22/1122
loop2 7:2 0 266.6M 1 loop /snap/firefox/3836
loop3 7:3 0 497M 1 loop /snap/gnome-42-2204/141
loop4 7:4 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop5 7:5 0 12.3M 1 loop /snap/snap-store/959
loop6 7:6 0 40.4M 1 loop /snap/snapd/20671
loop7 7:7 0 452K 1 loop /snap/snapd-desktop-integration/83
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 30M 0 part
├─sda2 8:2 0 488M 0 part /boot/efi
├─sda3 8:3 0 15.3G 0 part [SWAP]
├─sda4 8:4 0 1.9G 0 part /boot
└─sda5 8:5 0 101.6G 0 part /var/snap/firefox/common/host-hunspell/
jw@jw-EloPOS-Compact-G6900E:~$
创建了 swap 分区,使用“echo disk > /sys/power/state ”命令不会报错,机器能关机,但是开机不保存原先的状态,抓取的 log 如下,可以看到数据保存到硬盘已成功,可能是机器开机时没有选择交换分区启动。
[ 210.103344] PM: hibernation: hibernation entry
[ 210.133849] Filesystems sync: 0.024 seconds
[ 210.138185] Freezing user space processes
[ 210.143904] Freezing user space processes completed (elapsed 0.001 seconds)
[ 210.150955] OOM killer disabled.
[ 210.157486] PM: hibernation: Preallocating image memory
[ 210.518218] PM: hibernation: Allocated 580388 pages for snapshot
[ 210.524249] PM: hibernation: Allocated 2321552 kbytes in 0.35 seconds (6633.00 MB/s)
[ 210.532007] Freezing remaining freezable tasks
[ 210.537855] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 210.568530] printk: Suspending console(s) (use no_console_suspend to debug)
[ 210.576335] serial 00:01: disabled
[ 210.606020] ata7.00: Entering standby power mode
[ 210.730940] ACPI: PM: Preparing to enter system sleep state S4
[ 210.732493] ACPI: PM: Saving platform NVS memory
[ 210.732954] Disabling non-boot CPUs ...
[ 210.734379] smpboot: CPU 1 is now offline
[ 210.736561] PM: hibernation: Creating image:
[ 210.870463] PM: hibernation: Need to copy 562217 pages
[ 211.277005] PM: hibernation: Image created (491079 pages copied, 71138 zero pages)
[ 210.736972] ACPI: PM: Restoring platform NVS memory
[ 210.737810] Enabling non-boot CPUs ...
[ 210.737837] smpboot: Booting Node 0 Processor 1 APIC 0x2
[ 210.738941] CPU1 is up
[ 210.739870] ACPI: PM: Waking up from system sleep state S4
[ 210.767977] serial 00:01: activated
[ 210.773038] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.5.1
[ 210.773044] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[ 210.781314] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
[ 210.781321] i915 0000:00:02.0: [drm] GT0: GUC: submission disabled
[ 210.781324] i915 0000:00:02.0: [drm] GT0: GUC: SLPC disabled
[ 210.832422] r8168 0000:01:00.0 enp1s0: Device reseting!
[ 210.996902] r8152 2-2.1:1.0 enx00e04c600172: carrier on
[ 211.084300] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
[ 211.096035] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
[ 211.128635] ata5: SATA link down (SStatus 4 SControl 300)
[ 211.134110] ata7: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 211.140355] ata8: SATA link down (SStatus 4 SControl 300)
[ 211.145821] ata6: SATA link down (SStatus 4 SControl 300)
[ 211.152203] ata7.00: configured for UDMA/133
[ 211.166603] ahci 0000:00:17.0: port does not support device sleep
[ 211.173155] PM: Using 1 thread(s) for compression
[ 211.177885] PM: Compressing and saving image data (492178 pages)...
[ 211.184168] PM: Image saving progress: 0%
[ 211.538023] PM: Image saving progress: 10%
[ 212.009899] PM: Image saving progress: 20%
[ 212.514721] PM: Image saving progress: 30%
[ 213.004586] PM: Image saving progress: 40%
[ 213.467357] PM: Image saving progress: 50%
[ 213.935768] PM: Image saving progress: 60%
[ 214.348204] PM: Image saving progress: 70%
[ 214.754283] PM: Image saving progress: 80%
[ 215.206220] PM: Image saving progress: 90%
[ 215.564862] PM: Image saving progress: 100%
[ 215.569214] PM: Image saving done
[ 215.572551] PM: hibernation: Wrote 1968712 kbytes in 4.38 seconds (449.47 MB/s)
[ 215.579920] PM: S|
[ 215.630665] printk: Suspending console(s) (use no_console_suspend to debug)
2.3 指定交换分区的位置
将“/etc/default/grub”文件的“GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"”改成“GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/sda3"”,指定交换分区的位置为“/dev/sda3”,然后执行“update-grub”命令并重启,即可解决问题。
--- a/etc/default/grub
+++ b/etc/default/grub
@@ -7,7 +7,7 @@ GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-3-generic"GRUB_TIMEOUT_STYLE=hiddenGRUB_TIMEOUT=0GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
-GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
+GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/sda3"GRUB_CMDLINE_LINUX=""# Uncomment to enable BadRAM filtering, modify to suit your needs
相关文章:

[x86 ubuntu22.04]进入S4失败
目录 1 问题描述 2 解决过程 2.1 查看内核日志 2.2 新建一个交换分区 2.3 指定交换分区的位置 1 问题描述 CPU:G6900E OS:ubuntu22.04 Kernel:6.8.0-49-generic 使用“echo disk > /sys/power/state”命令进入 S4,但是无法…...

12.外观模式(Facade Pattern)
定义 外观模式(Facade Pattern) 是一种结构型设计模式,它通过为复杂的子系统提供一个统一的接口,使得子系统的使用更加简化。外观模式通常隐藏了复杂的内部子系统,使得客户端可以通过一个简单的接口与这些子系统进行交…...

ES6 入门教程:箭头函数、解构赋值及其他新特性详解
ES6 入门教程:箭头函数、解构赋值及其他新特性详解 ES6 入门教程:箭头函数、解构赋值及其他新特性详解引言什么是 ES6?箭头函数(Arrow Functions)1. 基本语法2. 常见特点(1)没有自己的 this 上下…...

win编译openssl
一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…...

51单片机看门狗系统
在 STC89C52 单片机中,看门狗控制寄存器的固定地址为 0xE1。此地址由芯片厂商在硬件设计时确定,但是它在头文件中并未给出,因此在使用看门狗系统时需要声明下这个特殊功能寄存器 sfr WDT_CONTR 0xE1; 本案将用一个小灯的工作状况来展示看门…...

探索 paraphrase-MiniLM-L6-v2 模型在自然语言处理中的应用
在自然语言处理(NLP)领域,将文本数据转换为机器学习模型可以处理的格式是至关重要的。近年来,sentence-transformers 库因其在文本嵌入方面的卓越表现而受到广泛关注。本文将深入探讨 paraphrase-MiniLM-L6-v2 模型,这…...

2025最新软件测试面试大全(附答案+文档)
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里…...

Java语法进阶
目录: Object类、常用APICollection、泛型List、Set、数据结构、CollectionsMap与斗地主案例异常、线程线程、同步等待与唤醒案例、线程池、Lambda表达式File类、递归字节流、字符流缓冲流、转换流、序列化流、Files网络编程 十二、函数式接口Stream流、方法引用 一…...

UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK
UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK Neurips23 推荐指数:#paper/⭐⭐⭐#(工作量不小) 动机 在大多数分子表征学习方法中,分子被视为 1D 顺序标记或2D 拓扑图,这限制了它们为下游任务整合…...

笔记day7
文章目录 1 分页功能实现2 分页器的展示需要哪些数据(条件)?3 自定义分页器4 分页器存在问题5 分页器动态展示6 开发某一个商品的详情页面 1 分页功能实现 为什么很多项目采用分页功能,比如电商平台同时展示的数据有很多…...

106,【6】 buuctf web [SUCTF 2019]CheckIn
进入靶场 文件上传 老规矩,桌面有啥传啥 过滤了<? 寻找不含<?的一句话木马 文件名 123(2).php.jpg 文件内容 GIF89a? <script language"php">eval($_GET[123]);</script> 123即密码,可凭借个人喜好更换 再上传一个文…...

基于Ubuntu2404搭建Zabbix7.2
Zabbix 搭建zabbix zabbix7.2已推出:官网 增加的新功能如下: 1.使用新的热门商品小部件全面概览指标 数据概览小部件已转换为热门项目小部件使用项目模式可以实现细粒度的项目选择利用条形图、指标和迷你图来可视化您的数据定义价值阈值以动态地可视化…...

OPENGLPG第九版学习 - 着色器基础
文章目录 2.1 着色器与OpenGL2.2 0penGL的可编程管线2.3 OpenGL着色语言GLSL概述2.3.1 使用GLSL构建着色器变量的声明变量的作用域变量的初始化构造函数 、 类型转换聚合类型访问向量和矩阵中的元素结构体数组多维数组 2.3.2 存储限制符const 存储限制符in 存储限制符out 存储限…...

Android 使用ExpandableListView时,需要注意哪些细节
1. 布局属性设置 尺寸属性 宽度和高度:要合理设置 android:layout_width 和 android:layout_height 属性。如果设置为 match_parent,它会填满父容器;设置为 wrap_content,则会根据内容自动调整大小。例如,若想让 Exp…...

redis简介及应用
文章目录 1.redis简介2.安装配置2.1 单机部署2.2 配置 3 主从部署4 哨兵部署5.集群部署6.客户端工具 1.redis简介 某些网站出现的问题,如12306、淘宝等… 2.安装配置 2.1 单机部署 安装gcc、关闭防火墙、关闭selinux等 #安装gcc yum -y install gcc #关闭防火墙…...

Electron使用WebAssembly实现CRC-8 MAXIM校验
Electron使用WebAssembly实现CRC-8 MAXIM校验 将C/C语言代码,经由WebAssembly编译为库函数,可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-8 MAXIM格式校验的方式。 CRC-8 MAXIM校验函数WebAssembly源文件 C语言实现C…...

人工智能赋能企业系统架构设计:以ERP与CRM系统为例
一、引言 1.1 研究背景与意义 在数字化时代,信息技术飞速发展,人工智能(Artificial Intelligence, AI)作为一项具有变革性的技术,正深刻地影响着各个领域。近年来,AI 在技术上取得了显著突破,…...

NacosRce到docker逃逸实战
NacosRce到docker逃逸实战 1、Nacos Derby Rce打入内存马 这个漏洞的原理大家应该都知道, 2.3.2 < Nacos < 2.4.0版本默认derby接口未授权访问,攻击者可利用未授权访问执行SQL语句加载构造恶意的JAR包导致出现远程代码执行漏洞。 在日常的漏洞挖…...

Linux:文件系统(软硬链接)
目录 inode ext2文件系统 Block Group 超级块(Super Block) GDT(Group Descriptor Table) 块位图(Block Bitmap) inode位图(Inode Bitmap) i节点表(inode Tabl…...

在Spring Cloud中将Redis共用到Common模块
前言 在分布式系统中,共用组件的设计可以极大地提升代码复用性和维护性。Spring Cloud中将Redis共用到一个公共模块(common模块)是一个常见的设计实践,这样可以让多个微服务共享相同的Redis配置和操作逻辑。本文将详细介绍如何在…...

如何解决 Vue 应用中的内存泄漏
如何解决 Vue 应用中的内存泄漏 如何解决 Vue 应用中的内存泄漏常见的内存泄漏原因1. 组件生命周期管理不善2. 闭包引起的引用3. 数据订阅与发布系统4. 第三方库的内存泄漏5. 路由缓存和组件实例堆积排查内存泄漏的工具1. **Chrome DevTools**2. **Firefox Developer Tools**3.…...

什么是物理地址,什么是虚拟地址?
摘要 什么是物理地址,什么是虚拟地址? 如果处理器没有MMU或未启用,CPU执行单元发出的内存地址直接传到芯片引脚上,被内存芯片接受,这称为物理地址(Physical Addraress) 如果处理器启用了MMU&a…...

find 和 filter 都是 JavaScript 数组的常用方法
find 和 filter 都是 JavaScript 数组的常用方法,用来查找符合条件的元素,但它们有一些关键的区别: 1. find 方法 返回值:find 方法返回数组中 第一个符合条件的元素,如果没有找到符合条件的元素,返回 un…...

MVC、MVP和MVVM模式
MVC模式中,视图和模型之间直接交互,而MVP模式下,视图与模型通过Presenter进行通信,MVVM则采用双向绑定,减少手动同步视图和模型的工作。每种模式都有其优缺点,适合不同规模和类型的项目。 ### MVVM 与 MVP…...

基于RTOS的STM32游戏机
1.游戏机的主要功能 所有游戏都来着B站JL单片机博主开源 这款游戏机具备存档与继续游戏功能,允许玩家在任何时候退出当前游戏并保存进度,以便日后随时并继续之前的冒险。不仅如此,游戏机还支持多任务处理,玩家可以在退出当前游戏…...

【CPP】CPP经典面试题
文章目录 引言1. C 基础1.1 C 中的 const 关键字1.2 C 中的 static 关键字 2. 内存管理2.1 C 中的 new 和 delete2.2 内存泄漏 3. 面向对象编程3.1 继承和多态3.2 多重继承 4. 模板和泛型编程4.1 函数模板4.2 类模板 5. STL 和标准库5.1 容器5.2 迭代器 6. 高级特性6.1 移动语义…...

WPF基础03——InitializeComponent()函数解释
总述 InitializeComponent(),是MainWindow中的构造函数,实际写项目过程中,多多少少都会碰到该函数报错的情况,现在对InitializeComponent()做一些理解和说明。 在 WPF 中,XAML 文件和代码后台…...

如何在自己mac电脑上私有化部署deep seek
在 Mac 电脑上私有化部署 DeepSeek 的步骤如下: 1. 环境准备 安装 Homebrew(如果尚未安装): Homebrew 是 macOS 上的包管理工具,用于安装依赖。 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com…...

iOS 老项目适配 #Preview 预览功能
前言 iOS 开发者 最憋屈的就是UI 布局慢,一直以来没有实时预览功能,虽然swiftUI 早就支持了,但是目前主流还是使用UIKit在布局,iOS 17 苹果推出了 #Preview 可以支持UIKit 实时预览,但是仅仅是 iOS 17,老项目怎么办呢?于是就有了这篇 老项目适配 #Preview 预览 的文章,…...

7 与mint库对象互转宏(macros.rs)
macros.rs代码定义了一个Rust宏mint_vec,它用于在启用mint特性时,为特定的向量类型实现与mint库中对应类型的相互转换。mint库是一个提供基本数学类型(如点、向量、矩阵等)的Rust库,旨在与多个图形和数学库兼容。这个宏…...