2026/4/16 19:05:43
网站建设
项目流程
尼罗发表小说做的的网站是哪个,wordpress 调用,距离我最近的装修公司电话,电脑网站显示安全证书有问题怎么解决保护机制误差校正码Error Correcting CodeECC可以防止存储在内存中的数据出现错误#xff0c;提高系统的功能安全性#xff0c;避免因读取错误的数据而导致错误。ECC的主要影响是在易失性存储器#xff08;RAM#xff09;中#xff0c;其中技术的小型化导致更高的位翻转风…保护机制误差校正码Error Correcting CodeECC可以防止存储在内存中的数据出现错误提高系统的功能安全性避免因读取错误的数据而导致错误。ECC的主要影响是在易失性存储器RAM中其中技术的小型化导致更高的位翻转风险保护数据信息免受单个或多个比特错误的已知技术。在高可靠和安全的系统中强烈推荐的内存保护措施之一。ECC保护算法•单错误纠正SECSingle-error-correcting汉明码•单错误校正-双错误检测SEC-DEDSingle-error-correcting-double-error-detecting修改的汉明码•SEC-DED Hsiao代码所有这些算法都是基于用所谓的校验位扩展信息位的原理这样接收时的比特错误在一个比特错误的情况下被识别和纠正或者在两个错误的情况下被检测出来。所有SPC5X mcu均支持Flash和RAM HW ECC保护机制不支持屏蔽建议在所有应用程序中实现ECC错误管理SW流程特别是对于需要反复擦除和重新编程Flash的Bootloader/OTA/EEPROM仿真开发以及与安全相关的应用程序。SPC56内存ECC保护SPC56实现ECC机制的所有存储器RAMCode flash和data flash每个内存都有自己的ECC块每次写访问时计算奇偶校验位每次读访问时检查数据有效性如果需要会自动进行1位校正解码结果由ECC模块报告并在ECSM模块中收集并在Flash模块中并行收集Flash ECC错误。RAM ECC实现SRAM数据在32位的边界上保护有7个校验位。这意味着在写访问时存储39位在读访问时检查。在对8位和16位数据进行写入操作期间在合并写入数据之前将检查对32位数据的读取是否存在ECC。SRAM初始化有必要在上电或破坏性复位后第一次使用之前初始化RAM因为要为ECC寄存器设置新值主要是通过Startup代码内部SRAM的复位状态是随机的因此数据和校验位可以包含任何数据。最可能的是第一次读尝试任何地址将产生不可纠正的ECC错误。因此SRAM必须在上电后初始化。通常这意味着整个SRAM被删除或写入任何值但必须是32位写入才能完全定义数据单元的ECC代码。否则较小的写访问将导致读取-修改-写入并产生另一个ECC错误。内部SRAM没有寄存器。SRAM ECC的寄存器位于ECSM中。Flash ECC实现flash在64位的边界上有8个校验位。由于闪存的特性擦除的时候只能从1变成0每次编程都是整个64位。用不同的值对同一个word进行重编程可能导致ECC校验位模式不同从而导致重编程错误。每个Flash模块包含状态位反映每次读访问的ECC检查结果。ECC硬件在出现ECC错误时设置这些位。ECC错误硬件异常两种由SPC56 MCU硬件产生的ECC故障通知ECSM模块中断和内核异常事件1个位错误自动纠正透明的应用程序在1位和2位两种ECC故障情况下都可以产生ECSM模块中断并进一步区分RAM和Flash可以为FLASH和SRAM启用错误报告详细信息启用报告将生成一个中断请求到INTC如果该INTC请求的优先级为0则不必处理该请求ECSM模块生成的所有中断都是可配置的并且可以由用户在ECR寄存器中屏蔽ECSM模块Error correction status module纠错状态模块ECSM的一部分专门用于收集由存储器和底层总线系统报告的ECC信息它提供了一组寄存器来存储由状态寄存器ESR发出的最后一次ECC故障的扩展信息。ECSM模块区分RAM和flash其中代码和数据闪存合并并作为一个Flash ECC故障发出信号。代码分析从哪个内存的故障来必须使用FEAR寄存器存储地址并将其绑定到正确的flash区域。ECSM中断生成单比特中断不会产生核心异常它们可以被启用的ECSM中断捕获。在指令获取或数据读取期间发生的不可纠正的ECC错误会导致内核异常的产生因为Z0内核和给定内存目标之间的总线事务错误。内核异常事件不能被掩盖应该妥善处理以解决问题。根据内存访问类型指令获取或数据获取以及机器状态寄存器MSR的配置。异常流程应该在IVOR2、IVOR3和IVOR1异常向量上放置适当的软件处理程序。内核将几个不同的异常原因混合到一个向量上因此软件处理程序必须首先找到中断的原因。IVOR1意味着系统几乎不可能恢复系统应该安全终止。手动触发ECC错误ECSM_EEGR寄存器用于在ECC内存中强制生成单位和双位数据反转最值得注意的是用于测试目的的sram以检查ECC保护。MEMUMEMUMemory Error Management Unit内存错误管理单元MEMU负责收集和报告与ECC逻辑相关的错误事件•系统flash•外围系统RAM•code flash常见问题常见的导致ECC错误的原因1、MCU上电或者破坏性reset之后直接对没有初始化过的SRAM空间进行读访问或者执行小于32bit/64bit的写操作。2、在两次擦除之间向同一个Flash地址写入两次不同的值。怀疑最大可能是这个原因需要写入3、在Flash program或者Flash erase过程中突然断电或异常终止。4、电磁辐射ECC错误的现象以及判断方法对RAM或者Flash执行读操作后代码跑飞MCU进入IVOR2/IVOR1/IVOR3内核异常或者MCU异常复位。判断方式调试时可以在IVORx异常处理入口加断点查看SPC56 ECSM相关寄存器的值ESR/FEAR/FEDR/REAR/REDR或者SPC58 MEMU模块寄存器或者查看Flash模块寄存器的状态值MCR/ADR,以及查看内核寄存器的状态值ESR/DEAR。具体寄存器的含义请查看MCU的参考手册例如SPC560B RM以及内核的参考手册例如e200z0RM。通过查看这些寄存器的值可以判断是否产生了ECC错误以及访问什么地址的时候触发了ECC错误。一般情况下对SRAM进行重新写入即可以修复SRAM ECC错误。对Flash进行擦除也可以修复ECC错误或者不再去读内容被破坏的内存也可以规避掉ECC错误的产生。采用何种方式取决于用户的系统需求。ECC是Memory的一种保护机制用来校验内存数据完整性和一致性的安全机制。产生了ECC错误并不代表Flash/RAM内存的物理损坏。