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

Linux学习(嵌入式硬件知识)

GPU和CPU

       GPU(Graphics Processing Unit,图形处理单元)和 CPU(Central Processing Unit,中央处理单元)是计算机中两种不同的处理器。它们在功能、设计和用途上有所不同。

  1. CPU(中央处理单元):

    • CPU 是计算机中的主要处理器,负责执行计算机程序中的指令。
    • CPU 主要用于执行通用计算任务,如操作系统管理、应用程序执行、文件操作、网络通信等。
    • CPU 的设计注重单线程性能和处理器核心数量,用于处理串行任务和少量的并行任务。
    • CPU 通常具有较高的时钟频率和大量的高速缓存,用于提高单线程性能和响应速度。
    • CPU 常见的制造商包括英特尔(Intel)和 AMD 等。
  2. GPU(图形处理单元):

    • GPU 是专门用于图形处理和并行计算的处理器,最初设计用于图形渲染和游戏图形处理。
    • GPU 主要用于执行大规模并行计算任务,如图像处理、视频编解码、科学计算、机器学习等。
    • GPU 的设计注重并行计算性能和大规模数据处理能力,通常具有大量的处理单元和高速存储器。
    • GPU 的核心设计思想是并行处理大量的数据,可以同时执行多个计算任务,提高计算效率和吞吐量。
    • GPU 常见的制造商包括英伟达(NVIDIA)和 AMD 等。

        总的来说,CPU 和 GPU 在设计和用途上有所不同,各自适用于不同类型的计算任务。CPU 适用于处理串行任务和少量的并行任务,而 GPU 则适用于执行大规模并行计算任务。在某些情况下,CPU 和 GPU 可以相互配合,利用各自的优势来提高整体计算性能。

EMMC

        eMMC(嵌入式多媒体卡)是一种内置型快闪存储解决方案,常见于嵌入式系统、移动设备和一些消费类电子产品中。它的设计集成了快闪存储器和控制器,并通过MMC(多媒体卡)接口连接到主处理器或主板上。这些是eMMC的一些主要特点和优势:

  1. 集成设计:eMMC集成了闪存存储器和控制器在一个芯片上,简化了系统设计和布局。

  2. 低功耗:eMMC通常具有较低的功耗,适合于需要长时间待机或移动设备。

  3. 相对低成本:与一些其他存储解决方案相比,eMMC的成本较低,适用于成本敏感的应用。

  4. 可靠性:eMMC通常具有较高的可靠性和耐久性,适用于需要长期运行的应用。

  5. 易于集成:由于eMMC是一个封装好的模块,因此它相对容易集成到设计中,减少了设计和调试的复杂性。

  6. 性能:虽然eMMC的性能一般比不上一些高端的存储解决方案(比如SSD),但对于许多嵌入式和移动应用来说,其性能已经足够。

      总的来说,eMMC是一种灵活、经济、可靠的存储解决方案,适用于许多嵌入式和移动应用。

看门狗

        看门狗(Watchdog)是一种硬件或软件机制,用于监视系统的运行状态并在系统出现故障或挂起时采取措施。其作用类似于现实世界中的守护犬,可以监视系统是否正常工作,并在系统停止响应时采取自动行动,例如重新启动系统。

        在计算机系统中,硬件看门狗通常是一种定时器,它周期性地检查系统是否处于正常运行状态。如果系统正常工作,那么在每个定时器周期结束时,系统会向看门狗发送一个“喂狗”信号(通常是重置看门狗的计时器)。如果系统发生故障或者停止响应,那么在一段时间内没有收到“喂狗”信号后,看门狗会认为系统已经挂起,并采取相应的措施,比如触发系统重启。

        软件看门狗则是一种通过软件实现的监视机制,通常由操作系统或者应用程序来管理。软件看门狗通常与硬件看门狗配合使用,用于监视软件层面的运行状态。软件看门狗可以监视应用程序的运行情况,并在检测到应用程序出现故障或挂起时采取措施,例如重新启动应用程序或者触发系统重启。

       看门狗在嵌入式系统、服务器、网络设备和其他关键系统中被广泛应用,它可以提高系统的可靠性和稳定性,确保系统能够持续运行,并及时恢复到正常状态。

DDR

        "DDR" 是指 "Double Data Rate",即双倍数据传输速率。在计算机科学领域,DDR 通常用于描述一种类型的动态随机存取存储器 (DRAM)。DDR 内存是一种广泛用于计算机系统的主存储器,具有高速和低功耗的特点。

        DDR 内存与传统的 SDR (Single Data Rate) 内存相比,有着更高的数据传输速率。DDR 内存在数据传输时可以在每个时钟周期传输两次数据,这就是所谓的 "双倍数据传输速率"。因此,DDR 内存可以在相同的时钟频率下实现比 SDR 内存更高的带宽。

        DDR 内存有多个版本,包括 DDR1、DDR2、DDR3、DDR4、DDR5 等。每个版本都有不同的规格和性能特点,随着技术的发展,新版本的 DDR 内存通常具有更高的速度、更低的功耗和更大的容量。

STB系列

        "STB" 通常指的是 "Set-Top Box"(机顶盒),是一种用于连接电视机的外部设备,用于接收和解码数字电视信号,以及提供其他多媒体功能的装置。STB 可以提供各种功能,包括数字电视接收、互联网访问、流媒体播放、游戏和应用程序等。

