关于对多核AUTOSAR OS的理解

汽车ECU开发 2021-11-09 08:35

首先,请问大家几个小小的问题,你清楚:

  • 你知道多核OS在什么场景下使用吗?

  • 多核系统OS又是如何协同启动或者关闭的呢?

  • AUTOSAR OS存在哪些功能安全等方面的要求呢?

  • 多核OS之间的启动关闭与单核相比又存在哪些异同呢?

  • 。。。。。。

今天,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲


正文

AUTOSAR OS 保护

在上篇文章AUTOSAR基础篇之OS(上)中我们可以了解到AUTOSAR OS的基本特点,基本对象以及各个对象之间的彼此关联,本篇文章将承前启后,在此基础上来简单谈谈我对AUTOSAR 多核OS的理解与认识。鉴于本人水平能力有限,如存在错误之处,还请大家多多批评指正。

我们已知道AUTOSAR OS来源于OSEK OS,随着汽车电子信息安全,功能安全等需求的不断提出,传统的OSEK OS已无法满足当前的需求,因此AUTOSAR组织在OSEK OS的基础上为不同的用户提供四类不同功能安全的OS可裁剪类型,分别为SC1-SC4

AUTOSAR OS 可裁剪类型

AUTOSAR OS的四种可裁剪类型分别为SC1-SC4,具体含义如下:

  • SC1: OSEK OS + Schedule Table;

  • SC2: OSEK OS + Schedule Table + Timing Protection;

  • SC3: OSEK OS + Schedule Table + Memory Protection;

  • SC4: OSEK OS + Schedule Table + Timing Protection + Memory Protection;

如下图1所示,较为清晰了描述了这四种不同可裁剪类型的区别与联系。


图1 AUTOSAR OS可裁剪类型

AUTOSAR OS 时间保护

从AUTOSAR OS四种可裁剪类型可以看出,时间保护(Timing Protection)是一项非常重要的功能保护机制。如之前文章所示,AUTOSAR OS作为一实时操作系统,那么就需要在预定的时间内完成特定的任务,但有时由于某些原因导致超时错误,OS必须采用有效的方式来预防超时任务的发生,而这类措施则可以称为时间保护。

一种较为常见的时间保护就是Deadline Monitoring。即当OS检测到某一任务的运行时间超过其截止时间时,则会调用相应的Hook函数向系统报错,但是AUTOSAR OS并不是通过监控截止时间方式来实现时间保护的,因为针对截止时间的保护并不能准确识别出当前错误的原因。具体解释如下:

  • 现象:任务1的运行时间超过其截止时间时,任务A本身可能并没有出错;

  • 过程:在执行任务1之前的任务2频繁的抢占或者过长的阻塞资源的访问;

  • 原因:正由于任务2的上述行为,进而导致任务1执行超时,从而直观的认为任务1发生错误便停止任务1,反而让真正的罪魁祸首任务2继续逍遥法外,这就不合情理,也起不到对OS中各任务的时间保护。

下面为了进一步加强大家对上述简单的监控截止时间造成运行错误的理解,假设存在一个操作系统中存在下列任务A,B,C,并明确各自任务的优先级,执行时间,Deadline 如下表1中所示:

表1 操作系统任务的基本属性假设

假设所有任务在0时刻均处于就绪状态,期望运行的任务执行时序如下图2所示。具体的任务执行时序如下所述:

  • 由于任务A优先级最高,因此任务A先执行;

  • 1个Tick之后任务B开始执行,3个Tick之后任务C执行;

  • 当任务C执行1个Tick后被任务A打断,任务A执行完毕后,任务C继续运行;

  • 到第10个Tick任务C执行完毕,周而复始,整个过程并未出现超时现象,并且仍有一个Tick的空闲状态;

图2 任务期望时序图

接下来,如果发生如下图3所示的异常状况,那么我们看会发生什么呢?

  • 任务A的第二个周期与任务B的第一个周期都出现运行时间过长的现象,但并没有超过其截止时间。

  • 任务B在第二个周期提前进入运行状态,但也未超过其截止时间;

  • 任务C按照正确的方式运行,但由于任务A与任务B的出错导致任务C运行超时,则发生超时错误;

