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

【FLASH、SRAM和DRAM、CISC和RISC、冯诺依曼和哈佛】单片机内存结构的了解

【FLASH、SRAM和DRAM、CISC和RISC、冯诺依曼和哈佛】单片机内存结构的了解

一、单片机概念

单片机:Single-Chip Microcomputer,单片微型计算机,是一种集成电路芯片

image-20240915210417839

1.1RAM里的SRAM和DRAM

SRAM(Static Random Access Memory)和DRAM(Dynamic Random Access Memory)是两种常见的随机访问存储器类型,它们在内部工作原理和应用方面有一些显著的区别。

随机存取存储器(Random Access Memory,简称RAM)是计算机中用于临时存储数据和程序的关键组件。它允许数据的快速读写,是CPU直接与之交换数据的主要内部存储器。RAM的特点是易失性,即在断电后数据会丢失,因此它主要用于存储当前正在使用或即将使用的数据和程序。

RAM主要分为两种类型:静态随机存取存储器(Static RAM,简称SRAM)和动态随机存取存储器(Dynamic RAM,简称DRAM)。SRAM的速度较快,成本较高,常用于高速缓冲存储器(Cache)和寄存器中。DRAM则因其结构简单、集成度高、成本较低而被广泛应用于计算机的主存中。DRAM需要定期刷新来保持数据,这是其“动态”特性的由来。

在计算机中,RAM的作用至关重要,它不仅影响着系统的运行速度和性能,还决定了多任务处理的能力。例如,当你打开多个应用程序或在不同程序间切换时,足够的RAM可以确保数据快速加载和流畅切换。随着技术的发展,DRAM的标准也在不断提升,如DDR3 SDRAM和DDR4 SDRAM,后者逐渐成为主流,提供了更高的性能和能效。

总的来说,RAM是计算机存储体系中不可或缺的一部分,它直接影响着计算机的响应速度和多任务处理能力。对于需要进行大量数据处理或运行内存密集型应用程序的用户来说,投资更多的RAM是一个明智的选择。

静态特性/动态特性刷新速度用途和成本:功耗
SRAM(Static RAM)SRAM是静态存储器,这意味着它在没有时钟信号的情况下可以保持存储的数据。不需要定期刷新,因为数据是存储在触发器中,只要电源保持稳定,数据就会一直保持。通常比DRAM更快,因为读写操作可以直接在存储单元之间进行,而不需要刷新周期或者访问电容。通常用于需要快速访问速度和不需要大容量的应用,例如缓存内存。功耗较,因为它使用了更多的晶体管来实现每个存储单元
DRAM(Dynamic RAM)DRAM是动态存储器,需要定期刷新以保持存储的数据,因为数据存储在电容中,电容会逐渐失去电荷。需要周期性地刷新,否则数据会丢失。相对于SRAM而言,DRAM的访问速度通常较慢,因为访问需要经过行和列的选择。通常用于需要大容量存储的应用,例如系统内存,因为DRAM可以提供相对较高的存储密度。常功耗较低,因为每个存储单元只需要一个电容和一个访问晶体管。

在嵌入式系统中,常常会使用SRAM作为处理器的缓存,而DRAM则用于系统内存。选择哪种类型的内存取决于应用的需求,例如速度、功耗、成本和容量。

STM32单片机中的SRAM:STM32单片机通常内置有一定量的SRAM,例如STM32F103C8T6可能有20KB的SRAM。这些SRAM被划分为不同的区域,包括用于存储程序数据的区域和用于存储变量的区域。

1.2Flash存储器(闪存)

在嵌入式系统中,特别是在单片机(Microcontroller)中,Flash存储器类似于个人电脑上的硬盘。

特点介绍

以下是关于Flash存储器在单片机中的一些重要方面:

  1. 非易失性存储: Flash存储器是一种非易失性存储器,这意味着它可以在断电后保持存储的数据。这使得它非常适合用于嵌入式系统,因为系统可以在断电或重启后从Flash中加载程序代码或配置信息。
  2. 程序存储: 在单片机中,Flash通常用于存储程序代码。当单片机启动时,它会从Flash中读取代码并执行。这使得Flash对于嵌入式系统的正常运行至关重要。
  3. 数据存储: 除了程序代码,Flash还可以用于存储非易失性数据,例如配置信息、参数设置等。这些数据可以在设备断电后仍然保持,确保系统具有持久性。
  4. 擦写和擦除: Flash存储器需要进行擦写和擦除操作,而这些操作通常是以块为单位进行的。在更新存储的数据或程序时,需要将整个块擦除,然后再进行写入操作。这与RAM不同,RAM允许单独的字节或字的写入。
  5. 寿命考虑: Flash存储器有限的擦写寿命,因此在设计中需要考虑擦写次数。为了延长Flash的寿命,通常采用良好的擦写算法和均衡擦写操作。

