Cortex-M85

Helium指令集

这里介绍的是Helium的汇编语言指令集,虽然大部分程序员不会直接使用这些指令,而是通过C语言或者高级语言编程实现,但是了解汇编语言指令集,可以有如下收获:

  • 在优化C代码时,为了确定其是否被充分地矢量化,能够审视编译器的输出以及熟悉指令集是非常有帮助的。

  • 当调试不能正常工作的代码时,通过阅读反汇编代码去理解每一行发生了什么,对于寻找代码的问题是非常有用的。

  • 了解指令集可能有助于编写高效的代码,甚至节省功耗,尤其是在使用原语函数的情况下。

Helium指令结构和其他Cortex-M处理器中的VFP(浮点)指令结构是相似的。

Helium指令格式如下:

1.png

Helium指令都是以字母V开始的,然后跟着如下符号,符合中的{}是可选的,<>是必须出现的:

  • mod:指令修饰符,可能没有,也可能是Q(saturating)饱和,H(halving)减半,D(doubling)加倍,R(rounding)四舍五入中的一个。

  • op:具体操作,例如ADD(相加),SUB(相减),CMP(比较)等。

  • shape:有些指令中,可以选择性的指定L(long)或N(narrow),这是 “形态” 相关的修饰符。

  • - L:Long表示输入元素在操作前会被扩宽。1个8位的元素可能会被扩宽为16位或32位,或者1个16位元素被扩宽为32位。

  • - N:Narrow表示输入元素在操作前会被压缩。

  • extra:有些指令中的特定修饰符,可能是T(top),B(bottom),A(accumulate),X(exchange)或者V(across)中的一个。

  • cond:此处指定的条件仅适用于VPT(Predication)模块。可能是T(Then)或者E(Else)。

  • .dt:数据类型,可能是F(float)浮点,I(integer)整数,S(signed)有符号,U(unsigned)无符号。

  • dst:目标寄存器,可以是通用寄存器(R)或者矢量寄存器(Q)。

  • src:源寄存器,可以是通用寄存器(R)或者矢量寄存器(Q)。

  • rot:旋转,用于一些操作复数的指令。

下面给出一条指令示例展示:

VLDRW.U32 Q0, [R0] 

2.png

该指令中的首字母是V,表示这是一条Helium(或是Neon,或者浮点)指令,LDR表示寄存器从内存加载内容,W表示按字大小操作,<mod>,<shape>,<extra>都为空,数据类型是U32,无符号32位整数。加载的目标是128位寄存器Q0(矢量寄存器),源是标量寄存器R0指向的内存地址。该指令表示将从R0存储的地址中加载4个32位宽的数据到Q0寄存器中。

Helium指令分类如下:

3.png

Helium编程方式

Helium编程方式目前来说,一共4种。

  • 矢量库

  • 自动矢量化

  • 原语函数(intrinsics)编程

  • 汇编指令编程

矢量库

目前,ARM CMSIS DSP和NN是已经对Helium优化好的Helium矢量库。使用矢量库来进行Helium编程,是最简单的方法。

  • CMSIS DSP是数字信号处理函数库,具有针对8位整数,16位整数,32位整数和32位浮点数的不同函数,提供了丰富的函数,包括基本数学函数,复数数学函数,滤波器函数,变换函数,矩阵操作函数,电机控制函数,插值函数,统计函数等。该库包含了这些函数的Helium优化版本,并不断更新迭代中。

  • CMSIS NN是神经网络函数库,以最小的内存开销针对Cortex-M处理器优化的软件内核,同样地,这些函数也可以利用Helium得到最优性能。

CMSIS矢量库中的函数代码有3个C预处理器定义来选择Helium版本。

#define ARM_MATH_HELIUM
#define ARM_MATH_MVEI       //支持整型Helium
#define ARM_MATH_MVEF       //支持浮点型Helium

比如CMSIS DSP中的 arm_clip_f32函数,可以看到该函数已经使用了Helium原语函数。

4.png

比如CMSIS NN中的arm_nn_lstm_update_cell_state_s16函数,可以看到该函数使用了Helium原语函数。

5.png

当使用矢量库的时候,不同编译器中的MVE设置

Keil MDK 5(5.38以上版本)

