ARM Cortex R52内核 01 概述

news2024/10/7 6:45:15

ARM Cortex R52内核 01 Introduction

1.1 Cortex®-R52介绍

Cortex-R52处理器是一种中等性能、有序、超标量处理器,主要用于汽车和工业应用。它还适用于各种其他嵌入式应用,如通信和存储设备。

Cortex-R52处理器具有一到四个核心,每个核心实现一个单一的Armv8-R AArch32兼容处理单元processing element (PE)。在Cortex-R52上下文中,PE和核心在概念上是相同的。

多个受保护的内存系统架构Protected Memory System Architecture(PMSA)上下文可以使用虚拟化技术在同一核心上执行。处理器允许包含不同上下文的实时性能,这防止了一个上下文影响更关键上下文的响应时间和确定性。处理器可以为双核锁步Dual-Core Lock-Step(DCLS)操作拥有逻辑和比较器实例的冗余副本。

下图显示了一个Cortex-R52处理器系统的示例。

image-20240317210825265

1.1.1 特点

Cortex-R52处理器的主要特点包括:

  • 最多四个核心,每个核心都有一个八级有序的超标量流水线,具有分支预测

  • 对于实例化的RAM和连接的闪存,可以使用双重错误检测Double Error Detect (DED)或单错误纠正双重错误检测Single Error Correct Double Error Detect (SECDED)保护。实例化的RAM包括:

    • 指令缓存标签和数据RAM
    • 数据缓存标签和数据RAM
    • 紧密耦合存储器Tightly Coupled Memories(TCM)
  • 可选总线保护主要main AXI Master(AXIM)接口,AXI Slave (AXIS)接口,低延迟外设端口Low-latency Peripheral Port (LLPP)接口,和Flash接口:

    • 可选的数据,地址,控制和响应有效载荷的信号完整性保护,以及 握手信号
    • 可选的互连保护
  • 错误报告接口

  • 电源管理

  • Armv8-R AArch32 Debug提供硬件断点和观察点,自托管和外部调试。它还支持调试目标和主机之间的通信。Aarch32概要的Armv8-R Debug基于Armv8.0 Debug架构

  • 用于指令和数据跟踪的嵌入式跟踪宏单元Embedded Trace Macrocell(ETM)

  • 用于仿真和校准的内存重构端口Memory Reconstruction Port (MRP)

  • 基于PMUv3架构的性能监控单元Performance Monitoring Unit (PMU)支持

  • 用于多处理器调试的交叉触发接口Cross Trigger Interface (CTI)

  • 集成的、快速响应的通用中断控制器Generic Interrupt Controller (GIC)和虚拟化

  • 用于在引导时间和引导时间后预定时间间隔测试内存的在线内存内置自测试Memory Built-In Self Test (MBIST)接口

1.1.2 接口 Interface

Cortex-R52处理器有几个外部接口。

下图显示了Cortex-R52处理器的外部接口。箭头指示每个接口中的信号方向。

image-20240317212000433

1.1.3 配置选项Configuration options

Cortex-R52处理器具有一些选项,您可以在实现和集成阶段进行配置,以满足您的功能需求。
下表显示了处理器的可配置选项。

image-20240317212749926

Processor configurations

Cortex-R52处理器可以配置为实现DCLS和Split-Lock配置。

DCLS(Dual-Core Lock-Step)

在DCLS配置中,每个核心的大部分核心逻辑都有一个第二个冗余副本, 以及共享逻辑的一个冗余副本。

冗余逻辑由与功能逻辑相同的输入驱动。特别是,冗余核心逻辑与功能核心共享相同的缓存RAM和TCM。因此,只需要一套缓存RAM和TCM。冗余逻辑与核心锁步操作,但不会以任何方式直接影响处理器的行为。处理器输出到系统的其余部分以及核心输出到缓存RAM和TCM都由功能核心驱动。 在实现过程中,可以包括比较器逻辑来比较冗余逻辑和功能逻辑的输出。这些比较器可以检测出由于辐射或电路故障而发生在任一逻辑集上的单个故障。当与RAM错误检测方案一起使用时,可以保护系统免受故障。

