学习笔记|AURIX™TC3xxNVM是非易失性存储器

原创 汽车电子嵌入式 2023-06-19 08:22

前言

NVM是非易失性存储器(Non Volatile Memory)的简称,在这里是指MCU的内部Flash。本文首先介绍了MCU的整个memory map的分布,接着介绍NVM子系统(主要指如何访问Flash),然后介绍PFlash/DFlash的特性,分布,Flash命令等内容,最后介绍了SOTAAB swap实现原理以及各个UCB的作用。

参考资料:

[1]https://videos.infineon-autoeco.com/pc/page/index?keyword=AURIX

[2]TriCore TM TC1.6.2 core architecture manual

[3 ]Infineon-AURIX_TC3xx_Part1-UserManual-v02_00-EN

[4] https://mp.weixin.qq.com/s/zFI1_t4eHl70EDY_gqTPTw

正文


1.Overview

TC3xx芯片最多有6个内核,每个核有自己的私有的Memory以及共有的Memory

私有的:PSPR, DSPR, PCache, DCache, DLMU, LPBPSPR主要用来运行RAM Code,比如说有些代码要放到RAM里面运行。DSPR主要当成SRAM来用,比如用来存放全局变量。每个内核可以通过私有的SPB总线访问自己私有的3MLocal PFlash Bank

共有的:

其他核可以通过SRI总线访问其他核的私有Memory

 

 

 

CachePFLASH的地址从0x80000000开始,不带CachePFLASH的地址从0xA0000000开始。


不管是0x80000000还是0xA0000000他们在物理上映射到的地址都是一样的,使用0x80000000访问就会经过Cache0xA0000000不用经过Cache

 

 

DFlash 0DFLash 1可以当作模拟EEPROM来用,其中DFash1可以被HSM访问,也就是说DFLASH1可以被HSM当成模拟的EEPROM来用。0xAFE000000xAFFFFFFF可以用来外扩FLASH时使用。

 

0x90000000开始是经过DCache访问核外部Ram的地址,0xB0000000是不经过DCache访问核外部Ram的地址。二者最终访问的物理地址就是0xB0000000开始的核外部Ram

2.NVM Sub-system

 

DMU提供操作Flash的接口,每个CPU通过PFI总线访问Local Flash

 

Prefetch Path指的是我们可以从Flash里面预取一部分指令放到Flash Prefetch Buffer里面,提高程序的运行速度。


Demand Path没有预取指令功能,通过具体地址去Flash取某一行指令,

不管是Prefetch Path还是Demand Path,在取指的时候都会有Ecc的自动纠错功能,比如我们从Flash取数据出来,中间有一位有错误,经过Ecc的自动纠错功能能把这一位给纠正过来。

 

DMU是操作Flash的接口部分,它有两个接口,一个是Host Command接口,一个是HSM Command接口,Host接口主要给Tricore用的,HSM接口主要给HSM操作DFlash1的时候用的。

3.PFlashDFlash

 

Flash主要用来存储和运行代码的,TC3xx里面的所有FlashSector都是16KLogic Sector),128Logic Sector组成一个1MPhysical SectorPFlash出来用来存放主核运行的代码外,还可以用来存放HSM运行的代码以及TP CodeTP Code存放在FlashSSW启动程序里面可以调用这些TP Code

 

Flash的操作都按页作为单位的,PFlash一页是32ByteDFlash一页是8ByteWrite Burst指令可以一次操作8Page

 


TC2xxTC3xxFlash的比较。

 

 

AURIX 2G相对于AURIX 1G的主要变化点。


4.SOTA & AB SWAP

SOTA功能激活时,PFLash被划分为两部分,一部分用来存储可执行代码(active bank),另一部分可用来读取和写入(inactive bank)。当APP更新完毕后,两个部分互换,即切换上面两种地址映射方式。在标准模式下使用PF0-1PF4作为active bank,在Alternate模式下使用PF2-3PF5作为active bank,就可以实现AB分区中写入完全相同的APP程序,以相同的地址进行运行


需要注意的是,所有NVM操作都是通过DMU使用PFLASH的物理系统地址执行的,也就是说,NVM操作总是使用标准的地址映射,而不管选择使用哪种地址映射。“NVM操作是一个术语,用于任何针对FLASH的命令,如程序、擦除等,但不包括读取和执行代码。


