ARM Cortex R52内核 01 概述

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架构的介绍,下节讲程序模型

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CCD视觉检测:揭开未来质量检测新篇章——康耐德智能

随着科技的不断进步,传统的人工检测方式已经无法满足现代工业生产对效率和精度的双重需求。而CCD视觉检测技术的出现,正为我们提供了一种全新的解决方案。那么,什么是CCD视觉检测?它又能为我们检测哪些方面的内容呢?今…

爬虫UnicodeEncodeError错误解决

代码演示: import requests # 程序入口 if __name__ __main__:# 1.确定哦urlurl_ https://www.baidu.com/ # 以字符串的形式呈现# 2.发送网络请求response_ requests.get(url_)# 保存with open(baidu.html, w) as f:f.write(response_.text)这里会出现报错&…

微调大型语言模型进行命名实体识别

大型语言模型的目标是理解和生成与人类语言类似的文本。它们经过大规模的训练,能够对输入的文本进行分析,并生成符合语法和语境的回复。这种模型可以用于各种任务,包括问答系统、对话机器人、文本生成、翻译等。 命名实体识别(Na…

Vue 3响应式系统详解:ref、toRefs、reactive及更多

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

图解Kafka架构学习笔记(一)

本文参考尚硅谷大数据技术之Kafka。 消息队列 (1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息…

【JS】html字符转义

需求 将html转为字符串将html字符串转义&#xff0c;比如<div>转为<div> 码 /*** html标签字符转义* param {Stirng} str 要转换的html字符* returns String 返回转义的html字符串*/ const elToStr str > str.replaceAll(<, <).replaceAll(>, >)…

sadtalker-api/

———— 下载sadtalker工程文件&#xff0c;包括844个模型 。。。。。。。。。。。。。。。。 配置环境&#xff1a; pip源&#xff0c;设置&#xff1a; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple anaconda prompt, 进入命令行 how在 …

8-图像缩放

其实&#xff0c;就是开辟一个zoomwidth&#xff0c;zoomheight的内存&#xff0c;再分别赋值即可。 void CDib::Scale(float xZoom, float yZoom) { //指向原图像指针 LPBYTE p_data GetData(); //指向原像素的指针 LPBYTE lpSrc; //指向缩放图像对应像素的指针 LPBYTE lpDs…

【Flink SQL】Flink SQL 基础概念(四):SQL 的时间属性

《Flink SQL 基础概念》系列&#xff0c;共包含以下 5 篇文章&#xff1a; Flink SQL 基础概念&#xff08;一&#xff09;&#xff1a;SQL & Table 运行环境、基本概念及常用 APIFlink SQL 基础概念&#xff08;二&#xff09;&#xff1a;数据类型Flink SQL 基础概念&am…

算法练习:前缀和

目录 1. 一维前缀和2. 二维前缀和3. 寻找数组中心下标4. 除自身以外数组的乘积5. !和为k的子数字6. !和可被k整除的子数组7. !连续数组8. 矩阵区域和 1. 一维前缀和 题目信息&#xff1a; 题目链接&#xff1a; 一维前缀和思路&#xff1a;求前缀和数组&#xff0c;sum dp[r] …

R语言:microeco:一个用于微生物群落生态学数据挖掘的R包,第六:trans_nullmodel class

近几十年来&#xff0c;系统发育分析和零模型的整合通过增加系统发育维度&#xff0c;更有力地促进了生态位和中性影响对群落聚集的推断。trans_nullmodel类提供了一个封装&#xff0c;包括系统发育信号、beta平均成对系统发育距离(betaMPD)、beta平均最近分类单元距离(betaMNT…

解决后端传给前端的日期问题

解决方式&#xff1a; 1). 方式一 在属性上加上注解&#xff0c;对日期进行格式化 但这种方式&#xff0c;需要在每个时间属性上都要加上该注解&#xff0c;使用较麻烦&#xff0c;不能全局处理。 2). 方式二&#xff08;推荐 ) 在WebMvcConfiguration中扩展SpringMVC的消息转…

专业120+总400+北京理工大学826信号处理导论考研经验北理工电子信息与通信工程,真题,大纲,参考书。

**今年专业课826信号处理导论&#xff08;信号系统和数字信号处理&#xff09;120&#xff0c;总分400&#xff0c;应群里同学需要&#xff0c;自己总结一下去年的复习经历&#xff0c;希望对大家复习有帮助。**专业课&#xff1a; 北京理工大学专业826是两门合一&#xff0c;…

Flutter开发进阶之使用工具效率开发

Flutter开发进阶之使用工具效率开发 软件开发团队使用Flutter开发的原因通常是因为Flutter开发性能高、效率高、兼容性好、可拓展性高&#xff0c;作为软件PM来说主要考虑的是范围管理、进度管理、成本管理、资源管理、质量管理、风险管理和沟通管理等&#xff0c;可以看到Flu…

微信小程序调用百度智能云API(菜品识别)

一、注册后生成应用列表创建应用 二、找到当前所需使用的api菜品识别文档 三、点链接看实例代码 这里需要使用到如下几个参数&#xff08;如下&#xff09;&#xff0c;其他的参数可以不管 client_id &#xff1a; 就是创建应用后的API Keyclient_secret&#xff1a; 就是创建…

Vue mqtt 附在线mqtt客户端地址 + 完整示例

mqtt&#xff1a;轻量级物联网消息推送协议。 目录 一、介绍 1、官方文档 1&#xff09;npm网 2) 中文网 MQTT中文网_MQTT 物联网接入平台-MQTT.CN 2、官方示例 二、准备工作 1、安装依赖包 2、示例版本 三、使用步骤 1、在单页面引入 mqtt 四、完整示例 tips 一、介…

正则表达式与re模块

目录 正则表达式 简介 语法&#xff1a; 常用元字符&#xff1a; 量词: 贪婪匹配和惰性匹配&#xff1a; re模块 简介&#xff1a; 常用的几个模块&#xff1a; 1.findall 2.search 3.finditer 4.compile 案例展示&#xff1a; 需求&#xff1a; 思路分析&#…

《论文阅读》E-CORE:情感相关性增强的移情对话生成 EMNLP 2023

《论文阅读》E-CORE:情感相关性增强的移情对话生成 EMNLP 2023 前言摘要模型架构图构建边的构建和初始化节点的初始化图更新情感相关性加强解码损失函数总结前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来…

IDEA 多个git仓库项目放一个窗口

1、多个项目先通过新建module或者CtrlAltShiftS 添加module引入 2、重点是右下角有时候git 分支视图只有一个module的Repositories。这时候需要去设置把多个git仓库添加到同一个窗口才能方便提交代码。 3、如果Directory Mappings已经有相关项目配置&#xff0c;但是灰色的&…

浅谈JPA框架

JPA 前言概述ORM 映射元数据JPQLJPA API附Spring Data JPA 前言 了解 JPA 框架对后续使用 Spring Boot 是有很大帮助的&#xff0c;下面简单介绍 JPA 框架的基础知识。 概述 JPA&#xff08; Java 对象持久化 API &#xff0c;Java Persistence API &#xff09;&#xff0c…