如果您正在实现DCLS配置,请联系Arm获取更多信息。

Split-Lock

在分区锁定配置中,每个核心必须有两个或四个完整的冗余副本。下表显示了在锁定模式和分区模式下核心的使用情况。 在下表中:

  • N是物理核心的数量。
  • LOCK_N是锁定模式下使用的核心数量。
  • SPLIT_N是分区模式下使用的核心数量。

image-20240317213158236

在锁定模式下,高阶核心作为低阶核心的冗余副本。例如,如果N是4,只有低阶核心在逻辑上存在,即核心0和核心1。核心2和核心3是高阶核心,它们在逻辑上不存在,但作为冗余副本。 虽然存在,但属于高阶核心的输入和输出、缓存RAM和TCM是禁用的,并且在锁定模式下不得使用。

在分裂模式下,与选定的物理核心数量相关联的所有接口、缓存RAM和TCM都存在并启用,但无法进行冗余检查。

与DCLS类似,可以在锁定模式操作期间包括比较器逻辑来比较冗余逻辑和功能逻辑的输出。分裂模式操作禁用比较器逻辑。 对于分裂锁,必须设置一个新的输入信号CFGSLSPLIT,以确定是否配置了分裂模式或锁定模式。

如果选择了锁定模式,除了CFGSLSPLIT外,必须驱动所有的DCLS信号。如果选择了分裂模式,除了CFGSLSPLIT外,只必须驱动CLKINDCLS。有关DCLS信号的更多信息,请参阅Appx-A-589页的A.15 DCLS信号。如果你正在实现一个分区锁配置,请联系 Arm 以获取更多信息。

1.2 组件模块 Component blocks

下图显示了双核配置中处理器的主要组件块。

image-20240317213516912

1.2.1 Instruction Fetch 指令获取

预取单元 Prefetch Unit (PFU)从指令缓存、TCM或外部存储器中获取指令,预测指令流中分支的结果,并将指令传递给数据处理单元Data Processing Unit (DPU)进行处理。
PFU每周期从内存中取64位。
Cortex-R52 处理器中的指令取出总是小端的。
取出和解码阶段之间的指令队列将指令执行与指令取出解耦。这允许在取出阶段由于预测分支而刷新时继续执行指令。

Cortex-R52分支预测机制在流水线早期阶段检测分支。此外,它们立即将指令重定向到适当的地址,而不是等待分支到达流水线的末端。然而,并不是所有的分支都以这种方式预测。

Branch Target Address Cache 分支目标地址缓存

PFU包含一个16条目分支目标地址缓存Branch Target Address Cache (BTAC)来预测间接分支的目标地址(除了子例程返回)。BTAC实现在架构上是透明的,所以它不需要在上下文切换时刷新。

Branch predictor 分支预测

分支预测器是一个全局类型,它使用分支历史寄存器和一个2048条模式历史预测表。

Return stack 返回堆栈

PFU包含一个8条调用返回栈,以加速子例程调用的返回。对于每个子例程调用,返回地址被推送到硬件栈上。当一个子例程返回被识别时,返回栈中的地址被弹出,PFU将其用作预测的返回地址。返回栈在架构上是透明的,因此它不必在上下文切换时刷新。

Exception Target Address Cache 异常目标地址缓存

异常目标地址缓存Exception Target Address Cache (ETAC)是一种结构,用于通过缓存这些异常的通用处理程序的地址来减少IRQ和FIQ异常的最佳情况下的延迟。

ETAC在重置状态下启用。将1写入系统寄存器CPUACTLR.ETACDIS,禁用ETAC。

ETAC只支持中断Interrupt (IRQ)和快速中断Fast Interrupt (FIQ)向量项的缓存。