若此时采用简单的超时监控机制只能监控到任务C超时,这时操作系统调用钩子函数,由于出错原因并未被检测到,从而操作系统采取的措施将无法有效解决错误。

图3 任务超时现象

因此,从上述例子分析可以得出任务或者中断能否满足其截止时间需取决于以下三大基本要素:

  • 1.静态任务或者中断的执行时间上限;

  • 2.被低优先级任务锁住共享资源或屏蔽中断所引起的阻塞时间;

  • 3.任务或者中断之间的间隔执行时间;

针对上述三大基本要素,AUTOSAR OS采取了下列三种时间保护机制:

对于1:AUTOSAR OS为任务或者二类中断服务设定了运行时间上限;

对于2:AUTOSAR OS设定了共享资源被任务或者二类中断锁定的时间上限,设定了OS中断被任务或者二类中断中断挂起的时间上限,设定了所有中断被任务或者二类中断挂起或者屏蔽的时间上限;

对于3:AUTOSAR OS设定了任务或者二类中断执行间隔的时间下限;

特别的,需要注意的是AUTOSAR OS时间保护存在一些基本特性:

  • 时间保护仅仅用于任务或者二类中断,对于一类中断不起作用;

  • 在OS未开启之前,时间保护将不起作用;

  • 对于Trusted OS Application, OS应当有能力提供一种基于任务或者二类中断的时间保护,而对于Non-Trusted OS Application,OS必须提供为这个非信任的OS Application中的每一个任务或者二类中断提供时间保护;

AUTOSAR OS内存保护

AUTOSAR OS的内存保护需要特定的硬件支持,即处理器应该存在MPU单元(Memory Protection Unit), 例如英飞凌AURIX单片机则具备这个特性。鉴于内存保护可以有效防止出错的应用模块影响到其他模块,降低系统完全瘫痪的风险,因此,AUTOSAR OS提供以下三种形式的保护:

栈保护

  • 即每一个OS Application和其中的OS Object都有各自的私有栈,不同的OS Object无需存在共享栈。栈保护能够更为快速的检测出栈溢出,同时栈保护也是划分OS Application的一种方式和依据。

数据保护

  • 每一个OS Application和其中的Objects都具备各自私有数据,同时OS Application的私有数据区就是从属于该OS Application的Objects的共享数据区;

代码保护

  • 代码区既可以被私有,也可以被共享,在没有代码保护的前提下,错误代码的执行会导致内存,时间和服务上的出错。

OS通过MPU监控内存的访问权限,其中AUTOSAR的访问权限可分为受信任与非受信任的Object(Trusted and Non Trusted)两级,受信任的Object有读写大部分内存的权限,但没有读取其他非激活栈的权限。

而非受信任的Object仅有读写少数内存的权限,包括当前活跃的栈,当前OS Application的数据以及LMU的共享数据。

AUTOSAR多核OS启动与关闭

在AUTOSAR软件基本架构下,无论是单核操作系统还是多核操作系统,都与EcuM模块和BswM模块息息相关。因为这两类模块决定了OS启动,初始化,运行,关闭等状态及其过程。

从之前文章AUTOSAR基础篇之EcuM我们可以知道ECU工作过程可分为启动(STARTUP), 运行(UP), 睡眠(SLEEP)以及关闭(SHUTDOWN)四种状态。

ECU在上电前处于SHUTDOWN阶段,上电后便进入STARTUP阶段,主要包括StartPreOS与StartPostOS两个子阶段。

在StartPreOS子阶段主要完成一些OS启动之前的一些准备工作,如初始化MCU,IO,WatchDog等模块;

在StartPostOS子阶段则是启动OS之后的阶段,该阶段主要执行初始化BSW的调度器以及初始化BswM模块两个动作,如下图4所示。


图4 ECU启动流程

由于ECU详细的启动过程在AUTOSAR基础篇之EcuM文章中已有大量篇幅介绍,本文就不再赘述,只是作为一个引子,大家如果有兴趣,可以阅读了解一下。

多核OS启动过程

当然无论是否存在OS,多核的启动过程相比单核与硬件关系则更为密切。

通常情况下,硬件会首先启动一个核作为主核(Master Core),而从核(Slave Core)则由软件启动,这种启动方式被称为主从模式。AUTOSAR规范定义了多核启动方式应该为主从模式。