总体而言,Flash存储器在嵌入式系统中扮演着重要的角色,类似于个人电脑中硬盘的作用。不仅用于存储程序代码,还用于存储系统的配置和持久性数据。

STM32中的Flash

STM32的Flash存储器是微控制器内部的非易失性存储区域,主要用于存储程序代码和一些固定数据。Flash存储器在断电后数据不会丢失,是程序执行的主要区域。STM32的Flash存储器具有以下特点:

  1. 内存映射:STM32的Flash地址起始于0x08000000,结束地址是0x08000000加上芯片实际的Flash大小。不同的STM32芯片Flash大小不同。

  2. 构成:STM32的内部Flash包含主存储器、系统存储器、OTP(One Time Program)区域以及选项字节区域。主存储器用于存储用户应用程序,系统存储区包含固化的启动代码,OTP区域用于存储加密密钥等一次性编程数据,选项字节用于配置Flash的读写保护等功能。

  3. 擦除和写入:在写入新的数据前,需要先擦除存储区域。STM32提供了扇区擦除指令和整个Flash擦除(批量擦除)的指令。擦除和写入操作需要先解锁Flash,然后擦除目标扇区,最后写入数据。

  4. 容量:STM32的Flash容量因型号而异,例如STM32F103C8T6拥有64KB或128KB的Flash。

  5. 操作过程:操作Flash通常包括解锁Flash、擦除扇区、写入数据等步骤。这些步骤需要通过配置FLASH控制寄存器(FLASH_CR)和FLASH状态寄存器(FLASH_SR)来完成。

  6. 编程接口:STM32标准库提供了操作Flash的函数,如HAL_FLASH_Program用于编程操作,FLASH_UnlockFLASH_Lock用于解锁和上锁Flash。

  7. 注意事项:Flash的擦除和写入操作对电源电压有要求,且每个Flash扇区的擦写次数有限,通常在10万次左右。

  8. 应用:除了存储程序代码,Flash还可以用于存储关键记录或配置数据,尤其是在需要快速访问或掉电保护的情况下。

当你烧写程序到STM32单片机时,程序代码会被存储到单片机内部的Flash存储器中。

烧写过程通常涉及以下步骤:

  1. 编译:首先,你会使用如Keil、IAR、STM32CubeIDE等集成开发环境(IDE)将你的源代码编译成机器代码。

  2. 烧写:然后,通过烧写工具(可能是ST-LINK、JTAG、SWD或其他编程器)将编译后的机器代码(通常以二进制文件的形式)传输到STM32单片机的内部Flash中。

  3. 验证:烧写完成后,单片机在下次复位或上电时会从内部Flash加载并执行程序。

STM32单片机的Flash存储器具有特定的组织结构,通常分为多个扇区(sectors),每个扇区可以独立擦除和编程。在烧写过程中,你需要确保代码被烧写到正确的扇区,并且该扇区之前已经被擦除。

此外,STM32的Flash存储器还提供了一些额外的功能,如读保护、写保护和执行保护,这些功能可以通过编程选项字节来配置,以增强程序的安全性。

1.3Flash VS SRAM

SRAM(Static Random-Access Memory,静态随机存取存储器)是STM32单片机中非常重要的一种存储器,它的特点和应用如下:

  1. 易失性存储器:SRAM是一种易失性存储器,这意味着一旦断电,存储在SRAM中的数据会丢失。因此,它主要用于存储临时数据,如程序运行时的变量、堆栈、缓存等。
  2. 快速访问:SRAM提供比Flash更快的读写速度,因为它不需要像Flash那样进行擦除和编程周期。这使得SRAM非常适合用作CPU的缓存或用于存储频繁访问的数据。
  3. 随机存取:SRAM允许随机存取,即可以直接访问任何存储单元,而不需要像某些类型的存储器那样按顺序访问。这使得SRAM在需要快速、直接数据访问的场合非常有用。
  4. 功耗:虽然SRAM的访问速度很快,但它通常比Flash消耗更多的电力,因为它需要持续的电源来保持数据。
  5. 成本:SRAM的成本通常比Flash和其他类型的存储器更高,因为它使用更复杂的制造工艺,并且每个晶体管可以存储更多的数据。
  6. 应用场景
    • 缓存:在CPU和主存之间用作高速缓存,减少CPU访问主存的次数,提高数据处理速度。
    • 堆栈:用于存储函数调用时的局部变量和返回地址。
    • 数据缓冲区:在数据传输过程中用作缓冲区,例如在DMA传输中。
    • 实时数据处理:在需要快速读写操作的实时系统中,用于存储实时数据。
  7. 外部SRAM扩展:当STM32单片机内置的SRAM不足以满足应用需求时,可以通过外部接口如FSMC(Flexible Static Memory Controller)扩展外部SRAM,以增加更多的存储空间。