其他类型的异常不分配到ETAC中。这是因为对IRQ和FIQ异常的快速响应在实时系统中是至关重要的。

如果向量在TCM中,则向量只被缓存在ETAC中。位于任何其他类型的内存中的向量永远不会分配或命中ETAC。这是因为TCM是唯一具有完美响应的内存。其他内存可能会受到缓存失败的影响,在这些情况下,与缓存失败的延迟相比,ETAC提供的节省是最小的。

如果向量表中的指令是兼容指令,则ETAC只缓存与IRQ或FIQ异常对应的向量。兼容指令是所有B#immed的编码。如果异常向量不是一个兼容指令,则ETAC不会缓存该向量。这个IRQ和FIQ异常可以被带到异常级别EL1或EL2,这取决于中断时的异常级别以及HCR.IMO和HCR.FMO的值。

ETAC独立地支持IRQ和FIQ异常带到EL1和EL2,这意味着对于这些情况,有四个独立的条目。

1.2.2 高级SIMD和浮点支持 Advanced SIMD and floating-point support

每个核心支持的高级SIMD和浮点使用NEONTM技术,一种SIMD架构。

高级SIMD和浮点功能提供:

  • 单精度(C programming language float type)数据处理操作的指令。
  • 双精度(C double type)数据处理操作的可选指令。
  • 组合乘法和累加指令以提高精度(Fused MAC)。
  • 硬件支持转换,加法,减法,乘法,可选累加,除法和平方根。
  • 硬件支持超常量和所有IEEE标准754-2008四舍五入模式。
  • 对于单精度浮点,有32个32位单精度寄存器或16个64位双精度寄存器。
  • 如果包括双精度和高级SIMD的可选指令,则总共有32个64位双精度寄存器或16个128位寄存器可用。

1.2.3 GIC Distributor

GIC Distributor接收、优先级和路由物理中断到适当的中断目标。

GIC Distributor的输出是每个中断目标的最高优先级挂起的中断。中断目标要么是核心的 GIC CPU 接口,要么是连接到外部设备(如直接内存访问Direct Memory Access (DMA)控制器)的输出端口。

1.2.4 GIC CPU interface

GIC CPU接口处理每个核心的物理和虚拟中断的中断抢占。

每个GIC CPU接口的虚拟部分被分为hypervisor寄存器和guest OS寄存器。 hypervisor使用GIC CPU接口生成到guest OS的中断。

1.2.5 Memory system

Cortex-R52内存系统提供不同的内存和接口,这取决于你的实现。

为了在没有强烈实时要求的上下文中使用,每个Cortex-R52内核都有一个专用的128位AXIM接口,用于内存、指令和数据以及外设访问。

此外,为了在实时上下文中使用,每个Cortex-R52内核可以有:

  • 三个统一的TCM,每个8KB-1MB提供最低延迟访问指令和数据。
  • 可选,32位AXI4 LLPP接口设备数据访问专用外设。
  • 128位只读Flash接口。
  • ECC保护所有TCM和闪存提供SECDED保护。
  • TCM访问DMA通过AXIS接口。
  • TCM测试使用MBIST接口。

备注:实时上下文也能够访问AXIM,尽管这种访问可能不是理想的, 这取决于系统设计。

每个Cortex-R52内核都有可选的哈佛缓存,可以用来缓存来自Flash接口和AXIM接口的数据。缓存行为取决于内存属性。

每个内核有:

  • 存储缓冲区,用于存储合并和转发(适当)。
  • 4路指令缓存,4-32KB。 • 指令行填充缓冲区。
  • 4路数据缓存,4-32KB,具有写入行为。
  • 数据读取缓冲区。
  • 所有缓存内存(包括标签RAM)的ECC保护。
  • 64位数据路径用于加载和存储缓存。
  • 根据ARM架构进行缓存维护操作。
  • 使用MBIST接口进行缓存内存测试。

1.2.6 Memory management