STB 通常包括以下一些特性和功能:

  1. 数字电视接收: STB 可以接收数字电视信号,包括有线电视、卫星电视和地面数字电视等。

  2. 解码功能: STB 可以解码数字电视信号,并将其转换成电视机可以显示的图像和声音。

  3. 互联网访问: 一些 STB 具有内置的互联网连接功能,可以访问在线视频、音乐、社交媒体等内容。

  4. 流媒体播放: STB 可能支持流媒体服务,如 Netflix、Hulu、YouTube 等,以便用户可以观看在线视频内容。

  5. 游戏和应用程序: 一些高级 STB 具有游戏和应用程序的支持,用户可以在电视上玩游戏、浏览网页等。

  6. 存储和录制: 一些 STB 具有存储和录制功能,用户可以录制节目、存储媒体文件等。

  7. 远程控制: STB 通常配备有遥控器,用户可以通过遥控器控制设备的各种功能。

        STB 是家庭娱乐和数字电视领域的重要设备,它可以为用户提供多种多样的娱乐和信息服务。随着技术的发展,STB 的功能和性能也在不断提升,为用户带来更丰富的体验。

openwrt

       OpenWrt 是一个针对嵌入式设备的 Linux 发行版,专注于路由器、无线接入点、嵌入式系统和小型计算机等网络设备的定制化和优化。它提供了一个灵活、可定制的操作系统平台,可以在各种不同的硬件设备上运行,并且具有强大的网络功能和包管理系统。

OpenWrt 的特点包括:

  1. 灵活性和定制性: OpenWrt 提供了一个基于 Linux 内核的可定制的操作系统平台,用户可以根据自己的需求和偏好对系统进行定制和配置。

  2. 强大的网络功能: OpenWrt 内置了丰富的网络功能,包括路由、防火墙、虚拟专用网络(VPN)、无线网络、网络存储等,可以满足各种网络设备的需求。

  3. 包管理系统: OpenWrt 使用 opkg 包管理系统,用户可以方便地安装、升级和管理软件包,以扩展系统的功能和增强性能。

  4. 社区支持和开发活跃: OpenWrt 是一个开源项目,拥有庞大的社区和活跃的开发者社区,用户可以在社区中获取支持、交流经验,并参与到项目的开发和改进中。

  5. 支持广泛的硬件设备: OpenWrt 支持各种不同的硬件设备,包括路由器、无线接入点、嵌入式系统和小型计算机等,用户可以根据自己的需求选择合适的硬件平台来运行 OpenWrt。

       总的来说,OpenWrt 是一个功能强大、灵活定制的嵌入式 Linux 发行版,适用于各种网络设备的定制化和优化。它为用户提供了一个可靠的网络平台,可以满足各种复杂的网络需求。

Dump

       在嵌入式系统中,"dump" 通常指的是内存转储(Memory Dump),它是将系统内存中的内容转储到外部存储介质(如磁盘或闪存)的过程。内存转储在嵌入式系统中通常用于以下几种情况:

  1. 系统崩溃分析: 当嵌入式系统遇到严重错误或崩溃时,内存转储可以捕获系统崩溃时内存中的状态。这对于开发人员来说是非常有价值的,因为它提供了系统崩溃时的运行时状态信息,帮助他们诊断问题并找出导致崩溃的原因。

  2. 调试和分析: 内存转储可以用于调试和分析嵌入式系统的性能问题、内存泄漏、堆栈溢出等。通过分析内存转储文件,开发人员可以了解系统在特定时间点的内存使用情况,帮助他们优化代码和提高系统稳定性。

  3. 远程诊断: 在某些情况下,嵌入式系统可能无法直接访问或连接到外部设备进行调试。在这种情况下,内存转储可以用作远程诊断工具,将系统状态转储到外部介质,然后通过其他手段传输到开发人员的工作站进行分析。

       内存转储通常是由操作系统或硬件提供支持的功能。在嵌入式系统中,通常需要在系统启动时配置内存转储的选项,并且可能需要使用特定的工具来捕获和分析转储文件。

       在计算机运行时,数据存储在内存、CPU、I/O 等设备上都是动态的,也就是易失的。一旦程序运行结束或者发生异常,这些数据就会丢失。如果我们希望获取特定时刻的数据,例如用于调试程序 Bug 或者收集某些信息,就需要将这些数据转储(dump)为静态的形式,比如保存到文件中。否则,这些数据将永远无法获取。因此,内存转储在这种情况下非常有用,它可以捕获系统在某一时刻的状态,提供了一个快照,让我们能够在之后进行分析和调试。

设备树(Device Tree)

        设备树(Device Tree)是一种用于描述硬件平台的数据结构,它提供了一种统一的方式来描述嵌入式系统中的硬件设备、设备地址、中断信息、时钟源等信息。设备树通常用于嵌入式 Linux 系统中,帮助内核识别和管理硬件设备。

设备树的主要特点包括:

  1. 硬件描述: 设备树用一种层次结构的方式描述硬件平台的各个组件和设备,包括 CPU、内存、外设等。

  2. 独立于内核: 设备树与操作系统内核独立,以一种与硬件平台相关的格式描述硬件信息,使得相同的设备树可以用于不同的内核。

  3. 可扩展性: 设备树可以根据具体的硬件平台进行定制和扩展,以满足特定的硬件配置需求。

  4. 动态加载: 设备树通常由引导加载程序(如 U-Boot)加载到内存中,然后传递给内核,在内核启动时解析和使用。

  5. 跨平台: 设备树提供了一种跨平台的硬件描述方式,使得相同的设备树可以在不同的硬件平台上使用。

在 Linux 系统中,设备树通常由三个部分组成:

  • 设备树源文件(.dts): 设备树源文件是以一种类似于 C 语言的语法描述硬件信息的文本文件,通常位于 Linux 内核源码树中的 arch/<架构>/boot/dts/ 目录下。

  • 编译后的设备树文件(.dtb): 设备树源文件经过编译后生成的二进制设备树文件,通常位于 Linux 内核镜像中。

  • 内核设备树节点: Linux 内核将设备树文件解析成设备树节点,用于识别和管理硬件设备。

        通过设备树,Linux 内核可以在启动时自动识别和配置硬件设备,而无需在内核代码中硬编码硬件信息,这样使得内核更具通用性和可移植性。