在图标“Options for target”中选择“Target”页面中的“Vector Extensions”,通过下拉列表选择

  • “Not Used”(不使用helium,即宏ARM_MATH_HELIUM没有被定义,使用标量相关函数)。

  • “Integer”(宏ARM_MATH_HELIUM和ARM_MATH_MVEI被定义,使用整型Helium)。

  • “Integer + Floating Point” (宏ARM_MATH_HELIUM,ARM_MATH_MVEI和ARM_MATH_MVEF被定义,使用整型和浮点型Helium)。

6.png

IAR EWARM(v9.40.1以上版本)

通过右键选择项目名称后,在 “Options”中的“General Options”页面下的“32-bit”中的“Advanced SIMD(NEON/HELIUM)”。

  • 勾选(即选中,ARM_MATH_HELIUM,ARM_MATH_MVEI和ARM_MATH_MVEF被定义,使用整型和浮点型Helium)。

  • 不勾选(即不选中),编译的时候会报“MVE support not enable”错误。

e2 studio

e2 studio中可以使用LLVM或者GCC工具链,在使用矢量库的时候,不需要设置,默认是启用的。如果通过设置编译参数来禁用,编译的时候会报“MVE support not enable”错误。

自动矢量化

自动矢量化就是编译器在C/C++代码中自动检测到可以使用Helium指令并执行优化的过程。优化后的代码在速度和尺寸方面可能与手工优化的汇编代码或包含原语函数的C代码一样高效,这只需要很少的时间去编写和调试代码,而且无须对目标微架构有详细了解。C代码也更有可移植性。

如下面的代码,这是一种很常见的普通写法,一个for循环里面做一些逻辑判断处理。

7.png

通过使用自动矢量化后的反汇编代码如下,红色框部分的代码里面已经出现了Helium的汇编指令。

8.png

自动矢量化和编译器的优化等级设置有关,当Arm Complier 6和LLVM编译器的优化等级为-O2或者更高时,自动矢量化默认使能,在MDK Arm Complier 6中可以使用“-fno-vectorize”选项可以禁止自动矢量化。当优化等级为-O1时,自动矢量化默认禁止,使用“-fvectorize”选项可以使能自动矢量化,当优化等级为-O0时,自动矢量化总是被禁止。其他编译器的行为可能不同,具体可以查阅对应的文档。

原语函数(intrinsics)编程

原语函数是允许利用Helium而不必直接编写汇编代码的一组C/C++函数。ACLE文档中包括Helium原语规范。目前最新的文档为mve-2021Q4。原语函数的实现包含在arm_mve.h文件中。函数包含简短的汇编语言部分,它们被内联到调用的代码中。

ACLE文档

https://github.com/ARM-software/acle/releases/tag/r2023Q2 

使用原语函数有如下优点:

  • 程序员能够直接访问Helium指令集,这允许编写充分优化的代码,利用所有Helium特性。

  • C/C++可用于大多数代码,只有当需要优化而矢量化C编译器无法执行优化时,才会使用Helium原语。这就意味着只有在必要时才使用底层代码。

  • 相比于采用汇编语言编写的代码,含有Helium原语的C和C++代码可以移植到一个新的平台,仅需要少量修改,甚至无须修改。

  • 使用原语避免了很多与直接使用汇编语言编码相关的难点。

完整的指令列表详见:

https://developer.arm.com/architectures/instruction-sets/intrinsics/ 

原语函数中,Helium矢量数据类型名字模式如下所示,这在“arm_mve.h”中有详细定义和描述。

<type><size>x<number_of_lanes>_t

  • type:元素类型,可能是int整形,uint无符号整形,float浮点。

  • size:元素大小,可能是8位,16位,32位。

  • number_of_lanes:通道总数。可以是16通道,8通道,或者4通道。

如:

uint8x16_t是一个描述16个无符号8位的矢量。

int16x8_t是一个描述8个16位的矢量。

float16x8_t是一个描述4个16位浮点数(半精度)的矢量。

float32x4_t是一个描述4个32位浮点数(单精度)的矢量。

注:Helium是128位寄存器,它的元素大小和通道总数相乘的结果只能是128,不能是64,也就是说,不支持int8x8_t/uint8x8_t/int16x4_t/uint16x4_t/float16x4_t/float32x2_t数据类型。这点和Neon是不同的。Neno可以支持64和128。