内存保护单元 Memory Protection Unit (MPU)决定每个内存位置的属性,包括权限、类型和缓存能力。提供了两个可编程的MPU,分别由EL1和EL2控制。

访问权限决定允许访问一个位置的特权级别,以及是否允许写访问或指令执行。内存类型和缓存能力影响处理器处理特定访问的方式,例如,如果处理器允许将两个存储合并为单个写访问。这些属性及其含义由ARM架构定义。

1.2.7 Debug, trace, and test

处理器具有制造测试设施,处理器中的每个核心都具有侵入式调试和非侵入式调试功能,以支持软件调试。

侵入式调试功能包括硬件异常捕获、断点和观察点、通过调试通信通道的数据传输和单步调试。侵入式调试模式是自承载(或监视)调试和外部(或停止)调试。侵入式调试影响处理器的性能,尽管如果时间允许,您可以安排自承载调试。

非侵入式调试功能包括跟踪指令执行和跟踪数据传输。每个核心都有自己的ETM,允许所有核心在可用的跟踪带宽下同时跟踪。跟踪信息在ATB跟踪总线上导出,可以连接到CoreSight系统,用于组合跟踪源、缓冲和导出它们。

处理器包括PMU,可以生成和计数在核心中发生的事件,如缓存线填充、流水线停顿和ECC错误。这些事件也可以适当地导出供外部硬件使用。

制造测试包括MBIST。

1.3 Interfaces接口

Cortex-R52处理器具有几个外部接口。

1.3.1 Advanced Microcontroller Bus Architecture (AMBA) interfaces 高级微控制器总线体系结构接口

处理器实现了以下 AMBA 接口。

AXIM

Cortex-R52处理器的每个核心都具有一个128位AXIM接口,可高效地访问外部存储器和外设。

AXIS

Cortex-R52处理器中的每个核心都连接到一个共同的128位AXIS接口。这提供了对TCMs的外部访问。AXIS接口支持外部控制器与内部存储器之间的DMA访问。

Advanced Peripheral Bus (APB) Debug interface

AMBA APBv3接口用于调试目的。

LLPP

Cortex-R52处理器中的每个核心都有一个专用的32位LLPP主接口。这些端口旨在用于需要低延迟访问的私有外设。

1.3.2 Flash interface

Cortex-R52处理器中的每个核心都有一个专用的128位只读Flash主接口,可以用作AXI4接口。该接口旨在为连接到处理器上的闪存提供低延迟访问,使处理器能够从闪存ROM中执行实时任务并进行缓存。

1.3.3 Memory Reconstruction Port

Cortex-R52处理器的每个核心都提供了一个MRP来报告写入访问,以便重建内存映像。

每个核心的MRP接口的主要特点是:

  • MRP的跟踪信息是未压缩的。
  • MRP不包括任何过滤。

1.3.4 Interrupt interface

Cortex-R52处理器的中断接口具有一个可配置数量的共享外设中断Shared Peripheral Interrupts (SPI)输入端口,范围从32到960(以32的倍数增加),每个核心至少为32个。所有SPI都可以配置为上升沿触发或电平敏感主动高电平。

中断分配器还具有用于将中断路由到外部设备(如DMA引擎)的可选中断导出端口。

中断控制器通过与将中断路由到核心相同的方式选择此端口来路由SPI。中断控制器还提供了私有外设中断 Private Peripheral Interrupts (PPIs)和软件生成的中断 Software Generated Interrupts(SGIs),这些对于每个核心是私有的。其中一些PPI被公开作为主要输入信号。

1.3.5 MBIST interface

MBIST接口用于在生产测试期间测试RAM。

Cortex-R52处理器允许在正常执行期间使用MBIST接口测试RAM。这被称为在线MBIST。

现有的生产测试MBIST控制器不支持在线MBIST的要求,因此,有必要使用专门为此目的开发的PMC-R52。PMC-R52是Cortex-R52 RTL的一部分。它是一个集成选项,可能不会出现在每个实现中。