有关SOTA地址映射的参数在Flash中的UCBUser Configuration Block)中进行配置,在UCB中配置后,只有当下次MCU复位的时候才会更新配置。


 

AB SWAPTC3xx新增加的功能,主要给Software update over the air (OTA)用的。


简单来讲,TC3xx里面的Flash我们可以简单的分为Bank ABank B,在Bank A运行程序的时候我们可以同步的去擦写Bank B,也就是说Bank ABank B是完全独立的,这样在应用程序运行的时候也能同步的更新应用程序。


所谓的AB Swap也就是等更新完了程序之后,可以在UCB里面修改Swap mode,程序复位后新的程序就会运行。这样的好处就是不需要bootloader也可以在线更新程序,并且在线更新程序的时候不影响当前程序的执行的。

 

TC3xxFlash最大为16M,其中的7M是支持SWAP功能的。


A Bank分为A0, A1, A2


B Bank分为B0, B1, B2


Standard模式下,程序是从A Bank开始运行的,也就是A0, A1, A2Active Bank,当A Bank运行的时候需要程序更新,程序更新到B Bank,更新完后切换到B Bank,程序从B Bank开始运行。


没有使能AB Swap功能时,A0, A1, A2B0, B1, B2CPU0-5Local FlashCPU可以通过私有的总线访问Local Flash(速度更快),使能了AB Swap之后,CPU不能使用私有总线访问Local Flash了(速度下降),需要使用外部的SRI总线访问Flash


 

TC3977M空间可以进行AB SwapTx3773M


如果使用HSM,则在进行SWAP只想,HSM的代码也需要下载到inactive Bank里面,防止芯片锁死。

 


不管是Standard模式还是Alternate模式,程序的执行都是从0x80000000开始的,也就是说下载一个新的程序到B Bank,这个程序本身的地址是不需要变的,原来是0x80000000开始现在也是从0x80000000开始。


不管是Standard还是Alternate模式,在操作Flash的时候,传入的参数都必须是绝对地址。如果是从Flash里面读取数据,则需要使用相对地址。

 


 

程序在A Bank运行时,接收到新的应用程序ProgramB Bank以后,接下来需要配置新的UCB_SWAP,最多可以配置16SWAP Mode,一般来说在设置一条新的SWAP Mode以后需要把前面一条的SWAP ModeInvalid掉。

 

初始化状态是使用标准地址映射,此时SOTA模式未启用。按以下步骤启用SOTA


① 用烧写器把APP烧写进PFlash的组A地址处。


② 向MARKERL0写入0x00000055


③ 向MARKERH0写入MARKERL0的系统地址。


④ 向CONFERMATIONL0写入0x57B5327F


⑤ 向CONFERMATIONH0写入CONFERMATIONL0的系统地址。


⑥ 将UCB_OTP0SWAPEN标志位置为Enable


⑦ 重启MCU


经过上面的步骤,就事MCU进入了SOTA模式,其中步骤②-⑤是为了启用标准地址映射。手册中给了如下的流程图供参考:

 

上面说的是第一次启用SOTA时的配置,下面我们就来看一下SOTA启用后,进行APP更新的步骤:


① 将新的APP写入PFlash中未激活的部分,即上文提到的Inactive Bank,并进行准确性校验。


② 如果新的APP被写入组B,则向MARKERLx.SWAP写入0x000000AA,启用Alternate地址映射模式;如果新的APP被写入组A,则向MARKERLx.SWAP写入0x00000055,启用标准地址映射模式。(x0-15的值,从0开始向上递增,由上文可知UCB_SWAP最多能存储16组标志值,存满后再擦除重新写入。)


MARKERHx.ADDRCONFIRMATIONLx.CODECONFIRMATIONHx.ADDR配置同上文。


④ 向CONFIRMATIONL(x-1).CODE再次写入0xFFFFFFFF,来使上一组UCB_SWAP值失效。向PFlash再次写入全1的值不会导致PFlash操作错误。

手册中给了下面这个流程图供参考:

 

5.UCB

参考:TC3xx芯片的UCB详解

 