电压相关

VDDQ

        "VDDQ" 是电子设备中常见的术语,特别是在内存模块或其他集成电路的规格中。它指的是内存模块的供电电压,通常用于 DRAM(动态随机存取存储器)。

        在 DDR(双数据率)内存中,VDDQ 是供电给内存的 I/O 接口的电压。DDR 内存通常有两个主要电压:VDD 和 VDDQ。VDD 是供电给内部逻辑电路的电压,而 VDDQ 是供电给输入/输出(I/O)引脚的电压。

        确保正确设置 VDDQ 是非常重要的,因为它会影响内存模块的性能和稳定性。不同类型的内存模块可能需要不同的 VDDQ 电压,因此在安装内存模块时,要确保主板或其他设备的 BIOS 或软件设置中正确配置了 VDDQ。

VCCK(Voltage and Clock Control Kernel) 参数

        VCCK 参数通常是指与处理器或其他电子设备的电压和电流相关的配置参数。这些参数可以影响设备的性能、功耗和稳定性。在测试中,调整 VCCK 参数可以用于评估设备在不同电压和电流条件下的性能表现。

具体来说,VCCK 参数可能包括以下内容:

  1. 电压值(Voltage): 表示设备的工作电压,通常以毫伏(mV)为单位。调整电压可以影响设备的性能和功耗。

  2. 电流值(Current): 表示设备在工作状态下的电流消耗,通常以安培(A)为单位。调整电流可以影响设备的功耗和稳定性。

  3. 电压和电流曲线参数: 这些参数描述了电压和电流随着负载变化的关系,即电压-电流曲线。这些参数可以用于优化设备的功耗和性能表现。

        在测试中,根据不同的测试需求和目标,可以调整和优化 VCCK 参数,以获得最佳的性能和功耗平衡。

VCCK和VDDEE的上电时序

        "VCCK" 和 "VDDEE" 是在电子设备中常见的电源引脚或电源域的命名,通常用于芯片、模块或电路板的设计中。它们的上电时序可能会因具体的设备而异,但一般情况下,它们的上电时序应遵循以下一般原则:

  1. VCCK 上电时序:

    • VCCK 通常是芯片内部的核心电压引脚,用于提供芯片内部逻辑电路的电源。其上电时序应该先于其他相关电源引脚。
  2. VDDEE 上电时序:

    • VDDEE 通常是外围电路或者 I/O 电压引脚,用于提供芯片周边电路或者外设电路的电源。其上电时序可以稍晚于核心电压引脚,但应在核心电压稳定之后尽快上电。

   一般来说,电源引脚的上电时序应该满足以下要求:

  • 遵循芯片或者模块厂商提供的规格书中关于电源引脚的推荐或最大时序要求。
  • 核心电压引脚(如 VCCK)通常应该先于外围电压引脚(如 VDDEE)上电。
  • 电源引脚的上电顺序应该是有序的,避免出现不稳定或者不一致的情况。

        最佳的做法是参考相关的芯片或者模块的数据手册、规格书或者应用手册,查找关于电源引脚的详细信息和推荐的上电时序。这些文档通常会提供关于电源引脚的电气特性、最大时序要求和推荐的上电顺序等信息,有助于正确设计和配置电路板的电源系统。

VCCK和VDDEE需要如何设定

       "VCCK" 和 "VDDEE" 是电子设备中常见的电源引脚或电源域的名称,它们通常用于提供芯片、模块或电路板的核心电压和外围电压。在设计电路板时,需要根据具体的芯片或模块规格书中的要求来设定这些电源引脚。以下是一般情况下设定这些电源引脚的一些建议:

VCCK 设定

   VCCK 通常是芯片内部逻辑电路的核心电压引脚。在设定 VCCK 时,需要注意以下几点:

(1)根据芯片规格书中的推荐值或最大值,设定适当的 VCCK 电压。

(2)在设计电路板时,应该提供稳定、干净的电源,以确保芯片内部逻辑电路的稳定运行。

(3)确保提供的电压符合芯片规格书中的要求,包括电压范围、精度和稳定性等。

VDDEE设定

       VDDEE 通常是芯片周边电路或者外设电路的供电引脚。在设定 VDDEE 时,需要注意以下几点:

(1)确保提供的电压符合芯片规格书中的要求,包括电压范围、精度和稳定性等。

(2)VDDEE 通常可以设定为与 VCCK 相同的电压,也可以根据具体的外围电路需求设定为其他电压值。

(3)在设计电路板时,应该提供稳定、干净的电源,以确保外围电路或外设的正常运行。

        总的来说,设定 VCCK 和 VDDEE 时,需要根据芯片规格书中的要求来确定电压值和稳定性要求,并在设计电路板时提供稳定、干净的电源,以确保设备的正常工作和可靠性。此外,一些芯片或模块可能还提供了额外的电源引脚或电源域,需要根据具体的规格书要求来进行设定和配置。