Helium矢量数组结构体类型如下:

<type><size>x<numbe_of_lanes>x<length_of_array>_t

可以发现,矢量数组结构体名字只比单个矢量数据类型多了一个length_of_array。它表示一共有几个helium寄存器组成,即helium寄存器的数量。在该结构体中,包含一个名为val的元素,此结构体类型映射Helium加载和存储操作访问的寄存器,Helium可以用一条指令加载/存储多达4个寄存器。结构定义示例如下:

struct int16x8x2_t

{

int16x8_t val[2];

};

此结构类型仅由加载、存储、转置、交织和去交织指令使用;要对实际数据执行操作,请从各个寄存器中选择元素。如:<var_name>.val[0] 和<var_name>.val[1]。

下图代码片段是使用原语函数进行矢量相乘的例子。

9.png

原语编程里面还涉及原语预测,原语尾部处理等知识,本处不在展开说明,详细信息可以访问arm官网查阅相关文档了解和学习。

汇编语言编程

在汇编代码中直接编写Helium指令是很没有必要的,通常只会在特殊的场景下才会这样做。即当编程人员可以比编译器更好地分配寄存器时,比如有太多重写变量和输入输出变量。

下图所示为复数矢量点积的汇编语言代码。

10.png

相关链接:RA8 Cortex-M85 Helium入门指南(1)

来源:瑞萨嵌入式小百科

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 49

瑞萨电子在2023年10月底推出强大的RA8系列MCU,具备突破性的3000 CoreMark,并可满足客户应用所需的完全确定性、低延迟及实时操作要求。RA8系列MCU同时也是业界首款采用Arm® Cortex®-M85处理器的产品,能够提供卓越的6.39 CoreMark/MHz性能——这一性能水平将使系统设计人员能够使用RA MCU替代应用中常用的微处理器(MPU)。全新系列产品是广受欢迎的基于Arm Cortex-M处理器的RA产品家族中的一员。此外,为其它RA产品构建的现有设计可以轻松移植到新型RA8 MCU上。

新型RA8系列MCU部署了Arm Helium™技术,即Arm的M型矢量扩展单元(M-profile Vector Extension——MVE)。MVE是ARM v8.1M架构中非常重要的一部分。目前ARM v8.1M架构下的内核包括Cortex®-M52、Cortex®-M55、Cortex®-M85三种。下面的表格Arm Cortex-M Processor Comparison Table详细展示了从Arm®v6到Arm®v8.1M内核之间的不同。可以容易地发现,Cortex®-M85是目前性能最强的Arm® Cortex®-M内核MCU。

1.jpg

您可点击链接打开获取该表格原文:

Arm Cortex-M Processor Comparison Table

https://armkeil.blob.core.windows.net/developer/Files/pdf/product-brief/arm-cortex-m-processor-comparison-table.pdf 

Arm v8.1-M架构是Arm v8-M架构的扩展版本。除了新的矢量指令集架构(Helium)以外,还有几个其他新特性:

  • 循环和分支增强的附加指令集(低开销分支扩展,Low Overhead Branch Extension)。

  • 支持半精度浮点指令。

  • 调试功能增强,包括性能监测单元(Performance Monitoring Unit,PMU)和针对信号处理应用程序开发的调试附加功能支持。

  • 用于FPU的TrustZone管理增强指令集。

  • 非特权调试扩展。

  • 内存保护单元(Memory Protection Unit,MPU)提供了一个新的内存属性,即“特权模式下永不执行”(Privileged eXecute Never,PXN)的属性。这允许当CPU处于特权模式下时阻止执行任意代码,而这些代码可能已经写入了用户空间。这是一个重要的安全特性。

  • 可靠性、可用性及可维护性(Reliability,Availability and Serviceability,RAS)扩展。

引入Helium是为了在Cortex®-M内核MCU上实现更高效的DSP类和机器学习操作。它和Cortex®-A内核MPU中Neon有很多相似之处。Neon和Helium都使用FPU中的寄存器作为矢量寄存器。两者都使用128位向量,并且许多向量处理指令对于两种体系结构都是通用的。然而,Helium是一种全新的设计,可在小型处理器中实现高效的信号处理性能。它为嵌入式用例提供了许多新的架构功能,因为它针对面积(成本)和功耗进行了优化,为M-Profile架构带来了类似Neon的功能(Cortex-A的SIMD注指令)。Helium经过优化,可有效利用较小Cortex-M内核中的所有可用硬件。下表详细给出了Helium和Neon之间的对比信息。