UCB里面如果带Password,即使UCB已经Confirm了,还是可以通过输入Password擦写UCB。如果是不带PasswordUCB,如果UCB配置成Confirm了,那这个UCB就无法改写了。

 

对于有些UCB是不可以被擦掉或者有ECCError,如果这个UCB被擦除或者含有ECCError,这个芯片可能就会被锁死。

 


UCB_BMHDBMIBMHDIDSTADCRCCBMHD,CRCBMHD_N5个位域不能有Uncorrectable ECC Error,否则芯片就会锁死。所以在不能在操作UCB_BMHD的时候突然掉电,或者没有擦除已有的BMHD就去写BMHD


 

UCBConfirmation CodeUNLOCKEDCONFIRMED是合法的,ERASEDERRORED状态是Error状态。所有的UCB在出场的时候都是处于UNLOCKED状态的,在UNLOCKED状态时所有的UCB内容都是可以读出来的,包括PasswordUCBCONFIRMED状态时,除了Password其他都是可以读出来的。

 


UCB_BMHD主要是用来设置程序的启动地址的。UCB_BMHD_COPY主要起到一个备份的作用,比如在擦除UCB_BMHD_ORIN的时候突然掉电,导致UCB_BMHD_ORIN变成Error状态,这个时候就可以读取UCB_BMHD_COPY的内容。

 

 

BMHD0Password是被BMHD1-3所共享的,也就是说BMHD1-3被设为Confirmed后需要通过BMHD0Password调用disable protection去解锁其他BMHD1-3


BMHD被写保护的条件有两个:


1.UCB_BMHDxConfirmation状态处于 CONFIRMED状态,并且Disable Protection没有被激活(通过加载UCB_BMHD0中的Password)。


2.UCB_BMHDxconfirmation状态是ERRORED

 


UCB_PFLASH主要用来设置PFLASH的读写保护。PFLASH的读保护是全局的(只有一个配置项),写保护是每个Sector都能进行单独设置的,如果PFLASH读保护了,相当于也是写保护了(不让读,肯定就不能写了)。

 


UCB_DFLASH主要用来配置DFLASH0的模式,Single Ended Sensing还是Complement Sensing。配置RAM是否在Power On Reset后是否进行清零,以及选择那几块RAM进行清零。

 

 

UCB_SWAP主要用来配置SWAP模式的。

 


 

所有UCB的擦写是有次数限制的,这个擦写的限制是保证UCB中数据可以保存20年。在数据保存20年的前提下,对每一个UCB的擦写次数是100次,对所有UCB的擦写次数总共是500次。



推荐阅读

Autosar架构下的模块详细设计及代码实现--基于配置的编程方法

AUTOSAR 通信服务-CanSM概念详解

AUTOSAR 通信服务-PDU Router

AUTOSAR CAN通信协议栈分析(2)-CanIf

Bug分析-内存被异常篡改问题分析

AUTOSAR架构下CAN BusOff问题分析

C语言编程技巧(1)-表驱动法

CANoe工具使用(1)-实现CAN通道的收、发、录、回放报文

S32K平台学习(1)-S32K144启动流程分析

详解芯片Rese Vector和Interrupt Vector-以S32K和RH850为例

Can通信协议栈分析(1)-Can Driver

AUTOSAR 通信服务 - NM概念详解

AUTOSAR模式管理-EcuM Sleep and UP详解

AUTOSAR 诊断服务-DEM功能概述

基于AUTOSAR与Matlab开发应用层(三)应用层总体功能开发和集成

AUTOSAR-MCAL--SPI模块详解(三)

AUTOSAR-MCAL--MCU模块详解

RH850-U2A16芯片--RAM and Flash介绍

AUTOSAR存储协议栈-- EEPROM Driver模块介绍

AUTOSAR-MCAL--SPI模块详解(三)

详解芯片Rese Vector和Interrupt Vector-以S32K和RH850为例

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

AUTOSAR架构下关于CanNm的几点思考

AUTOSAR下Com模块中Signal Group详解

Can/Lin报文的触发发送(Trigger Transmit)

AUTOSAR 通信服务-Com模块报文的发送机制

网络关闭但ECU没有休眠前如何网络唤醒