有关PMC-R52的更多信息,请参阅Appx-D-632页上的附录D PMC-R52。

有关MBIST接口和在线MBIST的更多信息,请联系您的实现团队。

1.3.6 Low Power Interface

The P-channel 接口用于向外部电源控制器传递电源状态信息。

1.4 Supported standards

该处理器符合或实现了Arm定义的各种规范。

1.4.1 Arm architecture

Cortex-R52处理器实现了Armv8-R AArch32架构。这包括:

  • 支持AArch32执行状态。
  • 支持异常级别,EL0,EL1和EL2。
  • 支持符合ANSI/IEEE Std 754-2008的浮点计算功能,IEEE二进制浮点运算标准。

参见Arm®架构参考手册补充Armv8,了解更多关于Armv8-R AArch32架构简介的信息。

1.4.2 AMBA

Cortex-R52处理器符合以下要求:

image-20240317220717344

1.4.3 Generic Interrupt Controller architecture

Cortex-R52处理器支持GIC架构版本3的一个子集。请参阅Arm®通用中断控制器架构规范,其中包括GIC架构版本3.0和4.0。

1.4.4 Generic Timer architecture

该处理器实现了Arm通用定时器架构。有关更多信息,请参阅《Arm®体系结构参考手册补充 Armv8,针对Armv8-R AArch32体系结构配置文件》。

1.4.5 Debug architecture

该处理器实现了符合CoreSight架构的Armv8-R AArch32调试架构。更多信息请参阅以下内容:

  • Arm® CoreSight™ Architecture Specification v2.0。

  • Arm® Architecture Reference Manual Supplement Armv8,适用于Armv8-R AArch32体系结构配置文件。

1.4.6 Embedded Trace Macrocell architecture

该处理器实现了ETMv4.2架构。请参阅Arm®嵌入式跟踪宏单元架构规范ETMv4。

1.5 Documentation

Cortex-R52处理器文档如下:

Technical Reference Manual

​ 技术参考手册(TRM)描述了处理器的功能和功能选项对其行为的影响。在设计流程的所有阶段都需要使用该手册。在设计流程的早期做出的选择可能意味着TRM中描述的某些行为与实际情况不相关。如果您正在编程处理器,还需从以下方面获取额外信息:

  • 从实施者处确定实现版本配置;

  • 从集成商处确定所使用设备的引脚配置。

Configuration and Sign-off Guide

《配置和签署指南Configuration and Sign-off Guide(CSG)》描述了以下内容:

  • 可用的构建配置选项及其选择相关问题。

  • 如何使用构建配置选项来配置寄存器传输级(RTL)源文件。

  • 如何集成RAM阵列。

  • 如何验证RTL。

  • 如何运行测试向量。

  • 考虑到平面布局的因素。

  • 签署已配置设计的流程。

Arm产品的交付成果包括参考脚本和有关如何使用它们来实施设计的信息。由Arm提供的参考方法流是示例参考实现。如果需要EDA工具支持,请联系您的EDA供应商。CSG是一本保密书,只对许可证持有人开放。

Integration Manual

集成手册 Integration Manual (IM)描述了如何将处理器集成到SoC中。它详细说明了集成者必须连接的信号,以配置宏单元进行所需的集成。一些实施选项可能会影响可用的集成选项。该IM是一本保密书籍,仅供许可证持有人使用。

Safety Manual安全手册

安全手册 safety Manual (SM)及其他相关文件详细描述了故障检测和控制功能的能力,开发过程以及使用假设,以支持集成具有定义的功能安全要求的处理器的产品开发。该安全手册是一本保密书籍,仅供许可证持有人使用。

1.6 Design process

Arm处理器以可综合RTL的形式交付。在该处理器能够用于产品之前,必须经过以下流程:

Implementation

实施者配置和综合RTL以生成一个硬宏单元。这可能包括将缓存RAM集成到设计中。

Integration

集成器将配置的设计连接到SoC。这包括将其连接到内存系统和外围设备。