值得注意的是:即使硬件支持多核同时启动,AUTOSAR规定也需要通过软件模拟的方式来实现主从模式来启动多核系统。

如下图5所示,非常生动形象的描述了主从模式的各个环节的启动时序及相互之间的交互关系。


图5 多核OS的启动过程

在上图中,Core 0作为主核,其他核则作为从核。

  • 主核Core 0完成前期的硬件初始化之后启动从核Core 1 并随后调用Start OS函数来启动OS,OS完成初始化之后在第一个同步点等待所有从核完成OS的启动。 

  • 从核Core 1被主核启动之后,首先完成硬件相关的初始化,然后激活从核Core2,Core3,并在第一个同步点等待其余从完成OS的启动;

  • 从核Core2,Core3被Core 1激活之后,首先完成各自的硬件相关初始化,然后调用StartOS完成OS的初始化并在第一个同步点进行同步;

  • 在完成第一个同步点之后,主从核便分别执行Startup Hook函数之后在第二个同步点进行同步,然后所有核的Kernel将一起运行,只有这样才能够更好的保证整个系统的稳定性与鲁棒性。

值得注意的是如果某从核运行的OS不是AUTOSAR OS时,此时则不能使用AUTOSAR OS API StartCore来启动该从核,而应当使用StartNonAutosarCore来实现该从核的启动。

多核OS关闭过程

与单核OS关闭过程类似,多核OS的关闭也是通过EcuM来完成,如果在关闭过程中出现唤醒事件,ECU则需要关闭之后立即重启。

在关闭过程中可以选择ShutDown Target分别为关闭(OFF), 睡眠(Sleep),和复位(Reset),此处仅简要描述其基本过程,如下图6所示:

图6 ECU关闭过程

如上图的ECU关闭过程主要分为以下几个阶段:

  • 反初始化BswM以及BSW调度器;

  • 检查是否存在唤醒事件发生;

  • 选择ShutDown Target;

  • 关闭OS;

如下图7所示,则较为生动形象的描述了多核OS的关闭过程。


图7 多核OS的关闭过程

在多核系统中,关闭过程存在以下几个特点:

  • AUTOSAR4.x不支持仅仅关闭单个核,即若发送关闭指令或者致命错误时所有核必须全部关闭,具体的关闭过程如上图所示;

  • 若某一任务拥有调用ShutDown All Cores的权限时,关闭信号将会同步发送至所有核;

  • 当关闭过程启动后,所有的中断服务和任务都不能被激活,关闭前必须完成的程序由EcuM保证完成;

  • 关闭完成前,各自的OS Application调用各自的Shutdown Hooks函数完成对应的回调程序,然后等待到同步点所有核执行关闭回调函数。


AUTOSAR多核OS调度

基本特点

多核OS调度相比单核OS调度而言并没有什么区别,都是根据任务或者中断的优先级作为首要因素来决定调度顺序。在同一处理器内核上,优先级越高的任务或者中断优先调度。如果优先级相同,那么就根据激活顺序进行调度。

需要明白一点的是对于单核系统,CPU每时每刻只能运行一个任务或者中断,采用时间片轮转法来实现看上去的并发执行

对于多核系统而言则不同,由于存在多核所以可以同时运行多个任务或者中断,至于能够同时运行几个任务或者中断由CPU内核数量来决定,我们把这种执行方式称为并行执行

同时对于AUTOSAR操作系统而言,任务及中断的优先级是提前静态分配的,在运行过程中不支持动态更改。

调度方式

如下图8所示,清晰的表现了 多核OS调度任务的过程。根据调度规则,若在同一核上多个任务被同时调度,即这些任务均处于就绪状态,那么高优先级任务会被率先执行,如图中的Core0上的任务T2,Core1上的任务T3以及Core2上的任务T5,三个任务同时进入运行状态,各个内核上的任务独立运行,互不干扰,其优先级并没有相互影响。

图8 多核OS任务调度图

同时,对于AUTOSAR 多核OS支持任务选择调度模式,可分为全调度和拒绝调度模式。对于全调度模式,任务在运行过程中,可以被高优先级的任务或者中断抢占,而对于拒绝调度模式下,该任务不能够被任何其他任务或者中断抢占。