dvfs常用的接口

        动态电压频率调节(DVFS)是一种通过调节处理器的工作频率和电压来降低功耗和提高性能的技术。在实现 DVFS 功能时,通常需要与处理器或者系统的硬件和软件进行交互。以下是一些常用的 DVFS 接口或者方法:

  1. 调节 CPU 工作频率和电压:

           大多数处理器都提供了接口或者命令来调节 CPU 的工作频率和电压。例如,在 Linux 系统中,可以通过 sysfs 接口(/sys/devices/system/cpu/cpu*/cpufreq/)来调节 CPU 的工作频率,通过调节相关参数来实现 DVFS 功能。
  2. 使用调节器(Governor):

           在 Linux 系统中,CPU 调节器(Governor)是一种动态调节 CPU 工作频率的软件模块,它根据系统的负载情况和性能要求来自动调节 CPU 的工作频率和电压。常见的调节器包括 conservative、ondemand、performance 等。通过选择合适的调节器和调节器参数,可以实现 DVFS 功能。
  3. 使用功耗管理框架:

           一些处理器或者系统提供了专门的功耗管理框架,用于实现 DVFS 功能。例如,在 Android 系统中,可以使用 PowerHAL(Power Hardware Abstraction Layer)框架来管理系统的功耗和性能,通过调节 CPU 的工作频率和电压来实现 DVFS 功能。
  4. 使用硬件接口:

          一些处理器或者系统提供了专门的硬件接口来实现 DVFS 功能。通过访问这些硬件接口,可以直接控制处理器的工作频率和电压,实现动态调节功能。
  5. 自定义调节算法:

          在一些特定的场景下,可能需要根据系统的特性和性能要求,自定义调节算法来实现 DVFS 功能。通过分析系统的负载情况、功耗特性等,编写自定义的调节算法来实现最优的功耗和性能平衡。

       综上所述,DVFS 功能的实现可以通过软件接口、功耗管理框架、硬件接口等多种方式来实现。具体选择哪种方式取决于系统的特性、硬件平台和性能要求等因素。

sysfs接口

       sysfs 是 Linux 内核提供的一个虚拟文件系统,用于向用户空间暴露内核数据结构的接口。在 Linux 系统中,sysfs 接口通常被用来管理内核设备、参数和状态信息等,包括 CPU 调频、内存管理、设备管理等。对于 DVFS 功能而言,sysfs 接口通常用于管理 CPU 的调频(频率调节)功能。以下是一些常见的 sysfs 接口用于 CPU 调频:

  1. CPU 调频目录:/sys/devices/system/cpu/cpu*/cpufreq/

    • 这是 CPU 调频相关的目录,其中的 cpu* 表示 CPU 的编号(例如,cpu0、cpu1 等)。
    • 在这个目录下,通常包含了一些文件和子目录,用于控制 CPU 的工作频率、调节器、调节器参数等。
  2. 当前工作频率文件:/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

    • 这个文件显示了当前 CPU 的工作频率,以 Hz 为单位。
  3. 可用调节器文件:/sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors

    • 这个文件显示了可用的调节器(Governor),通常包括 conservative、ondemand、performance 等。
  4. 当前调节器文件:/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

    • 这个文件显示了当前使用的调节器。
  5. 设置调节器文件:/sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed

    • 通过写入相应的值到这个文件,可以设置 CPU 的工作频率。

       通过在这些文件中读写相应的值,可以实现对 CPU 调频功能的控制和管理。例如,可以通过修改 scaling_governor 文件中的值来切换调节器,通过写入 scaling_setspeed 文件中的值来设置 CPU 的工作频率。这样可以实现 DVFS 功能,根据系统负载情况和性能要求来动态调节 CPU 的工作频率,以实现节能和性能平衡。

CPU 调节器(Governor)

       CPU 调节器(Governor)是一种软件模块,用于在 Linux 系统中动态调节 CPU 的工作频率以平衡功耗和性能。在多核 CPU 系统中,每个 CPU 核心都有自己的调节器。调节器根据系统的负载情况和性能要求,自动调整 CPU 的工作频率,以提高系统的性能或者降低功耗。常见的 CPU 调节器包括以下几种:

  1. Performance(性能):

    • Performance 调节器会让 CPU 始终工作在最高的频率,以获得最大的性能。这种模式下,CPU 不会主动降频,但会消耗更多的电能。
  2. Powersave(省电):

    • Powersave 调节器会让 CPU 工作在最低的频率,以节省电能。这种模式下,CPU 会尽量降低功耗,但可能会牺牲性能。
  3. Ondemand(按需):

    • Ondemand 调节器会根据系统的负载情况自动调节 CPU 的工作频率。当系统负载较低时,CPU 会降低频率以节省电能;当系统负载增加时,CPU 会提高频率以提高性能。
  4. Conservative(保守):

    • Conservative 调节器会根据系统的负载情况逐渐调节 CPU 的工作频率。它比 Ondemand 更加保守,更加平滑地调节 CPU 的频率,以避免频繁的频率切换。
  5. Interactive(交互式):

    • Interactive 调节器会根据系统的负载情况实时调节 CPU 的工作频率。它会根据系统的需求快速调节 CPU 的频率,以提高响应速度和系统性能。

       在 Linux 系统中,可以通过修改 /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 文件中的值来切换 CPU 调节器。不同的调节器适用于不同的应用场景,可以根据系统的需求选择合适的调节器来平衡性能和功耗。

煲机

        "煲机"通常是指让电子设备在最初使用时运行一段时间以达到稳定状态或预防问题。在电脑或其他电子设备中,这通常涉及让设备运行一段时间以检查是否有硬件问题,并确保设备的稳定性和性能。

在煲机电脑时,你可以执行以下操作:

  1. 运行压力测试:使用压力测试工具如Prime95或Memtest86来测试CPU和内存的稳定性。这可以帮助你确定是否有硬件问题。

  2. 进行设备热身:让电脑运行一段时间,使用一些资源密集型的任务,例如游戏或视频渲染,以加热设备并检查是否存在过热问题。

  3. 测试稳定性:在煲机过程中,使用电脑进行常规任务,如浏览网页、运行应用程序等,以确保设备在正常使用情况下稳定运行。

  4. 观察设备行为:在煲机期间,密切观察设备的行为,包括任何异常噪音、过热现象或性能问题。