ECU系统休眠后通过诊断报文唤醒ECU且唤醒网络

AUTOSAR网络通信问题分析

Bug分析-内存被异常篡改问题分析

End




欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号


评论 (0)
  • 提到“质量”这两个字,我们不会忘记那些奠定基础的大师们:休哈特、戴明、朱兰、克劳士比、费根堡姆、石川馨、田口玄一……正是他们的思想和实践,构筑了现代质量管理的核心体系,也深远影响了无数企业和管理者。今天,就让我们一同致敬这些质量管理的先驱!(最近流行『吉卜力风格』AI插图,我们也来玩玩用『吉卜力风格』重绘质量大师画象)1. 休哈特:统计质量控制的奠基者沃尔特·A·休哈特,美国工程师、统计学家,被誉为“统计质量控制之父”。1924年,他提出世界上第一张控制图,并于1931年出版《产品制造质量的经济
    优思学院 2025-04-01 14:02 159浏览
  • 在智能交互设备快速发展的今天,语音芯片作为人机交互的核心组件,其性能直接影响用户体验与产品竞争力。WT588F02B-8S语音芯片,凭借其静态功耗<5μA的卓越低功耗特性,成为物联网、智能家居、工业自动化等领域的理想选择,为设备赋予“听得懂、说得清”的智能化能力。一、核心优势:低功耗与高性能的完美结合超低待机功耗WT588F02B-8S在休眠模式下待机电流仅为5μA以下,显著延长了电池供电设备的续航能力。例如,在电子锁、气体检测仪等需长期待机的场景中,用户无需频繁更换电池,降低了维护成本。灵活的
    广州唯创电子 2025-04-02 08:34 189浏览
  • 文/Leon编辑/cc孙聪颖‍步入 2025 年,国家进一步加大促消费、扩内需的政策力度,家电国补政策将持续贯穿全年。这一利好举措,为行业发展注入强劲的增长动力。(详情见:2025:消费提振要靠国补还是“看不见的手”?)但与此同时,也对家电企业在战略规划、产品打造以及市场营销等多个维度,提出了更为严苛的要求。在刚刚落幕的中国家电及消费电子博览会(AWE)上,家电行业的竞争呈现出胶着的态势,各大品牌为在激烈的市场竞争中脱颖而出,纷纷加大产品研发投入,积极推出新产品,试图提升产品附加值与市场竞争力。
    华尔街科技眼 2025-04-01 19:49 256浏览
  • 退火炉,作为热处理设备的一种,广泛应用于各种金属材料的退火处理。那么,退火炉究竟是干嘛用的呢?一、退火炉的主要用途退火炉主要用于金属材料(如钢、铁、铜等)的热处理,通过退火工艺改善材料的机械性能,消除内应力和组织缺陷,提高材料的塑性和韧性。退火过程中,材料被加热到一定温度后保持一段时间,然后以适当的速度冷却,以达到改善材料性能的目的。二、退火炉的工作原理退火炉通过电热元件(如电阻丝、硅碳棒等)或燃气燃烧器加热炉膛,使炉内温度达到所需的退火温度。在退火过程中,炉内的温度、加热速度和冷却速度都可以根
    锦正茂科技 2025-04-02 10:13 113浏览
  • 文/郭楚妤编辑/cc孙聪颖‍不久前,中国发展高层论坛 2025 年年会(CDF)刚刚落下帷幕。本次年会围绕 “全面释放发展动能,共促全球经济稳定增长” 这一主题,吸引了全球各界目光,众多重磅嘉宾的出席与发言成为舆论焦点。其中,韩国三星集团会长李在镕时隔两年的访华之行,更是引发广泛热议。一直以来,李在镕给外界的印象是不苟言笑。然而,在论坛开幕前一天,李在镕却意外打破固有形象。3 月 22 日,李在镕与高通公司总裁安蒙一同现身北京小米汽车工厂。小米方面极为重视此次会面,CEO 雷军亲自接待,小米副董
    华尔街科技眼 2025-04-01 19:39 254浏览
  • 北京贞光科技有限公司作为紫光同芯授权代理商,专注于为客户提供车规级安全芯片的硬件供应与软件SDK一站式解决方案,同时配备专业技术团队,为选型及定制需求提供现场指导与支持。随着新能源汽车渗透率突破40%(中汽协2024数据),智能驾驶向L3+快速演进,车规级MCU正迎来技术范式变革。作为汽车电子系统的"神经中枢",通过AEC-Q100 Grade 1认证的MCU芯片需在-40℃~150℃极端温度下保持μs级响应精度,同时满足ISO 26262 ASIL-D功能安全要求。在集中式
    贞光科技 2025-04-02 14:50 238浏览
  • 探针本身不需要对焦。探针的工作原理是通过接触被测物体表面来传递电信号,其精度和使用效果取决于探针的材质、形状以及与检测设备的匹配度,而非对焦操作。一、探针的工作原理探针是检测设备中的重要部件,常用于电子显微镜、坐标测量机等精密仪器中。其工作原理主要是通过接触被测物体的表面,将接触点的位置信息或电信号传递给检测设备,从而实现对物体表面形貌、尺寸或电性能等参数的测量。在这个过程中,探针的精度和稳定性对测量结果具有至关重要的影响。二、探针的操作要求在使用探针进行测量时,需要确保探针与被测物体表面的良好
    锦正茂科技 2025-04-02 10:41 128浏览
  • 职场之路并非一帆风顺,从初入职场的新人成长为团队中不可或缺的骨干,背后需要经历一系列内在的蜕变。许多人误以为只需努力工作便能顺利晋升,其实核心在于思维方式的更新。走出舒适区、打破旧有框架,正是让自己与众不同的重要法宝。在这条道路上,你不只需要扎实的技能,更需要敏锐的观察力、不断自省的精神和前瞻的格局。今天,就来聊聊那改变命运的三大思维转变,让你在职场上稳步前行。工作初期,总会遇到各式各样的难题。最初,我们习惯于围绕手头任务来制定计划,专注于眼前的目标。然而,职场的竞争从来不是单打独斗,而是团队协
    优思学院 2025-04-01 17:29 251浏览
  • 据先科电子官方信息,其产品包装标签将于2024年5月1日进行全面升级。作为电子元器件行业资讯平台,大鱼芯城为您梳理本次变更的核心内容及影响:一、标签变更核心要点标签整合与环保优化变更前:卷盘、内盒及外箱需分别粘贴2张标签(含独立环保标识)。变更后:环保标识(RoHS/HAF/PbF)整合至单张标签,减少重复贴标流程。标签尺寸调整卷盘/内盒标签:尺寸由5030mm升级至**8040mm**,信息展示更清晰。外箱标签:尺寸统一为8040mm(原7040mm),提升一致性。关键信息新增新增LOT批次编
    大鱼芯城 2025-04-01 15:02 235浏览
  • 引言在语音芯片设计中,输出电路的设计直接影响音频质量与系统稳定性。WT588系列语音芯片(如WT588F02B、WT588F02A/04A/08A等),因其高集成度与灵活性被广泛应用于智能设备。然而,不同型号在硬件设计上存在关键差异,尤其是DAC加功放输出电路的配置要求。本文将从硬件架构、电路设计要点及选型建议三方面,解析WT588F02B与F02A/04A/08A的核心区别,帮助开发者高效完成产品设计。一、核心硬件差异对比WT588F02B与F02A/04A/08A系列芯片均支持PWM直推喇叭
    广州唯创电子 2025-04-01 08:53 228浏览
  • 随着汽车向智能化、场景化加速演进,智能座舱已成为人车交互的核心承载。从驾驶员注意力监测到儿童遗留检测,从乘员识别到安全带状态判断,座舱内的每一次行为都蕴含着巨大的安全与体验价值。然而,这些感知系统要在多样驾驶行为、复杂座舱布局和极端光照条件下持续稳定运行,传统的真实数据采集方式已难以支撑其开发迭代需求。智能座舱的技术演进,正由“采集驱动”转向“仿真驱动”。一、智能座舱仿真的挑战与突破图1:座舱实例图智能座舱中的AI系统,不仅需要理解驾驶员的行为和状态,还要同时感知乘员、儿童、宠物乃至环境中的潜在
    康谋 2025-04-02 10:23 203浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