因此在任务分配优先级的过程中,应当将起到关键作用的重要任务分配较高的优先级,重要程度类似的任务周期越短,分配的优先级越高。

AUTOSAR多核OS通信(IOC)

AUTOSAR规范定义了内部通信与外部通信两种方式,其中内部通信包括核内通信,核间通信。

每当不同内核中的用用程序需要进行数据交互时,操作系统就需要开辟单独的内存区域,通信双方可以实现该内存区域的读写,从而完成数据的传输。

但需要注意的是共享内存区域有可能在读取数据的过程中发生数据更新,这样就会发生数据一致性问题。

为解决上述数据不一致问题,AUTOSAR多核OS提供了应用于核间通信的IOC(Inter OS Application Communication)通信机制。

IOC不同于核内通信,核内通信则是通过RTE来实现。

在使用IOC的过程中如果应用程序对这一共享内存区域进行读写时,会申请占用一个自旋锁(SpinLock),以防止被其他内核的应用程序同时访问,这样便可以保证核间数据读写的一致性。

IOC仅提供Send-Recerver的通信方式,但是RTE可以将Client-Server的请求与应答可间接转换为Send-Recerver模型,因此IOC支持1:1,1:N,N:M的通信。

在每次传输过程中可以传输一个数据项,该数据项可以是基本类型的值或者复杂数据结构的参考,而如果是复杂数据结构,那么就必须被实现为单个内存块,这样IOC便无需得知内部的数据结构 ,仅需知道内存地址和长度便可以完成该结构体数据的传输。

Send-Receiver模型

如下图9所示为也不带通知的1:1的Sender-Recerver的通信模型。

图9 不带通知的RTE通信模式

如上图,Core0中SW-C将数据发送至Core1中的SW-C模块,以下是核间通信的具体步骤:

  • 接收端实体被周期性调用通过Rte_Receive从RTE接收来自Core0的数据;

  • 发送端调用函数Rte_Send函数发送数据,进而调用Ioc_Send函数写入数据到Buffer中;

  • 接收端便会通过Ioc_Read函数读取共享内存中的Buffer数据,并传递给到Rte_Read函数中供Core1中的SW-C使用。

IOC生成器会生成所有的发送及接受函数,为了优化目的,这些函数被定义为宏指令,这种不带通知的通信方式适用于以下场景:

  • Send/Receiver通信;

  • 队列或非队列通信;

  • 1:1通信;

Client-Server模型

如下图10所示,为带通知的N:1的Client-Server模型。

图10 带通知的IOC模型

如上图为Core 0 中的SW-C请求Core1中的服务操作。RTE通过将client-Server调用映射为send-Receiver来实现客户端的服务,因为需要跨核通信,所以RTE调用IOC将数据从Core0传输至Core1,具体传输过程如下所示:

  • 发送端调用函数Rte_Call函数进而调用函数IocSend函数,将数据写入IOC内部队列缓存中;

  • Rte_Call函数使用OS调用激活接受从核的服务任务来通知接收端;

  • 接收端被激活的该任务将负责调用IocReceive函数从IOC共享内存Buffer中读取数据并将数据传输至服务端的运行实体中;

  • Core1中服务函数的结果会被反向传输至Core0的客户端中。

这种带通知的通信方式适用于以下场景:

  • 带通知的Send-Receiver通信;

  • Client-Server通信,在此类情况下,RTE需要将服务转换为1:1的Send-Receiver模型通信,同时将服务结果反向传输到客户端的过程转换为另外一组Send-Receiver通信;

  • 队列或者非队列通信;

  • 1:1通信,如果接受端没有被周期性的调用;

  • N:1通信;

核间元素交互与任务同步

我们知道多核OS由任务,中断,报警器和事件等元素组成,它们之间的相互作用使得操作系统能够有条不紊的运作。

从一般意义上来讲,AUTOSAR OS本质上就是基于事件驱动的操作系统。如下可简要描述核间各元素的交互关系:

  • 报警器可以激活基本任务A或者设置某事件1;

  • 扩展任务B等待事件1那边可以激活基本任务C;

  • 基本任务C可以设置某事件2,中断可以设置某事件3;

  • 扩展任务D等待事件2和事件3之后便可以开启执行;

  • 基本任务E可以通过IOC机制实现与基本任务A之间的数据交互;