SRAM在STM32单片机中扮演着重要角色,它的快速访问特性对于确保程序的流畅运行和响应速度至关重要。

1.4电脑 VS 单片机

电脑单片机
CPU主频X86,2-5 GHz51/ARM/RISC-V,72MHz (STM32F1)
内存容量GB级 约40GB/S (DDR4)KB级,约300MB/S (STM32F1)
磁盘容量TB级,约500MB/S (SATA3)KB级,约100MB/S (STM32F1)
功耗数百W<0.5W
价格2000-10000<10元

频率的单位从低到高主要有以下几种:

  1. 赫兹(Hz):频率的基本单位,表示每秒周期性事件发生的次数。
  2. 千赫兹(kHz):1 kHz = 1,000 Hz(1,000 赫兹)。
  3. 兆赫兹(MHz):1 MHz = 1,000 kHz = 1,000,000 Hz(一百万字)。
  4. 吉赫兹(GHz):1 GHz = 1,000 MHz = 1,000,000 kHz = 1,000,000,000 Hz(十亿次)。
  5. 太赫兹(THz):1 THz = 1,000 GHz = 1,000,000 MHz = 1,000,000,000,000 Hz(一万亿次)。

这些单位通常用于描述电子设备中的时钟速度、无线通信频率以及其他需要精确频率测量的场合。随着技术的发展,频率的测量和应用已经扩展到了更高的范围,例如在光学和量子物理研究中使用的PHz(拍赫兹)等。

计算X86 64位体系结构的理论最大数据传输速率的公式是:

传输速率=(位数/8)×时钟频率

其中:

  • 传输速率是以字节每秒(Bytes per second)为单位的。
  • 位数表示体系结构的位数,例如64位。
  • 时钟频率表示处理器的时钟速率,例如5GHz。

这个公式是基于每个时钟周期能够处理的位数,通过将其转换为字节,我们可以得到每秒的最大传输速率。

当主频为2~5 GHz,带入上述公式计算如下:

**最低主频(2 GHz):**传输速率=(64位/8)×2GHz=16GB/s

**最高主频(5 GHz):**传输速率=(64位/8)×5GHz=40GB/s

这个计算假设X86架构每个时钟周期可以处理64位的数据,并且通过将其转换为字节,我们可以得到每秒的最大传输速率。根据您提供的范围,最低到最高主频下,传输速率的范围在16 GB/s到40 GB/s之间。这是理论上的最大传输速率,实际的性能可能受到其他因素的影响,如内存访问模式、缓存性能等。

STM32F1系列的主频为72MHz,内存容量在KB级别,传输速率约为300MB/s。让我们再次使用正确的公式:

传输速率=(32位/8)×72MHz=288MB/s

在这个计算中,我假设STM32F1系列每个时钟周期可以处理32位的数据,通过将其转换为字节,我们可以得到每秒的最大传输速率。因此,根据这个计算,理论上的最大传输速率为288MB/s,而不是300MB/s。这是一个近似值,实际性能可能会受到其他因素的影响。

1.5单片机发展历程

image-20240915213543763

单片机(Microcontroller Unit, MCU)的发展历史可以概括为以下几个阶段:

  1. 初期阶段(1970年代末至1980年代初)

    • 单片机的概念最早由Intel公司实现,推出了世界上第一款商用微处理器4004。
    • 1976年,Intel推出了MCS-48系列,这标志着8位单片微型计算机的诞生,并为单片机的发展奠定了基础 。
  2. 完善阶段(1980年代初至1980年代中期)

    • 1980年代,Intel推出了MCS-51系列,这是单片机发展史上的一个重要里程碑,它以体积小、功能全、价格低赢得了广泛的应用
  3. 高性能阶段(1980年代中期至1990年代初)

    • 出现了更多高性能的单片机,如Intel的MCS-96系列和Motorola的6801和6802系列。这些单片机集成度更高,功能更强大,应用领域更加广泛 。
  4. 快速发展阶段(1990年代至今)

    • 单片机技术得到了巨大的提高,出现了更多高速、大寻址范围、强运算能力的单片机。
    • 随着消费电子产品的发展,单片机技术得到了飞速的发展,32位单片机迅速取代了16位单片机的高端地位 。
  5. 当前与未来趋势

    • 单片机正朝着高性能、低功耗、小体积、大容量、低价格和外围电路内装化的方向发展。
    • 随着物联网、智能家居等技术的发展,单片机在智能化设备中的应用越来越广泛,未来可能会进一步融合人工智能技术,提升其智能化水平 。

单片机的应用领域非常广泛,包括工业控制、家用电器、汽车电子、智能仪表、通讯设备等,它们在现代社会的各个方面都发挥着重要作用。随着技术的不断进步,单片机的性能和功能也在不断提升,以满足日益增长的应用需求。