注意事项

        煲机是一种常见的做法,但在进行煲机时,有一些注意事项可以帮助你确保安全并最大程度地提高设备的性能和稳定性:

  1. 阅读设备手册:在进行煲机之前,确保阅读设备的用户手册或使用指南。这些文档通常包含了关于设备使用和保养的重要信息。

  2. 保持通风:确保设备处于通风良好的环境中,并且周围没有堵塞物,这有助于避免过热问题。

  3. 谨慎选择压力测试工具:如果你选择运行压力测试来检查设备的稳定性,确保选择可靠的测试工具,并避免使用可能会造成过度负载或损害设备的工具。

  4. 定期监控设备:在煲机期间,定期检查设备的温度、风扇转速和性能。如果你观察到任何异常现象,及时停止煲机并检查问题所在。

  5. 小心处理电源:在煲机过程中,确保设备连接到稳定可靠的电源,并使用适当的电源保护设备。

  6. 备份重要数据:在煲机之前,确保备份重要的数据。虽然煲机过程中不太可能发生数据丢失,但备份仍然是一种好习惯。

  7. 遵循制造商建议:最重要的是,遵循制造商的建议和指南。不同设备可能有不同的煲机建议,因此确保按照正确的方式进行煲机。

       通过遵循这些注意事项,你可以安全地进行煲机,并确保设备在使用过程中提供最佳性能和稳定性。

相关文章:

Linux学习(嵌入式硬件知识)

GPU和CPU GPU&#xff08;Graphics Processing Unit&#xff0c;图形处理单元&#xff09;和 CPU&#xff08;Central Processing Unit&#xff0c;中央处理单元&#xff09;是计算机中两种不同的处理器。它们在功能、设计和用途上有所不同。 CPU&#xff08;中央处理单元&…...

英语学习笔记4——Is this your ...?

Is this your …? 词汇 Vocabulary suit /sut/ n. 西装&#xff0c;正装 suit 的配套&#xff1a; shirt n. 衬衫tie n. 领带&#xff0c;领结belt n. 腰带trousers n. 裤子shoes n. 鞋子 school /skuːl/ n. 学校 所有学校 搭配&#xff1a;middle school 初中    hig…...

Hive Bucketed Tables 分桶表

Hive Bucketed Tables 分桶表 1.分桶表概念 2.分桶规则 3.语法 4.分桶表的创建 5.分桶表的好处...

【拆位法 决策包容性 位运算】2871. 将数组分割成最多数目的子数组