如上可知,在多核OS中事件是可以跨核传输的,这也就意味着核与核之间的同步可以通过事件触发的方式来实现。

如下图11所示,当Core0中的任务T1执行时,可以通过设置Event来激活位于Core1中的T2,这样便完成了T1与T2之间的任务同步,该方法适用于事件触发的任务或者定期执行的任务之间的同步,当然如果是定期执行的任务只需使用Alarm或者调度表定期触发Event即可。


图11 多核OS任务基于事件同步示意图

除此以外,我们还可以通过调度表来实现任务同步,由于报警器只能一次触发一个任务,因此不能实现任务同步,而调度表则可以实现同时触发不同核的多个任务,而该方法仅用于定期执行的任务的同步。

推荐阅读

特斯拉最新的12V蓄电池有什么不同?

特斯拉最新中央计算模块(CCM)解析

关于对自动驾驶传感器的理解

特斯拉的电池管理系统 (BMS) 相比其他电动车有哪些优势?

2021款特斯拉Model Y ECU接口梳理

详解CANoe之CAPL编程

关于CAN时间同步的理解

dbc文件的格式以及创建详解

大众ID.4 X网络架构详解

学习笔记——NVM数据处理机制

学习笔记——AUTOSAR NVM基础知识

基于UDS的Bootloder详解

关于整车上下电流程的理解

一文详解CAN总线错误帧|附下载

DoIP协议介绍,资料分享!

详解车载网络 OTA系统的开发|文末附下载

一文了解汽车嵌入式AUTOSAR架构|附下载

特斯拉Autopilot系统安全研究|附dbc下载