目前市场上常见的单片机制造商包括STMicroelectronics(STM32)、NXP(以前的飞思卡尔)、瑞萨(Renesas)等,它们的产品涵盖了各种应用领域。STM32是ST的32位ARM Cortex-M系列单片机,广泛应用于工业控制、汽车电子、消费电子、智能家居、物联网等多个领域。NXP和Renesas也提供了广泛的单片机产品,适用于不同的市场需求和应用场景。

目前市面上使用最多的单片机(MCU)品牌和型号非常多样,根据不同的应用领域和需求,不同的单片机有不同的市场占有率。根据2024年的市场分析报告,一些主流的单片机品牌和型号包括:

  1. STMicroelectronics(STM32):STM32系列单片机以其高性能、低成本和丰富的外设功能在工业控制、汽车电子、消费电子等领域有广泛的应用。

  2. Microchip Technology:提供广泛的PIC和AVR系列单片机,以及基于ARM架构的产品,适用于各种嵌入式系统。

  3. NXP Semiconductors:前身为飞思卡尔,提供多种单片机产品,包括基于ARM Cortex-M系列的高性能单片机。

  4. Renesas Electronics:提供多种8位和32位单片机,适用于汽车、工业和消费电子市场。

  5. Texas Instruments(TI):以其MSP430和CC系列单片机而知名,广泛应用于低功耗和高性能的应用场景。

  6. Infineon:提供多种单片机,适用于汽车、工业和通信市场。

  7. Silicon Labs:以其EFM8和EFM32系列单片机而知名,专注于提供高性能、低功耗的解决方案。

  8. Espressif Systems:以其ESP8266和ESP32系列Wi-Fi和蓝牙单片机而知名,特别适用于物联网应用。

  9. Atmel(现为Microchip的一部分):以其AVR和ARM系列单片机而知名,广泛应用于嵌入式系统设计。

  10. Holtek Semiconductor:专注于8位单片机的研发和销售,产品广泛应用于家电、医疗和工业控制领域。

这些单片机品牌和型号在市场上的使用率较高,但具体哪个型号使用最多可能会随着时间和市场需求的变化而变化。根据2024年的市场数据,STM32系列由于其广泛的应用和高性价比,可能是目前市场上使用较多的单片机之一。然而,这个情况可能会随着新技术的出现和市场动态的变化而发生改变。

1.6单片机发展趋势

发展趋势描述
微型化- 芯片尺寸缩小
- 无线单片机普及
高效节能- 提高能源使用效率
- 减少电子废物
集成度提高- 更多功能集成
- 减小电路板体积和功耗
低功耗设计- 优化电路设计
- 提高芯片制造工艺
智能家居- 设备智能化管理
- 互联互通
物联网- 设备互联
- 信息共享
工业控制- 自动化生产线
- 精密控制
安全性增强- 硬件与软件安全防护
- 加密算法和安全机制
云集成与物联网- 云计算平台连接
- 物联网应用
全球市场规模- 2022年达到1907.7亿元
- 预测2028年将达3556.97亿元
中国市场规模- 2022年达到653.2亿元
- 年均复合增长率为11.25%
主要厂商STMicroelectronics, Microchip, NXP Semiconductors, Renesas Electronics
产品分类32位单片机, 8位单片机, 16位单片机
应用细分工业, 通讯与电脑, 汽车

二、CISC VS RISC

image-20240915214828797

CISC(Complex Instruction Set Computing)和 RISC(Reduced Instruction Set Computing)是两种计算机体系结构的设计哲学,它们主要在指令集的复杂性和执行效率上有所不同。

CISC(Complex Instruction Set Computing):

  1. 指令集复杂: CISC体系结构有一个复杂的指令集,其中包含大量不同的指令,一些指令可以执行多个低级操作。
  2. 多寻址模式: CISC指令集通常支持多种寻址模式,使得一条指令能够操作多个内存位置。
  3. 硬件复杂: CISC架构中的处理器通常较为复杂,包含多个执行单元和管道。
  4. 高度优化: CISC指令集的目标是通过一个指令完成更多的工作,这通常需要更多的硬件支持和复杂的微体系结构。
  5. 用途: 传统的x86架构是CISC架构的代表。

RISC(Reduced Instruction Set Computing):

  1. 指令集简化: RISC体系结构采用简化的指令集,每条指令执行的操作相对较少,但执行时间相对较短。
  2. 单寻址模式: RISC指令集通常限制了寻址模式,简化了指令的解码和执行。
  3. 硬件精简: RISC处理器的硬件结构相对精简,专注于提高时钟周期内执行指令的效率。
  4. 流水线: RISC处理器通常采用流水线技术,使得多条指令可以同时在不同阶段执行。
  5. 用途: ARM和MIPS等体系结构是RISC架构的代表。

在实际应用中,CISC和RISC并非严格对立的两种设计,而是两者之间存在一些模糊的区域。一些架构尝试结合两者的优点,采用混合的设计方法,称为复杂指令集(CISC)和精简指令集(RISC)的混合体(例如,Intel的IA-64架构)。选择CISC或RISC架构通常取决于设计目标、应用需求以及制造技术的发展。