Programming

这是最后一个步骤。系统程序员开发:

  • 用于配置Arm处理器的软件
  • 用于初始化Arm处理器的软件。
  • 应用软件和SoC测试。

每个过程:

  • 可以由不同的参与方执行。
  • 可以涉及做出配置选择,影响处理器的行为和功能。

最终设备的操作取决于:

Build configuration

实施者选择影响RTL源文件预处理的选项。这些选项通常包括或排除可能影响结果宏单元的面积、最大频率和功能的逻辑。

Configuration inputs

集成商通过将输入与特定值相连来配置处理器的某些功能。这些配置会影响在进行任何软件配置之前的启动行为,并且还可以限制软件可用的选项。

Software configuration

程序员通过将特定的值编程到寄存器中来配置处理器。这会影响处理器的行为。

以上是ARM R52架构的介绍,下节讲程序模型

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

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

相关文章

redis 常见的异常

目录 一、缓存穿透 1、概念 解决方案 (1)布隆过滤器 (2)、缓存空对象 二、缓存雪崩 1、概念 解决方案 (1)redis高可用 (2)限流降级 (3)数据预热 一、缓存穿透 1、概念 缓…

java----网络编程(一)

一.什么是网络编程 用户在浏览器中,打开在线视频网站,如优酷看视频,实质是通过网络,获取到网络上的一个视频资源。 与本地打开视频文件类似,只是视频文件这个资源的来源是网络。所谓网络资源就是网络中获取数据。而所…

sqlite 常见命令 表结构

在 SQLite 中,将表结构保存为 SQL 具有一定的便捷性和重要性,原因如下 便捷性: 备份和恢复:将表结构保存为 SQL 可以方便地进行备份。如果需要还原或迁移数据库,只需执行保存的 SQL 脚本,就可以重新创建表…

lv17 安防监控项目实战 3

代码目录 框架 our_storage 编译最终生成的目标文件obj 编译生成中间的.o文件 data_global.c 公共资源定义(使用在外extern即可)定义了锁定义了条件变量消息队列id、共享内存id、信号量id及key值发送短信、接收短信的号码向消息队列发送消息的函数&am…

Docker 哲学 - 容器操作 -cp

1、拷贝 容器绑定的 volume的 数据,到指定目录 2、匿名挂载 volume 只定义一个数据咋在容器内的path,docker自动生成一个 sha256 的key作为 volume 名字。这个 sha256 跟 commitID 一致都是唯一的所以 ,docker利用这个机制,可以…

Python二级备考(1)考纲+基础操作