分享不易,恳请点个【在看】
汽车ECU开发 专注于汽车电子ECU软件开发,技术分享。
评论
  • 车载光纤通信随着ADAS(高阶驾驶辅助系统)、汽车智能网联、V2X和信息娱乐技术的不断发展,车载电子系统和应用数量迅速增加。不断增长的车内传输数据量对车载通信网络造成了巨大的数据带宽和安全性需求,传统的车载总线技术已经不能满足当今高速传输的要求。铜缆的广泛使用导致了严重的电磁干扰(EMI),同时也存在CAN、LIN、FlexRay等传统总线技术不太容易解决的问题。在此背景下,车载光纤通信技术逐渐受到关注和重视,除了大大提高数据传输率外,还具有抗电磁干扰、减少电缆空间和车辆质量等优点,在未来具有很
    广电计量 2024-12-18 13:31 34浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-18 14:02 36浏览
  • 随着现代汽车工业的不断发展,驾驶安全与舒适性成为消费者关注的焦点。在这个追求极致体验的时代,汽车ASF随动转向LED大灯技术应运而生,它不仅代表了车辆操控辅助系统的最新进展,更是对未来智能安全出行愿景的一次大胆探索。擎耀将深入探讨ASF随动转向技术的原理及落地方案,旨在为汽车LED照明升级行业提供一份详尽且实用的参考。首先,ASF随动转向技术不是什么高精尖的技术,一般的汽车大灯制造厂商都可能完成,通过软硬件的逻辑加上传感器,基本就可以实时监测车辆的行驶状态,包括但不限于车速、转向角度等关键参数。
    lauguo2013 2024-12-17 14:43 47浏览
  • 随着国家对环保要求日趋严格。以铅酸电池为动力的电动自行车、电动摩托车,将逐渐受到环保管制。而能量密度更高的磷酸铁锂等锂电池成为优先的选择,锂电池以其高能量密度、快速充电、轻量化等特点,已经大量应用于电动车领域。光耦在锂电池系统PMU中的应用,能提供完善的安全保护和系统支撑。BMS和电池被封装成安装所需要的尺寸外形,高速的CAN以及RS-485等通信总线,被应用在与控制器、中控之间通信。晶台光耦,被广泛应用于通信隔离、双MCU系统应用地隔离、电机驱动隔离等。下图例举在电动摩托车上的应用中包含的部件
    晶台光耦 2024-12-17 13:47 50浏览
  •        随着对车载高速总线的深入研究,以电信号为媒介的传输方式逐渐显露出劣势,当传输速率超过25Gbps时,基于电信号传输已经很难保证长距离传输下的信号质量与损耗。在这样的背景下,应用于工业领域的光通信技术因其高带宽、长距离、低电磁干扰的特点得到了密切的关注,IEEE在2023年发布了802.3cz[1]协议,旨在定义一套光纤以太网在车载领域的应用标准。MultiGBASE-AU总览       以下是Mult
    经纬恒润 2024-12-17 17:29 62浏览
  • 上汽大通G90是一款集豪华、科技与舒适于一身的中大型MPV,号称“国产埃尔法”。在国内市场,作为“卷王”的G90主要面向中大型MPV市场,满足家庭出行、商务接待和客运租赁等多元化场景需求,在国内市场上取得了不错的销售成绩。在海外市场,上汽大通G90也展现出了强大的竞争力,通过技术创新和品质提升,上汽大通的产品在国际市场上获得了广泛认可,出口量持续增长,如果你去过泰国,你就应该可以了解到,上汽的品牌出海战略,他们在泰国有建立工厂,上汽大通G90作为品牌的旗舰车型之一,自然也在海外市场上占据了重要地
    lauguo2013 2024-12-18 10:11 62浏览
  • 1. 磁性材料的磁化曲线磁性材料是由铁磁性物质或亚铁磁性物质组成的,在外加磁场H 作用下,必有相应的磁化强度M 或磁感应强度B,它们随磁场强度H 的变化曲线称为磁化曲线(M~H或B~H曲线)。磁化曲线一般来说是非线性的,具有2个特点:磁饱和现象及磁滞现象。即当磁场强度H足够大时,磁化强度M达到一个确定的饱和值Ms,继续增大H,Ms保持不变;以及当材料的M值达到饱和后,外磁场H降低为零时,M并不恢复为零,而是沿MsMr曲线变化。材料的工作状态相当于M~H曲线
    锦正茂科技 2024-12-17 10:40 122浏览
  •  2024年下半年,接二连三的“Duang Duang”声,从自动驾驶行业中传来:文远知行、黑芝麻、地平线、小马智行等相继登陆二级市场,希迪智驾、Momenta、佑驾等若干家企业在排队冲刺IPO中。算法模型的历史性迭代与政策的不断加码,让自动驾驶的前景越来越清晰。由来只有新人笑,有谁听到旧人哭。在资本密集兑现的自动驾驶小元年里,很多人可能都已经遗忘,“全球自动驾驶第一股”的名号,曾经属于一家叫做图森未来的公司。曾经风光无两的“图森”,历经内讧与退市等不堪往事之后,而今的“未来”似乎被锚
    锦缎研究院 2024-12-18 11:13 50浏览
  • 2003年买的电子管功放机,俗称胆机,坏过几次,咨询厂家,购买零件,自己修理,干中学,学中干。有照片记录的是2011年3月,一天,发现整流管比之前红亮了很多,赶紧关机,想找原因,反反复复折腾了几个月,搞好了。就此,还在网上论坛咨询和讨论,欧博Rererence 5.0电子管发粉红色光,何故?-『胆艺轩音响技术论坛』-胆艺轩[Tubebbs]论坛 发表于2011-5-7同时与厂家联系得到支持,见文:29kg胆机修理之联想——环保简易,做到真难!-面包板社区 发表于2011-6-13又继续使用了多年
    自做自受 2024-12-17 22:18 118浏览
  •   前言  作为一名电子专业的学生,半导体存储显然是绕不过去的一个坎,今天聊一聊关于Nand Flash的一些小知识。  这里十分感谢深圳雷龙发展有限公司为博主提供的两片CS创世SD NAND的存储芯片,同时也给大家推荐该品牌的相关产品。  一、定义  存储芯片根据断电后是否保留存储的信息可分为易失性存储芯片(RAM)和非易失性存储芯片(ROM)。  非易失性存储器芯片在断电后亦能持续保存代码及数据,分为闪型存储器 (Flash Memory)与只读存储器(Read-OnlyMemory),其中
    雷龙发展 2024-12-17 17:37 44浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