image-20240915214957002

冯诺依曼结构 VS 哈佛结构

image-20240915215032605

冯诺依曼结构

程序指令和数据被存储在同一个存储器中

  • 优点:总线资源占用少
  • 缺点:执行效率较低

哈佛结构

程序指令和数据存储到两个独立的存储器中

  • 优点:执行效率较高
  • 缺点:总线资源占用多

相关文章:

【FLASH、SRAM和DRAM、CISC和RISC、冯诺依曼和哈佛】单片机内存结构的了解

【FLASH、SRAM和DRAM、CISC和RISC、冯诺依曼和哈佛】单片机内存结构的了解 一、单片机概念 单片机&#xff1a;Single-Chip Microcomputer&#xff0c;单片微型计算机&#xff0c;是一种集成电路芯片 1.1RAM里的SRAM和DRAM SRAM&#xff08;Static Random Access Memory&…...

ionic capacitor JSValueEncodingContainer报错

try to clean the build folder. exit Xcode. upgrade your capacitor core libraries update cocoapods to 1.13.0 do “pod install --repo-udpdate” after that: ionic build --prodnpx cap updatenpx cap syncnpx cap open ios capacitor ios最低版本要求13 [Bug]:…...

pdf merge

在 Ubuntu 22.04 上&#xff0c;你可以使用以下命令行工具来合并多个 PDF 文件&#xff1a; 1. pdftk pdftk 是一个强大的 PDF 工具&#xff0c;支持合并、拆分和其他操作。安装和使用方法如下&#xff1a; sudo apt install pdftk pdftk file1.pdf file2.pdf cat output me…...

【Trouble Shooting】Oracle ADG hung,出现ORA-04021

异常问题&#xff1a; 突然收到告警&#xff0c;ADG实例状态异常。 环境&#xff1a; 版本&#xff1a;Oracle 11.2.0.4.201020 状态&#xff1a;Active Dataguard 问题&#xff1a; 查看Oracle实例alert日志&#xff0c;发现有异常报错&#xff1a; Thu Dec 12 22:15:23 …...

奇怪的知识又增加了:ESP32下的Lisp编程=>ULisp--Lisp for microcontrollers

ESP32下有MicroPython&#xff0c;那么我就在想&#xff0c;有Lisp语言支持吗&#xff1f;答案是果然有&#xff01;有ULisp&#xff0c;专门为MCU设计的Lisp&#xff01; 网址&#xff1a;uLisp - Lisp for microcontrollers 介绍&#xff1a;用于微控制器的 Lisp 适用于 Ar…...

什么是CRM系统?CRM系统的功能、操作流程、生命周期

CRM系统作为企业管理和维护客户关系的重要工具&#xff0c;在商业活动中扮演着越来越重要的角色。今天&#xff0c;就让我们一起揭开它的神秘面纱&#xff0c;看看这个“幕后英雄”到底是怎么工作的。 什么是CRM系统&#xff1f; 首先&#xff0c;我们要了解什么是CRM。简单来…...

[每日一练]转换日期格式

#该题目来源于力扣&#xff1a; 1853. 转换日期格式 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 表: Days------------------- | Column Name | Type | ------------------- | day | date | ------------------- day 是这个表的主键。给定一个Da…...

LSM Tree 底层设计理念

场景&#xff1a;设计一个海量读写的的kv数据库&#xff0c;优先保证写入速度&#xff0c;但是读取速度也不能很慢 因为海量数据存储&#xff0c;不能使用内存&#xff0c;得存到文件里。 Q&#xff1a;对已经落盘的文件&#xff0c;怎么根据key修改value A&#xff1a;读取文件…...

面向对象设计规则和各类设计模式

面向对象设计&#xff08;Object-Oriented Design, OOD&#xff09;是一种软件设计方法论&#xff0c;它使用对象、类、继承、封装、多态等概念来组织代码。面向对象设计的核心目标是提高软件的可维护性、可扩展性和复用性。在面向对象设计中&#xff0c;遵循一定的设计原则和模…...

Artec Leo3D扫描仪在重型机械设备定制中的应用【沪敖3D】

挑战&#xff1a;一家加拿大制造商需要有效的方法&#xff0c;为富于变化且难度较高的逆向工程&#xff0c;快速、安全、准确地完成重型机械几何采集。 解决方案&#xff1a;Artec Leo, Artec Studio, Geomagic for SOLIDWORKS 效果&#xff1a;Artec Leo三维扫描代替过去的手动…...

Linux下socket广播通讯的实现

