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

news2024/12/15 6:30:12

【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

冯诺依曼结构

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

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

哈佛结构

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2259789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32仿真——01创建工程

目录 1.需要用到的软件工具​编辑 2.第一步Proteus软件新建工程​编辑 3.第二步——stm32cubumx 4、MDK代码编写 #注意安装的过程或者使用过程使用英文&#xff0c;以防报错&#xff1b; 1.需要用到的软件工具 2.第一步Proteus软件新建工程 选中&#xff0c;默认 先布局&…

Spark3.2.0集群部署ON YARN

环境说明 准备三台服务器&#xff0c;分别为&#xff1a;bigdata141&#xff08;hadoop 主节点&#xff09;、bigdata142、bigdata143确保 hadoop 集群先启动好&#xff0c;我这边的 hadoop 版本为 3.2.0另准备一台服务器&#xff0c;bigdata144&#xff0c;作为 hadoop 客户端…

GLM-4-Plus初体验

引言&#xff1a;为什么高效的内容创作如此重要&#xff1f; 在当前竞争激烈的市场环境中&#xff0c;内容创作已成为品牌成功的重要支柱。无论是撰写营销文案、博客文章、社交媒体帖子&#xff0c;还是制作广告&#xff0c;优质的内容不仅能够帮助品牌吸引目标受众的注意力&a…

C++获取时间戳/计算运行时长

一、便于使用&#xff0c;使用chrono封装一个简单的类 #pragma once#include <chrono>using CTime_point std::chrono::high_resolution_clock::time_point;class CElapsedTime final { public:static CTime_point now() {return std::chrono::high_resolution_clock::…

IDEA方法注释模板设置

目录 创建模板 新建模板&#xff1a;命名为* 设置模板内容-IDEA格式模板 设置模板应用场景 设置参数 创建模板 /**Enter这里我们也按照这种习惯来设置IDEA的方法注释&#xff1a;File-->Settings-->Editor-->Live Templates 先新建模板组&#xff0c;然后在模板组中…

Xcode

info.plist Appearance Light 关闭黑暗模式 Bundle display name 设置app名称&#xff0c;默认为工程名 Location When In Use Usage Description 定位权限一共有3个key 1.Privacy - Location When In Use Usage Description 2.Privacy - Location Always and When In U…

探索 Cesium 的未来:3D Tiles Next 标准解析

探索 Cesium 的未来&#xff1a;3D Tiles Next 标准解析 随着地理信息系统&#xff08;GIS&#xff09;和 3D 空间数据的快速发展&#xff0c;Cesium 作为领先的开源 3D 地球可视化平台&#xff0c;已成为展示大规模三维数据和进行实时渲染的强大工具。近年来&#xff0c;随着…

掘金电影市场的新机遇:开发特惠电影票小程序api文档

随着电影市场的不断扩大&#xff0c;特惠电影票小程序成为创业者和企业争相布局的新蓝海。本文将带你深入了解特惠电影票小程序的开发要点&#xff0c;以及如何通过这个项目实现盈利。 项目背景及市场分析 电影市场规模的不断扩大为特惠电影票小程序提供了广阔的市场空间。 根…

JaxaFx学习(一)

目录&#xff1a; &#xff08;1&#xff09;基本结构 &#xff08;2&#xff09;Application &#xff08;3&#xff09;Stage窗口显示 &#xff08;4&#xff09;Scene场景切换 &#xff08;5&#xff09;UI控件通用属性 &#xff08;6&#xff09;UI控件属性绑定很属性…

java抽奖系统(七)

8. 抽奖活动 8.1 新建抽奖活动 创建的活动信息包含&#xff1a; i. 活动名称 ii. 活动描述 iii. 圈选奖品&#xff1a;勾选对应奖品&#xff0c;并设置奖品等级&#xff08;⼀⼆三等奖&#xff09;&#xff0c;及奖品数量 iv. 圈选⼈员&#xff1a;勾选参与抽奖⼈员 库表关联…

Unity学习笔记(一)如何实现物体之间碰撞