考试大纲如下: 基本要求 考试内容 考试方式 比较希望能直接刷题,因为不懂的比较多可能会看视频。 基础操作刷题: 知乎大头计算机1-13题 import jieba txtinput() lsjieba.lcut(txt) print("{:.1f}".format(len(txt)/len(ls)…

【C语言】指针基础知识(一)

计算机上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中。 一,内存和地址 内存被分为一个个单元,一个内存单元的大小是一个字节。 内存单元的编号(可以理解为门…

【回溯专题】【蓝桥杯备考训练】:n-皇后问题、木棒、飞机降落【未完待续】

目录 1、n-皇后问题(回溯模板) 2、木棒(《算法竞赛进阶指南》、UVA307) 3、飞机降落(第十四届蓝桥杯省赛C B组) 1、n-皇后问题(回溯模板) n皇后问题是指将 n 个皇后放在 nn 的国…

vulhub中GitLab 远程命令执行漏洞复现(CVE-2021-22205)

GitLab是一款Ruby开发的Git项目管理平台。在11.9以后的GitLab中,因为使用了图片处理工具ExifTool而受到漏洞CVE-2021-22204的影响,攻击者可以通过一个未授权的接口上传一张恶意构造的图片,进而在GitLab服务器上执行任意命令。 环境启动后&am…

dp入门:从暴力dfs到dp

本篇为小金鱼大佬视频的学习笔记,原视频链接:https://www.bilibili.com/video/BV1r84y1379W?vd_source726e10ea5b787a300ceada715f64b4bf 基础概念 暴力dfs很多时候仅能过部分测试点,要想将其优化,一般以 dfs -> 记忆化搜索 …

NetSuite多脚本性能研究

在项目中,随着复杂度的提升,客制脚本以及各类SuiteAPP的应用,导致某个对象上挂载的脚本大量增加,最终导致了性能问题。表现在保存单据时时间过长,严重影响人机界面的用户感受。基于此问题,我们开展了NetSui…

谷歌(edge)浏览器过滤,只查看后端发送的请求

打开F12 调试工具 选择Network 这是我们会发现 什么图片 文件 接口的请求很多很多,我们只需要查看我们后端发送的请求是否成功就好了 正常情况我们需要的都是只看接口 先点击这里这个 过滤 我们只需要点击 Fetch/XHR 即可过滤掉其他请求信息的展示 这样烦恼的问题就…

GAN及其衍生网络中生成器和判别器常见的十大激活函数(2024最新整理)

目录 1. Sigmoid 激活函数 2. Tanh 激活函数 3. ReLU 激活函数 4. LeakyReLU 激活函数 5. ELU 激活函数 6. SELU 激活函数 7. GELU 激活函数 8. SoftPlus 激活函数 9. Swish 激活函数 10. Mish 激活函数 激活函数(activation function)的作用是对网络提取到的特征信…

【算法与数据结构】堆排序TOP-K问题

文章目录 📝堆排序🌠 TOP-K问题🌠造数据🌉topk找最大 🚩总结 📝堆排序 堆排序即利用堆的思想来进行排序,总共分为两个步骤: 建堆 升序:建大堆 降序:建小堆利…

uni-popup(实现自定义弹窗提示、交互)

一般提示框的样式,一般由设计稿而定,如果用uniapp的showmodel,那个并不能满足我们需要的自定义样式,所以最好的方式是我们自己封装一个!(想什么样就什么样)! 一、页面效果 二、使用…

unity学习(61)——hierarchy和scene的全新认识+模型+皮肤+动画controller

刚刚开始,但又结束的感觉? 1.对hierarchy和scene中的内容有了全新的认识 一定要清楚自己写过几个scene;每个scene之间如何跳转;build setting是add当前的scene。 2.此时的相机需要与模型同级,不能在把模型放在相机下…

VScode(8)之阅读大型CC++工程

VScode(8)之阅读大型CC工程(Linux内核)代码 Author:Once Day Date:2023年4月25日/2024年3月17日 漫漫长路,有人对你微笑过嘛… 全系列文章请查看专栏: VScode开发_Once-Day的博客-CSDN博客 参考文档: 1. 历史包袱 由于上世纪70-80年代的…

Spring Web MVC入门(3)

学习Spring MVC 请求 传递JSON数据 JSON概念 JSON: JavaScript Object Natation JSON是一种轻量的数据交互格式, 采用完全独立于编程语言的文本格式来存储和标识数据. 简单来说, JSON是一种数据格式, 有自己的格式和语法, 使用文本来表示对象或数组的信息, 因此JSON的本质…

Linux网络基础2

目录 实现网络版本计算器 自己定协议实现用json协议实现 重谈OSI七层模型HTTP协议 域名介绍url介绍HTTP请求和响应 实现一个简易的HTTP服务器 实现简易Http服务器初级版实现简易Http服务器中级版 实现一个简易的HTTP服务器最终版 请求方法HTTP状态码HTTP常见的Header 实现网…

The Rise and Potential of Large Language Model Based Agents: A Survey

OpenAI AI的应用研究主管Lilian Weng发布了关于AI Agents的《大语言模型(LLM)支持的自主代理》,在文章中她定义了基于LLM构建AI Agents的应用框架:AgentLLM(大型语言模型)记忆(Memory&#xff0…