Helium与Neon对比表

2.jpg

注:SIMD(Single Instruction Multiple Data)即单指令多数据,表示在该硬件中的多个处理单元中可以同时对多个数据项执行相同的操作,也就是说,CPU可以同时执行并行计算,但只有一个指令正在执行。这是数据级的并行。

目前有许多系统将Cortex-M处理器和专用可编程的DSP处理器结合来使用。Helium允许这样的系统只用一个处理器来实现。这样做有如下优点:

  • 从软件开发的角度来看,它允许使用单个工具链,而不是分别对CPU和DSP使用各自的编译器和调试器。这就意味着程序员只需要熟悉一种架构。

  • 消除了对处理器间通信的需求,这点可能非常重要,因为要对实时交互的两个运行时处理器中的不同软件进行调试既困难也耗时。

  • Cortex-M系列的CPU相比专用DSP而言,更易于编程。

  • 在硬件设计层面,使用一个处理器(而不是两个处理器)可以简化系统,从而减少芯片面积和成本,并缩短开发周期。

在详细介绍Helium之前,我们现在来聊聊标量和矢量的概念。

数学和物理世界中的观点

标量是一个只要大小的量

- 比如纯数字,质量,速率,温度,体积等

矢量是一个有大小而且有方向的量

- 比如速度,加速度,位移,重力,摩擦力等

计算机科学世界中的观点

标量(处理器)是一次性处理一个数据元素的处理器。

- 通常用来处理通用的计算任务,如文字处理和电子表格。

- 功耗低,价格便宜。

矢量(处理器)是一次性对多组数据(每组一般为两个数据)成批地进行同样的运算,得到一批结果的处理器。如一次将100个加数与100个被加数相加,同时得到100个和的运算。

- 对于图像,视频,音频数据处理等需要并行处理大量数据的任务特别有用。

- 也可用于科学计算,加速复杂算法的处理。

- 功耗高,价格稍高。

Helium寄存器、数据类型和通道

Helium寄存器是128位的,一共有8个Helium寄存器,寄存器数量不可修改。它和浮点单元(FPU)共同使用。在FPU中使用S0~S31来访问32个单精度(32位)寄存器,同样的硬件寄存器也可看做16个双精度(64位)寄存器D0~D15。例如,D0和S0、S1共用64位相同的硬件寄存器。在Helium架构中,Helium使用8个矢量寄存器Q0~Q7。这就意味着,Helium寄存器Q0和S0~S3、D0~D1浮点寄存器使用相同的物理寄存器,Q1和S4~S7、D2~D3浮点寄存器使用相同的物理寄存器,其他Helium寄存器以此类推。因为Helium寄存器重用了标量FPU寄存器,所以当发生异常时无须使用额外的资源去保存和恢复这些寄存器(同样不影响中断延迟)。

3.png

每个Helium寄存器都可以划分为8位,16位,32位宽的通道。每个通道可以被一条指令看作:

  • 整型数值(8/16/32位宽)

  • 定点饱和值(Q7/Q15/Q31)

  • 浮点数值(半精度FP16/单精度FP32)

4.png

下图是一个矢量寄存器相加的示例。Helium寄存器q5和q0都是8个int16的元素数据(8个通道),将他们相加的结果存在q0中。

5.png

Helium允许矢量中的每个通道有条件地执行,这称作通道预测。矢量预测状态和控制寄存器(VPR)保存每个通道的条件值。某些矢量指令(比如矢量比较VCMP)可以改变VPR中的条件值,当这些条件值被设置好以后,接下来就可以使用VPT(矢量条件预测)指令,以每个通道为基础在矢量预测中实现条件执行。

来源:瑞萨嵌入式小百科

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 184
  • RA8系列产品具备业界卓越的6.39 CoreMark/MHz测试分数,缩小了MCUMPU之间的性能差距

  • 包含Arm Helium技术,可提升DSPAI/ML性能

  • 卓越的安全性:高级加密加速、不可变存储、安全启动、TrustZone、篡改保护

  • 低电压和低功耗模式,节省能耗

  • 多款“成功产品组合”为您设计提速

  • RA8M1产品群对应软件及硬件开发套件现已上市