前言 本文为Udemy课程The Ultimate Guide to Creating an RPG Game in Unity学习笔记 如何实现物体之间碰撞 实现物体之间的碰撞关键组件&#xff1a;Rigidbody 2D(刚体)、Collider 2D(碰撞体)、Sprite Renderer&#xff08;Sprite渲染器&#xff09; 实现物体之间的碰撞 …

MATLAB 平面直线与直线求交(99)

MATLAB 平面直线与直线求交(99) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 平面上,给定两直线,直线由两个点确定,计算直线与直线的交点,理论上只要不平行就有交点,下面是计算代码和效果: 二、算法实现 1.代码 代码如下(示例): % 示例用法 % 定义两条线…

STM32单片机芯片与内部21 电源管理——低功耗 睡眠模式 停止模式 待机模式

目录 一、SMT32电源框图 1、ADC电源与参考电压VDDA 2、调压器供电电路VDD/1.8V 3、备份域电路 二、电源监控器 1、上电复位与掉电复位&#xff08;POR与PDR&#xff09; 2、可编程电压检测器 PVD 三、功耗模式 1、睡眠模式 2、停止模式 3、待机模式 电源对电子设备的…

数智读书笔记系列006 协同进化:人类与机器融合的未来

书名:协同进化&#xff1a;人类与机器融合的未来 作者:[美]爱德华阿什福德李 译者:李杨 出版时间:2022-06-01 ISBN:9787521741476 中信出版集团制作发行 爱德华・阿什福德・李&#xff08;Edward Ashford Lee&#xff09;是一位在计算机科学与工程领域颇具影响力的学者&am…

计算机网络知识点全梳理(一.TCP/IP网络模型)

目录 TCP/IP网络模型概述 应用层 什么是应用层 应用层功能 应用层协议 传输层 什么是传输层 传输层功能 传输层协议 网络层 什么是网络层 网络层功能 网络层协议 数据链路层 什么是数据链路层 数据链路层功能 物理层 物理层的概念和功能 TCP/IP网络模型概述…

docker启动一个helloworld(公司内网服务器)

这里写目录标题 容易遇到的问题&#xff1a;1、docker连接问题 我来介绍几种启动 Docker Hello World 的方法&#xff1a; 最简单的方式&#xff1a; docker run hello-world这会自动下载并运行官方的 hello-world 镜像。 使用 Nginx 作为 Hello World&#xff1a; docker…

Ubuntu 安装texstudio sty与texlive

手动安装需要的包 访问CTAN网站&#xff08;Comprehensive TeX Archive Network&#xff09;并下载enumitem宏包&#xff1a; enumitem CTAN页面下载后&#xff0c;将宏包解压到/usr/share/texmf/tex/latex/下。 可打开texstudio/帮助/宏包帮助下载。 如果不想手动安装一个个…

游戏引擎学习第42天

仓库: https://gitee.com/mrxiao_com/2d_game 简介 目前我们正在研究的内容是如何构建一个基本的游戏引擎。我们将深入了解游戏开发的每一个环节&#xff0c;从最基础的技术实现到高级的游戏编程。 角色移动代码 我们主要讨论的是角色的移动代码。我一直希望能够使用一些基…

SEGGER | 基于STM32F405 + Keil - RTT组件01 - 移植SEGGER RTT

导言 RTT(Real Time Transfer)是一种用于嵌入式中与用户进行交互的技术&#xff0c;它结合了SWO和半主机的优点&#xff0c;具有极高的性能。 使用RTT可以从MCU非常快速输出调试信息和数据&#xff0c;且不影响MCU实时性。这个功能可以用于很多支持J-Link的设备和MCU&#xff0…

【01】mysql安装后MySQL Configurator无法启动的问题

安装完Mysql之后打开MySql Configurator提示MySQL Configurator Internal error.(值不能为null.参数名:input) The Configurator will now close. mysql安装后MySQL Configurator无法启动的问题 文章目录 mysql安装后MySQL Configurator无法启动的问题1.MySQL Configurator无法…