概念大家都很清楚&#xff0c;不赘述。 广播必然用UDP这套东西。 setsockopt() 函数及其在广播中的应用&#xff1a; 在 C 网络编程中&#xff0c;setsockopt() 函数用于设置套接字选项&#xff0c;这些选项可以控制套接字的各种行为。对于广播通信&#xff0c;我们特别关心…...

Tiptap,: 富文本编辑器入门与案例分析

Tiptap 是一个现代的富文本编辑器&#xff0c;基于 ProseMirror 打造&#xff0c;旨在提供一个灵活且功能强大的文本编辑解决方案。它具有开箱即用的能力&#xff0c;同时也允许开发者根据业务需求进行高度定制化扩展。与传统的富文本编辑器相比&#xff0c;Tiptap 提供了更精细…...

数智读书笔记系列002 埃隆·马斯克传

书名&#xff1a;埃隆马斯克传 作者&#xff1a;【美】沃尔特艾萨克森 译者&#xff1a;孙思远&#xff1b;刘家琦 出版社&#xff1a;中信出版集团 出版时间&#xff1a;2023年9月 ISBN&#xff1a;9787521758399 这本书是关于特斯拉CEO埃隆马斯克的传记&#xff0c;作者…...

linux环境一句话后门

原文地址&#xff1a;linux环境一句话后门 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 注意&#xff1a;本文章只做网络安全技术交流使用&#xff0c;切莫用来做坏事。 也可以叫一句话木马&#xff0c;一个意思。 设置监听 回连端口可以…...

django——admin后台管理1

一、admin后台管理 访问url进入&#xff1a; http://127.0.0.1:8000/admin ​ 创建超级管理用户 终端输入以下命令&#xff1a; python manage.py createsuperuser (py36_pingping) E:\django学习\day03-django入门\demo>python manage.py createsuperuser Username: mo…...

QT图形/视图架构详解(一)

场景、视图与图形项 图形/视图架构主要由 3 个部分组成&#xff0c;即场景、视图和图形项&#xff0c;三者的关系如图所示&#xff1a; 场景、视图和图形项的关系 场景&#xff08;QGraphicsScene 类&#xff09; 场景不是界面组件&#xff0c;它是不可见的。场景是一个抽象的…...

h5 区分ios和安卓

h5 区分ios和安卓 const systemInfo uni.getSystemInfoSync(); if (systemInfo.platform "ios" || systemInfo.platform "android") {}h5 区分微信小程序与app用条件编译条件编译 js #ifdef MP-WEIXIN #endif...

爬虫基础知识点

最近看了看爬虫相关知识点&#xff0c;做了记录&#xff0c;具体代码放到了仓库&#xff0c;本文仅学习使用&#xff0c;如有违规请联系博主删除。 这个流程图是我使用在线AI工具infography生成的&#xff0c;这个网站可以根据url或者文本等数据自动生成流程图&#xff0c;挺…...

golang 实现简单redis服务3(实现多类型数据结构支持)

redis各种数据类型的工作原理stringlisthashset(集合)zset(有序集合)(思考1):为什么redis使用跳跃表而不是红黑树?(思考2): 都可以范围取值,为什么mysql使用b树不用跳跃表,为什么redis使用跳跃表不用b树? 之前的redis只实现了基本数据string类型的操作,那能不能实现多种数据类…...

【硬件测试】基于FPGA的4ASK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

目录 1.算法仿真效果 2.算法涉及理论知识概要 3.Verilog核心程序 4.开发板使用说明和如何移植不同的开发板 5.完整算法代码文件获得 1.算法仿真效果 本文是之前写的文章: 《基于FPGA的4ASK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR》 的…...

配置mysqld(读取选项内容,基本配置),数据目录(配置的必要性,目录下的内容,具体文件介绍,修改配置)

目录 配置mysqld 读取选项内容 介绍 启动脚本 基本配置 内容 端口号 数据目录的路径 配置的必要性 配置路径 mysql数据目录 具体文件 修改配置时 权限问题 配置mysqld 读取选项内容 介绍 会从[mysqld] / [server] 节点中读取选项内容 优先读取[server] 虽然服务…...

【roadMap】我转行软件测试的经历

软件测试这行咋样&#xff1f; 如果你简单了解过「软件测试工程师」这个岗位&#xff0c;就会知道它的基本特点&#xff1a; 待遇比开发低&#xff0c;比其他行业高入门丝滑&#xff0c;算是技术岗最简单的一类测试行业有细分领域&#xff1a;功能、性能、自动化… 每个行业…...

回归任务与分类任务应用及评价指标

能源系统中的回归任务与分类任务应用及评价指标 一、回归任务应用1.1 能源系统中的回归任务应用1.1.1 能源消耗预测1.1.2 负荷预测1.1.3 电池健康状态估计&#xff08;SOH预测&#xff09;1.1.4 太阳能发电量预测1.1.5 风能发电量预测 1.2 回归任务中的评价指标1.2.1 RMSE&…...

半导体制造全流程