本文涉及知识点 拆位法 贪心 位运算 决策包容性 位运算、状态压缩、子集状态压缩汇总 LeetCode2871. 将数组分割成最多数目的子数组 给你一个只包含 非负 整数的数组 nums 。 我们定义满足 l < r 的子数组 nums[l…r] 的分数为 nums[l] AND nums[l 1] AND … AND nums[r…...

Java 线程池 ( Thread Pool )的简单介绍

想象一下&#xff0c;你正指挥着一支超级英雄团队&#xff0c;面对蜂拥而至的敌人&#xff08;任务&#xff09;&#xff0c;不是每次都召唤新英雄&#xff08;创建线程&#xff09;&#xff0c;而是精心调配现有成员&#xff0c;高效应对。这就是Java线程池的魔力&#xff0c;…...

鸿蒙内核源码分析(时间管理篇) | 谁是内核基本时间单位

时间概念太重要了&#xff0c;在鸿蒙内核又是如何管理和使用时间的呢? 时间管理以系统时钟 g_sysClock 为基础&#xff0c;给应用程序提供所有和时间有关的服务。 用户以秒、毫秒为单位计时.操作系统以Tick为单位计时&#xff0c;这个认识很重要. 每秒的tick大小很大程度上决…...

安装numpy遇到的问题

安装numpy的时候提示无法安装如下&#xff1a; (venv) E:\works\AI\venv\Scripts>pip install numpy pandas matplotlib jupyter -i https://pypi.douban.com/simple Looking in indexes: https://pypi.douban.com/simple WARNING: Retrying (Retry(total4, connectNone, r…...

页面嵌套,界面套娃,除了用iframe,还有其他方式吗?

UIOTOS可以了解下&#xff0c;uiotos.net&#xff0c;通过连线来代替脚本逻辑开发&#xff0c;复杂的交互界面&#xff0c;通过页面嵌套轻松解决&#xff0c;是个很新颖的思路&#xff0c;前端零代码&#xff01; 蓝图连线尤其是独创的页面嵌套和属性继承技术&#xff0c;好家…...

上传文件至linux服务器失败

目录 前言异常排查使用df -h命令查看磁盘使用情况使用du -h --max-depth1命令查找占用空间最大的文件夹 原因解决补充&#xff1a;删除文件后&#xff0c;磁盘空间无法得到释放 前言 使用XFTP工具上传文件至CentOS服务器失败 异常 排查 使用df -h命令查看磁盘使用情况 发现磁盘…...

渗透 如何防御ARP欺骗,LLMNR-MDNS-NBNS等协议的作用

一. 如何防御ARP欺骗&#xff1f; 1.使用双向IP/MAC绑定&#xff1b; 2.使用静态ARP缓存表&#xff1b; 3.使用ARP服务器&#xff0c;通过服务器来查找ARP转换表来响应其他机器的广播&#xff1b; 4.使用ARP欺骗防护软件&#xff1b; 5.在网关设备上部署防ARP欺骗攻击功能…...

【C++ 所有STL容器简介】

【C 所有STL容器简介】 1. vector2. list3. deque4. set / multiset5. map / multimap6. unordered_set / unordered_multiset7. unordered_map / unordered_multimap8. stack9. queue10. priority_queue C 标准模板库&#xff08;STL&#xff09;提供了一系列常用的容器&#…...

Django调用SECRET_KEY对数据进行加密

对数据进行加密 在Django中进行加密可以直接调用django配置文件中的SECRET_KEY , 同时还需要导入itsdangerous模块中的TimedJSONWebSignatureSerializer进行加密 1. 实现加密方法 , 生成用户加密链接 # 生成用户加密链接 def generate_verify_email_url(user):# 调研加密方法…...

芸众商城电商专业版400+插件源码+搭建教程

介绍&#xff1a; 芸众商城社交电商系统SAAS平台前端基于vue开发&#xff0c;后端基于研发积分商城系统源码 php&#xff0c;本文安装芸众商城全插件&#xff08;400多个&#xff09;商业版平台源码&#xff0c;可同时支持多端口部署运行&#xff1b;使用宝塔面板一键部署的形…...

【机器学习与实现】线性回归示例——波士顿房价分析

目录 一、创建Pandas对象并查看数据的基本情况二、使用皮尔逊相关系数分析特征之间的相关性三、可视化不同特征与因变量MEDV&#xff08;房价中值&#xff09;间的相关性四、划分训练集和测试集并进行回归分析 一、创建Pandas对象并查看数据的基本情况 boston.csv数据集下载&a…...

Redis核心数据结构——跳表(生成数据到文件和从文件中读取数据、模块合并、)

生成文件和从文件中读取数据。 需求如下&#xff1a; 你的任务是实现 SkipList 类中的数据持久化成员函数和数据加载成员函数。 持久化数据成员函数签名&#xff1a;void dump_file(); 该成员函数负责将存储引擎内的数据持久化到文件中。数据的持久化格式是将每个键值对写入文…...

微信小程序下载文件详解

在微信小程序中&#xff0c;下载文件通常涉及使用 wx.downloadFile API。这个 API 可以将网络资源下载到本地临时文件路径&#xff0c;然后你可以使用 wx.saveFile 将临时文件保存到本地持久存储位置。下面是一个下载文件的详细过程&#xff1a; 使用 wx.downloadFile 下载文件…...

2024 概率论和数理统计/专业考试/本科考研/论文/重点公式考点汇总

## 列表http://www.deepnlp.org/equation/category/statistics ## 均匀分布http://www.deepnlp.org/equation/uniform-distribution ## t-分布http://www.deepnlp.org/equation/student-t-distribution ## 伯努利分布http://www.deepnlp.org/equation/bernoulli-distributio…...

四川易点慧电子商务抖音小店:潜力无限的新零售风口

在当今数字化浪潮中&#xff0c;电子商务已经成为推动经济发展的重要引擎。四川易点慧电子商务有限公司凭借其敏锐的市场洞察力和创新精神&#xff0c;成功在抖音小店这一新兴平台上开辟出一片新天地。本文将探讨四川易点慧电子商务抖音小店的潜力及其在新零售领域的影响力。 一…...

Seal^_^【送书活动第3期】——《Hadoop大数据分析技术》

Seal^_^【送书活动第3期】——《Hadoop大数据分析技术》 一、参与方式二、作者荐语三、图书简介四、本期推荐图书4.1 前 言4.2 本书内容4.3 本书目的4.4 本书适合的读者4.5 配套源码、PPT课件等资源下载 五、目 录六、&#x1f6d2; 链接直达 Hadoop框架入门书&#xff0c;可当…...

win10下,svn上传.so文件失败

问题&#xff1a;win10下使用TortoiseSVN&#xff0c;svn上传.so文件失败 解决&#xff1a;右键&#xff0c;选择Settings&#xff0c;Global ignore pattern中删除*.so&#xff0c;保存即可。...

ubuntu20安装colmap

系统环境 ubuntu20 &#xff0c;cuda11.8 &#xff0c;也安装了anaconda。因为根据colmap的官方文档说的&#xff0c;如果根据apt-get安装的话&#xff0c;默认是非cuda版本的&#xff0c;而我觉得既然都安装了cuda11.8了&#xff0c;自然也要安装cuda版本的colmap。 安装步骤…...

kubeflow简单记录

kubeflow 13.7k star 1、Training Operator 包括PytorchJob和XGboostJob&#xff0c;支持部署pytorch的分布式训练 2、KFServing快捷的部署推理服务 3、Jupyter Notebook 基于Web的交互式工具 4、Katib做超参数优化 5、Pipeline 基于Argo Workflow提供机器学习流程的创建、编排…...

ARM的工作模式

ARM处理器设计有七种工作模式&#xff0c;这些模式允许处理器在不同的情境下以不同的权限级别执行任务&#xff0c;下面是这七大工作模式的概述&#xff1a; 用户模式&#xff08;User&#xff0c;USR&#xff09;&#xff1a; 这是非特权模式&#xff0c;大多数应用程序在此…...

为家庭公网IP配置DDNS域名

文章目录 域名配置域名更新frp配置修改 在成功完成frp改造Windows笔记本实现家庭版免费内网穿透之后&#xff0c;某天我突然发现内网穿透失效了&#xff0c;一番排查之后原来是路由器对应的公网IP更换了。果然我分到的并不是固定的公网IP&#xff0c;而是会定期变化的。为了免受…...

QT-TCP通信

网上的资料太过于书面化&#xff0c;所以看起来有的让人云里雾里&#xff0c;看不懂C-tcpsockt和S-tcpsocket的关系 所以我稍微画了一下草图帮助大家理解两个套接字之间的关系。字迹有的飘逸勉强看看 下面是代码 服务端&#xff1a; MainWindow::MainWindow(QWidget *parent) …...

SparkSQL优化

SparkSQL优化 优化说明 缓存数据到内存 Spark SQL可以通过调用spark.sqlContext.cacheTable("tableName") 或者dataFrame.cache()&#xff0c;将表用一种柱状格式&#xff08; an inmemory columnar format&#xff09;缓存至内存中。然后Spark SQL在执行查询任务…...

STM32——基础篇

技术笔记&#xff01; 一、初识STM32 1.1 ARM内核系列 A 系列&#xff1a;Application缩写。高性能应用&#xff0c;比如&#xff1a;手机、电脑、电视等。 R 系列&#xff1a;Real-time缩写。实时性强&#xff0c;汽车电子、军工、无线基带等。 M 系列&#xff1a;Microcont…...

【从零开始学架构 架构基础】架构设计的本质、历史背景和目的

本文是《从零开始学架构》的第一篇学习笔记&#xff0c;主要理解架构的设计的本质定义、历史背景以及目的。 架构设计的本质 分别从三组概念的区别来理解架构设计。 系统与子系统 什么是系统&#xff0c;系统泛指由一群有关联的个体组成&#xff0c;根据某种规则运作&#…...

Learning C# Programming with Unity 3D

作者&#xff1a;Alex Okita 源码地址&#xff1a;GitHub - badkangaroo/UnityProjects: A repo for all of the projects found in the book. 全书 686 页。...

北京车展现场体验商汤DriveAGI自动驾驶大模型展现认知驱动新境界

在2024年北京国际汽车展的舞台上&#xff0c;众多国产车型纷纷亮相&#xff0c;各自展示着独特的魅力。其中&#xff0c;小米SUV7以其精美的外观设计和宽敞的车内空间&#xff0c;吸引了无数目光&#xff0c;成为本届车展上当之无愧的明星。然而&#xff0c;车辆的魅力并不仅限…...

企业终端安全管理软件有哪些?终端安全管理软件哪个好?

终端安全的重要性大家众所周知&#xff0c;关系到生死存亡的东西。 各类终端安全管理软件应运而生&#xff0c;为企业提供全方位、多层次的终端防护。 有哪些企业终端安全管理软件&#xff1f; 一、主流企业终端安全管理软件 1. 域智盾 域智盾是一款专为企业打造的全面终端…...

Linux内核--设备驱动(七)媒体驱动框架整理--HDMI框架(2)

目录 一、引言 二、drm框架 ------>2.1、画布( FrameBuffer ) ------>2.2、绘图现场(CRTC) ------>2.3、输出转换器(Encoder ) ------>2.4、连接器 (Connector ) ------>2.5、显示面(Planner) 三、VOP部分详解 ------>3.1、dts ------>3.2、v…...

3.3 Gateway之自定义过滤器

1.Gateway过滤器种类 过滤器种类描述GatewayFilter路由过滤器&#xff0c;作用于任意指定的路由。默认不生效&#xff0c;要配置到路由后生效GlobalFilter全局过滤器&#xff0c;作用范围是所有路由。声明后自定生效 2.Gateway过滤器参数 参数描述ServerWebExchangeGateway内…...

Skywalking数据持久化与自定义链路追踪

学习本篇文章之前首先要了解一下Sky walking的基础知识 分布式链路追踪工具Skywalking详解 一&#xff0c;Sky walking数据持久化 Sky walking提供了es&#xff0c;MySQL等数据持久化方案&#xff0c;默认使用h2基于内存的数据库&#xff0c;重启之后数据即会丢失。 在实际工…...

设计模式之模板模式TemplatePattern(五)

一、模板模式介绍 模板方法模式&#xff08;Template Method Pattern&#xff09;&#xff0c;又叫模板模式&#xff08;Template Pattern&#xff09;&#xff0c; 在一个抽象类公开定义了执行它的方法的模板。它的子类可以更需要重写方法实现&#xff0c;但可以成为典型类中…...

划重点!PMP报考条件、报考步骤、考试内容、适合人群

参加PMP认证的好处&#xff0c;可以从几个方面来认识&#xff1a; 一、参加PMP认证与考试的过程&#xff0c;同时是一个系统学习和巩固项目管理知识的过程 二、参加PMP认证&#xff0c;您可以获得由PMI颁发的PMP证书 而拥有PMP认证表示你已经成为一个项目管理方面的专业人员…...

Java | Leetcode Java题解之第74题搜索二维矩阵

题目&#xff1a; 题解&#xff1a; class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m matrix.length, n matrix[0].length;int low 0, high m * n - 1;while (low < high) {int mid (high - low) / 2 low;int x matrix[mid / n][m…...

C#高级编程笔记-泛型

本章的主要内容如下&#xff1a; ● 泛型概述 ● 创建泛型类 ● 泛型类的特性 ● 泛型接口 ● 泛型结构 ● 泛型方法 目录 1.1 泛型概述 1.1.1 性能 1.1.2 类型安全 1.1.3 二进制代码的重用 1.1.4 代码的扩展 1.1.5 命名…...

(超简单)SpringBoot中简单用工厂模式来实现

简单讲述业务需求 业务需要根据不同的类型返回不同的用户列表&#xff0c;比如按角色查询用户列表、按机构查询用户列表&#xff0c;用户信息需要从数据库中查询&#xff0c;因为不同的类型查询的逻辑不相同&#xff0c;因此简单用工厂模式来设计一下&#xff1b; 首先新建一个…...

java中的条件、循环和scanner类

if else ; 单行逻辑大括号可以省略&#xff1b;但是不建议省略&#xff1b; public static void main(String[] args) {boolean bool1 (Math.random() * 1000) % 2 > 1;System.out.println((Math.random() * 1000) % 2 "-" bool1);if(bool1) {System.out.prin…...

【Qt QML】Frame组件

Frame&#xff08;框架&#xff09;包含在&#xff1a; import QtQuick.Controls继承自Pane控件。用于在可视框架内布局一组逻辑控件。简单来说就是用来包裹和突出显示其他可视元素。Frame不提供自己的布局&#xff0c;但需要自己对元素位置进行设置和定位&#xff0c;例如通过…...

Web API之DOM

DOM 一.认识DOM二.获取元素三.事件基础四.操作元素(1).改变元素内容(2).修改元素属性(str、herf、id、alt、title&#xff09;(3).修改表单属性(4).修改样式属性操作(5).小结 五.一些思想(1).排他思想(2).自定义属性的操作 六.节点操作1.认识2.节点层级关系3.创建和添加、删除、…...

windows驱动开发-内核编程技术汇总(六)

在驱动程序中使用文件 内核模式组件通过其对象名称引用文件&#xff0c;该对象名称是连接到文件的完整路径的 \DosDevices 。 在 Microsoft Windows 2000 及更高版本的操作系统上&#xff0c; \?? 等效于 \DosDevices。例如&#xff0c;C:\WINDOWS\example.txt 文件的对象名…...

Windows Server 2019虚拟机安装

目录 第一步、准备工作 第二步、部署虚拟机 第三步、 Windows Server 2019系统启动配置 第一步、准备工作 下载Windows Server 2019系统镜像 官网下载地址&#xff1a;Windows Server 2019 | Microsoft Evaluation Center VMware Workstation 17下载地址&#xff1a; 链…...

【软件工程】详细设计

目录 前言详细设计算法设计工具——判定表 前言 软件工程生命周期分为八个阶段&#xff1a; 问题定义—>可行性研究—>需求分析 —>概要设计—>详细设计—>编码与单元测试 —>综合测试—>软件维护 这节我们讲的是软件开发流程中的一个阶段&#xff0c;需求…...

在K8S中,集群可以做哪些优化?

在Kubernetes&#xff08;简称K8s&#xff09;集群中&#xff0c;可以进行多种优化以提升性能、稳定性和资源利用率。以下是一些常见的优化措施&#xff1a; 控制面组件优化&#xff1a; kube-apiserver 高可用与扩展&#xff1a;通过配置多个API服务器实例并使用负载均衡器分发…...

【C++】从零开始认识多态

送给大家一句话&#xff1a; 一个犹豫不决的灵魂&#xff0c;奋起抗击无穷的忧患&#xff0c;而内心又矛盾重重&#xff0c;真实生活就是如此。 ​​​​ – 詹姆斯・乔伊斯 《尤利西斯》 _φ(*&#xffe3;ω&#xffe3;)&#xff89;_φ(*&#xffe3;ω&#xffe3;)&…...

为什么叫“机器学习”Machine Learning 而不是“计算机学习”——深度学习Note

有一门学科“机器学习”火了起来&#xff0c;它是计算机科学与数学结合的产物&#xff0c;它的目的是使计算机“聪明”起来&#xff0c;实现人工智能。可是&#xff0c;令人困惑的是它明明就是计算机学习&#xff0c;为什么不叫“计算机学习”而叫“机器学习”呢&#xff1f;这…...

Spring Boot集成RabbitMQ-之6大模式总结

A.集成 一&#xff1a;添加依赖 在pom.xml文件中添加spring-boot-starter-amqp依赖&#xff0c;以便使用Spring Boot提供的RabbitMQ支持&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp&…...

后端开发面经系列 -- 滴滴C++一面面经

滴滴C一面面经 公众号&#xff1a;阿Q技术站 来源&#xff1a;https://www.nowcoder.com/feed/main/detail/38cf9704ef084e27903d2204352835ef 1、const在C和C区别&#xff0c;const定义的类成员变量如何初始化&#xff1f; 区别 C中的const&#xff1a; 在C中&#xff0c;c…...

package-lock.json导致npm install安装nyc出现超时错误

一、背景 前端项目在npm install安装依赖&#xff0c;无法下载组件nyc&#xff0c;详细报错信息&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/nyc/download/nyc-13.3.0.tgz?cache0&a…...

摸鱼大数据——Linux搭建大数据环境(Hadoop高可用环境搭建)六

Hadoop高可用环境搭建 确定提前安装好了hadoop和zookeeper 1.删除原有数据文件 三台机器都要进行删除 可以使用CRT发送交互到所有会话 rm -rf /export/data/hadoop-3.3.0 2.安装软件 三台机器都要进行安装 注意: 如果网络较慢安装失败,那就重复安装即可 # 实现多个服务的通讯 …...

可视化大屏:地图都有哪些样式,看过来!

...

了解等保测评的中间件安全Tomcat,如何检查配置是否符合安全要求?

在等保测评中&#xff0c;Tomcat中间件的安全性是一个重要的评估内容。Tomcat是一个开源的应用服务器&#xff0c;广泛应用于Web应用程序的开发和部署。由于其易用性和灵活性&#xff0c;Tomcat成为了一个受欢迎的目标&#xff0c;被黑客攻击和滥用。因此&#xff0c;保证Tomca…...

MySql-分页查询

分页查询 – 1、从起始索引0 开始查询员工数据&#xff0c;每页展示5条记录 – select * from tb_emp limit 0,5; – 2、查询第2页员工数据&#xff0c;每页展示5条记录 – select * from tb_emp limit 5,5; – 3、查询第二页员工数据&#xff0c;每页展示6条记录 – sel…...

位拆分与运算

描述 题目描述&#xff1a; 现在输入了一个压缩的16位数据&#xff0c;其实际上包含了四个数据[3:0][7:4][11:8][15:12], 现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号&#xff08;在不输出时候拉低&#xff09; 0: 不输出且只有此时的输入有…...