全球半导体解决方案供应商瑞萨电子(TSE:6723)今日宣布推出强大的RA8系列MCU,具备突破性的3000 CoreMark,并可满足客户应用所需的完全确定性、低延迟及实时操作要求。RA8系列MCU同时也是业界首款采用Arm® Cortex®-M85处理器的产品,能够提供卓越的6.39 CoreMark/MHz(注)性能——这一性能水平将使系统设计人员能够使用RA MCU替代应用中常用的微处理器(MPU)。全新系列产品是广受欢迎的基于Arm Cortex-M 处理器的RA产品家族中的一员。此外,为其它RA产品构建的现有设计可以轻松移植到新型RA8 MCU上。

1.jpg

业界首款搭载Arm Cortex -M85内核超高性能MCU

2.jpg

瑞萨RA系列MCU产品阵容

Helium技术打造卓越AI性能

新型RA8系列MCU部署了Arm Helium™技术,即Arm的M型向量扩展单元。相比基于Arm Cortex-M7处理器的MCU,该技术可将实现数字信号处理器(DSP)和机器学习(ML)的性能提高4倍。这一性能提升可使客户在其系统中为某些应用消除额外的DSP。瑞萨在2023Embedded World展会上演示了Helium技术带来的性能提升并展示了其首款芯片。瑞萨作为边缘和终端AI领域的佼佼者,为汽车、工业和商业产品中的高级应用带来基于Reality AI Tools的各种嵌入式AITinyML解决方案,以及广泛的嵌入式处理与物联网产品组合。新的RA8系列MCU利用Helium加速神经网络处理,使边缘和终端设备可在语音AI中部署自然语言处理以及实现预测性维护应用等。

Roger Wendelken, Senior Vice President and Head of the MCU Business at Renesas表示:“我们非常自豪地推出配备强大Arm Cortex-M85处理器的全新RA8系列。作为全球MCU卓越供应商,我们的客户期待瑞萨提供理想的性能和功能。同时依靠我们的协助,把握新趋势并应对技术挑战。RA8系列为MCU的性能和功能设定了新的标准,并将简化AI在大量新应用中的实施。”

Paul Williamson, Senior Vice President and general manager, IoT Line of Business, Arm表示:AI的出现增加了对边缘和终端智能的需求,以服务于包括工业自动化、智能家居和医疗在内不同市场的新应用。瑞萨的新型MCU基于Arm迄今为止性能最高、最安全的Cortex-M处理器构建,专门针对信号处理和ML工作负载进行了优化,对于希望在嵌入式和物联网领域把握不断增长的AI机遇且兼顾安全性的创新者来说,其将改变游戏规则。”

领先的安全特性

除了卓越的性能,RA8系列MCU还实现了优秀的安全性。Cortex-M85内核包含Arm TrustZone®技术,可实现存储器、外设和代码的隔离与安全/非安全分区。RA8系列MCU引入了最先进的瑞萨安全IP(RSIP-E51A),提供前沿加密加速器并支持真正的安全启动。其它高阶安全功能还包括:用于强大硬件信任根(Root-of-Trust)的不可变存储、具有即时解密(DOTF)功能的八线OSPI、安全认证调试、安全工厂编程和篡改保护。通过与Arm TrustZone配合使用,可实现全面、完全集成的安全元件功能。Armv8.1-M架构引入了指针验证和分支目标识别(PACBTI)安全扩展,可缓解针对内存安全违规和内存损坏的软件攻击。RA8系列还通过了PSA认证2 + 安全元件SE、NIST CAVP和FIPS 140-3认证。

低功耗特性

RA8系列产品集成了新的低功耗特性和多种低功耗模式,在实现业界卓越性能的同时增强了能效。低功耗模式、独立电源域、较低的电压范围、快速唤醒时间,以及较低典型工作与待机电流的组合降低了系统总体功耗,使客户能够满足法规要求。新的Arm Cortex-M85内核还能以更低的功耗执行各种DSP/ML任务。

RA8M1产品群现已供货

瑞萨已开始批量出货RA8系列首批产品——RA8M1产品群。RA8M1产品群MCU作为通用器件,可满足工业自动化、家电、智能家居、消费电子、楼宇/家庭自动化、医疗和AI领域的各种计算密集型应用,如指纹扫描仪、恒温器、PLC、智能电表和家庭集线器等。