半导体制造是一个极其复杂且精密的过程&#xff0c;主要涉及将硅片加工成功能强大的芯片。以下是半导体制造的全流程概述&#xff1a; 1. 硅材料制备 硅提纯&#xff1a; 使用冶金级硅&#xff0c;进一步提纯为高纯度硅&#xff08;电子级硅&#xff09;&#xff0c;纯度可达 …...

Mac m2电脑上安装单机Hadoop(伪集群)

1. 引言 本教程旨在介绍在Mac 电脑上安装Hadoop 2. 前提条件 2.1 安装JDK Mac电脑上安装Hadoop&#xff0c;必须首先安装JDK&#xff0c;并配置环境变量&#xff08;此处不做详细描述&#xff09; 2.2 配置ssh环境 关闭防火墙 在Mac下配置ssh环境&#xff0c;防止后面启…...

React 第十六节 useCallback 使用详解注意事项

useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook&#xff0c;返回一个函数的 memoized的值&#xff1b; 2、如果多次传入的依赖项不变&#xff0c;那么多次定义的时候&#xff0c;返回的值是相同的,防止频繁触发更新&#xff1b; 3、多应用在 父组件为函…...

悬赏任务源码(悬赏发布web+APP+小程序)开发附源码

悬赏任务源码是指一个软件或网站的源代码&#xff0c;用于实现悬赏任务的功能。悬赏任务是指发布方提供一定的奖励&#xff0c;希望能够找到解决特定问题或完成特定任务的人。悬赏任务源码通常包括任务发布、任务接受、任务完成和奖励发放等功能的实现。搭建悬赏任务源码是一个…...

Collection接口

目录 一. Collection基本介绍 二. Collection中的方法及其使用 1. 添加元素 (1) 添加单个元素 (2) 添加另一集合中的所有元素 2. 删除元素 (1) 删除单个元素 (2) 删除某个集合中包含在其他集合中的元素 (3) 保留两个集合中的交集部分, 删除其他元素. 3. 遍历元素 (1) …...

电机驱动模块L9110S详解

电机驱动模块是一种用于控制和驱动电机的设备&#xff0c;它能够将控制信号转化为适合电机操作的电流和电压。通过电机驱动模块&#xff0c;可以实现对电机的速度、方向等参数进行精确控制。 今天我们要介绍的 L9110S 电机驱动适合大学生、工程师、个人DIY、电子爱好者们学习和…...

路由之间是怎么跳转的?有哪些方式?

1. React 路由跳转方式&#xff08;React Router&#xff09; 在 React 中&#xff0c;路由跳转通常使用 React Router 来管理。React Router 提供了不同的跳转方式。 <Link> 组件跳转 使用 <Link> 组件来进行路由跳转&#xff0c;它会渲染为一个 HTML <a> …...

AudioSegment 将音频分割为指定长度时间片段 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” -------------------------------------------------------------…...

双目摄像头标定方法

打开matlab 找到这个标定 将双目左右目拍的图像上传&#xff08;左右目最好不少于20张&#xff09; 等待即可 此时已经完成标定&#xff0c;左下角为反投影误差&#xff0c;右边为外参可视化 把这些误差大的删除即可。 点击导出 此时回到主页面&#xff0c;即可看到成功导出 Ca…...

题解 - 莱布尼茨三角形

题目描述 世界上著名的莱布尼茨三角形如图所示&#xff0c;请编程输出图中排在第n行从左边数第m个位置上的数。 输入 共一行&#xff0c;有二个整数N 和M(N<15)&#xff0c;两数间用空格隔开。 输出 共一行&#xff0c;有二个整数&#xff0c;两数间用“/”隔开&#xff…...

低代码开发:企业数智化转型中的关键角色与实践案例分析

引言 随着信息技术的飞速发展&#xff0c;企业数智化转型已成为提升竞争力和实现可持续发展的必经之路。在这一过程中&#xff0c;低代码开发平台作为一种新兴的开发模式&#xff0c;正逐渐成为企业数智化转型的关键角色。本文将探讨低代码开发在企业数智化转型中的作用&#x…...

【ubuntu24.04】PDFMathTranslate 本地PDF翻译GPU部署

https://huggingface.co/spaces/reycn/PDFMathTranslate-Docker排不上号官方都是要安装包,感觉可以本地试着源码部署一下, http://localhost:7860/官方是这个端口,但是我本地启动是:5000IDEA 里本地 backend启动效果 GUI 是监听7860的...

基于Spring Boot + Vue的摄影师分享交流社区的设计与实现

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…...

高空坠物识别

目录 一、回答二、其他参考 prompt 有没有识别高空坠物的github项目一、回答 根据您的请求&#xff0c;以下是一些在GitHub上可以找到的关于识别高空坠物的项目&#xff1a; 1、overthecity 这是一个监控高空抛物的云端服务项目&#xff0c;它利用Edison的计算能力对高空抛物…...