RA8M1系列MCU的关键特性

  • 内核:480 MHz Arm Cortex-M85,包含Helium和TrustZone技术

  • 存储:集成2MB/1MB闪存和1MB SRAM(包括TCM,512KB ECC保护)

  • 外设:兼容xSPI的八线OSPI(带XIP和即时解密/DOTF)、CAN-FD、以太网、USBFS/HS、16位摄像头接口和I3C等

  • 高阶安全性:卓越的加密算法、TrustZone、不可变存储、带DPA/SPA攻击保护的防篡改功能、安全调试、安全工厂编程和生命周期管理支持

  • 封装:100/144/176 LQFP、224 BGA

新型RA8M1产品群MCU由瑞萨灵活配置软件包(FSP)提供支持。FSP提供所需的所有基础架构软件,包括多个RTOS、BSP、外设驱动程序、中间件、连接、网络和安全堆栈,以及用于构建复杂AI、电机控制和云解决方案的参考软件,从而加快应用开发速度。它允许客户将自己的既有代码和所选的RTOS与FSP集成,为应用开发带来充分的灵活性;借助FSP,可轻松将现有设计迁移至新的RA8系列产品。

许多客户已经选用RA8M1系列MCU进行设计。例如,业界领先的生物识别解决方案提供商Mantra Softech就在一款新型、复杂的指纹扫描仪中采用了该产品。Mr. Hiren Bhandari, Technical Director at Mantra表示:“我们对RA8M1 MCU的功能和效率感到非常满意。高性能与Helium技术的结合让我们能够将AI功能集成到这一解决方案中,为我们构建了独特的市场优势。此外,摄像头接口和大容量内存使我们能够简化设计。”

成功产品组合

瑞萨将全新RA8M1产品群MCU与其产品组合中的众多兼容器件相结合,创建了广泛的“成功产品组合”,包括智能扫地机器人智能眼镜。这些“成功产品组合”基于相互兼容且可无缝协作的器件,具备经技术验证的系统架构,带来优化的低风险设计,以加快产品上市速度。瑞萨现已基于其产品阵容中的各类产品,推出超过400款“成功产品组合”,使客户能够加速设计过程,更快地将产品推向市场。更多信息,请访问:renesas.com/win

供货信息

RA8M1产品群MCU和FSP软件现已上市。瑞萨还提供RA8M1产品群评估套件(RTK7EKA8M1S00001BE)。多个Renesas Ready合作伙伴也为RA8M1 MCU带来量产级解决方案。瑞萨期待更多合作伙伴移植其软件解决方案,以充分利用Cortex-M85内核和Helium技术。

更多产品相关信息,请访问:www.renesas.com/RA8M1。样品和套件可在瑞萨网站或通过分销商订购。

瑞萨MCU优势

作为全球卓越的MCU产品供应商,瑞萨电子的MCU近年来的平均年出货量超35亿颗,其中约50%用于汽车领域,其余则用于工业、物联网以及数据中心和通信基础设施等领域。瑞萨电子拥有广泛的8位、16位和32位产品组合,是业界优秀的16位及32位MCU供应商,所提供的产品具有出色的质量和效率,且性能卓越。同时,作为一家值得信赖的供应商,瑞萨电子拥有数十年的MCU设计经验,并以双源生产模式、业界先进的MCU工艺技术,以及由200多家生态系统合作伙伴组成的庞大体系为后盾。关于瑞萨电子MCU的更多信息,请访问:www.renesas.com/MCUs

(注)EEMBC的CoreMark®基准,用于测量嵌入式系统中使用的MCU和CPU性能。

关于瑞萨电子

瑞萨电子(TSE: 6723),科技让生活更轻松,致力于打造更安全、更智能、可持续发展的未来。作为全球微控制器供应商,瑞萨电子融合了在嵌入式处理、模拟、电源及连接方面的专业知识,提供完整的半导体解决方案。成功产品组合加速汽车、工业、基础设施及物联网应用上市,赋能数十亿联网智能设备改善人们的工作和生活方式。更多信息,敬请访问renesas.com。关注瑞萨电子微信公众号,发现更多精彩内容。

围观 19
订阅 RSS - Cortex-M85