22. 正则表达式

一、概述 正则表达式&#xff08;regular expression&#xff09;又称 规则表达式&#xff0c;是一种文本模式&#xff08;pattern&#xff09;。正则表达式使用一个字符串来描述、匹配具有相同规格的字符串&#xff0c;通常被用来检索、替换那些符合某个模式&#xff08;规则&…...

阿里云数据库MongoDB版助力极致游戏高效开发

客户简介 成立于2010年的厦门极致互动网络技术股份有限公司&#xff08;以下简称“公司”或“极致游戏”&#xff09;&#xff0c;是一家集网络游戏产品研发与运营为一体的重点软件企业&#xff0c;公司专注于面向全球用户的网络游戏研发与运营。在整个产业链中&#xff0c;公…...

leetcode230.二叉搜索树中第k小的元素

标签&#xff1a;二叉搜索树&#xff1b;中序遍历 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 小的元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,null,2], k 1…...

深入了解C++中const的用法

文章目录 一、C中的const如何理解&#xff1f;二、C中的const与C语言中的const有何区别&#xff1f;三、const与指针、引用的结合使用 一、C中的const如何理解&#xff1f; 在C中&#xff0c;const是一个关键字&#xff0c;用来表示常量性&#xff0c;意在告诉编译器某些变量或…...

adb连接逍遥安卓模拟器失败的问题解决方案

1、逍遥安卓模拟器进入系统应用&#xff0c;设置-关于平板电脑-版本号&#xff0c;连续点击3次以上&#xff0c;直到提示进入开发者模式&#xff0c;返回设置界面&#xff0c;进入【开发者选项】-【USB调试】开启&#xff0c;之后重启模拟器再次adb尝试连接。 2、android stud…...

【Go基础】Go算法常用函数整理

Go算法常用函数整理 使用 Go 语言编写算法题时&#xff0c;掌握一些常用的函数和用法可以大大提高效率。 1. 排序 (slices 包)&#xff1a; slices.Sort(x []T)&#xff1a; 对切片 x 进行升序排序。需要 Go 1.18 版本。T 需要实现 constraints.Ordered 接口&#xff0c;例如…...

【rust杂乱笔记】

code . 打开vscode fn main() {println!("hello world!") }loop{}循环; break跳出循环 // 引入三方库 use rand::Rng; // 引入标准库中的输入输出 use std::cmp::Ordering; use std::io;// main函数 先执行main函数 fn main() {// 打印的宏方法// 打印提示信息print…...

BFS算法题

目录 1.BFS 2.树里的宽搜 题目一——429. N 叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目二——103. 二叉树的锯齿形层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目三——662. 二叉树最大宽度 - 力扣&#xff08;LeetCode&#xff09; 题目四——…...

辅助函数:mapMutations,mutations里的方法映射到组件的methods中

或者&#xff0c;页面已经映射了该方法 &#xff0c;直接在该页面使用该方法。也就是不用在组件函数中向仓库传递修改数据信息&#xff0c;直接使用映射过来的方法修改数据 修改标题 跟在methods中定义函数不一样调用mutations方法修改标题不一样&#xff0c;新修改的数据是要写…...

XX服务器上的npm不知道咋突然坏了

收到同事的V&#xff0c;说是&#xff1a;182上的npm不知道咋突然坏了&#xff0c;查到这里了&#xff0c;不敢动了。 咱一定要抓重点&#xff1a;突然坏了。这里的突然肯定不是瞬间&#xff08;大概率是上次可用&#xff0c;这次不可用&#xff0c;中间间隔了多长时间&#x…...

2024年山西省第十八届职业院校技能大赛 (高职组)“信息安全管理与评估”赛项规程

2024年山西省第十八届职业院校技能大赛 &#xff08;高职组&#xff09;“信息安全管理与评估”赛项规程 一、赛项名称 赛项名称&#xff1a;信息安全管理与评估 英文名称&#xff1a;Information Security Management and Evaluation 赛项组别&#xff1a;高职教师组 赛项归属…...

Excel拆分脚本

Excel拆分 工作表按行拆分为工作薄 工作表按行拆分为工作薄 打开要拆分的Excel文件&#xff0c;使用快捷键&#xff08;AltF11&#xff09;打开脚本界面&#xff0c;选择要拆分的sheet&#xff0c;打开Module&#xff0c;在Module中输入脚本代码&#xff0c;然后运行脚本 Su…...

深入解析MySQL事务隔离级别与锁机制在银行账户业务中的应用

一、引言 在金融行业&#xff0c;尤其是银行账户业务中&#xff0c;数据的一致性和安全性至关重要。MySQL作为一种广泛使用的数据库&#xff0c;其事务隔离级别和锁机制在保证数据一致性方面发挥着重要作用。本文将针对银行账户查询与转账业务&#xff0c;探讨如何运用事务锁来…...