ZHCABH9A October   2018  – March 2022 TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1

 

  1.   C2000 存储器开机自检 (M-POST)
  2.   商标
  3. 1引言
    1. 1.1 存储器测试要求概述
    2. 1.2 术语和定义
  4. 2存储器验证的系统挑战
    1. 2.1 存储器测试流程
    2. 2.2 SRAM 测试算法覆盖范围
    3. 2.3 ROM 测试算法覆盖范围
  5. 3总结
  6. 4参考文献
  7.   A F28004x 上的 M-POST 实现
    1.     A.1 启用测试
    2.     A.2 M-POST 持续时间
    3.     A.3 M-POST 结果
    4.     A.4 定期自检
  8.   修订历史记录

存储器测试流程

M-POST 在可编程内置自检 (PBIST) 解决方案的帮助下启用,用于器件的制造测试。除了制造测试期间使用的自动化测试设备 (ATE) 接口外,PBIST 还具有用于现场自检的 CPU 可配置接口。

PBIST 架构由一个专门用于高效存储器测试的控制器组成。该控制器设计有一个专用寄存器集和一个专门针对存储器测试的高度专业化的流水线和指令集。此外,PBIST 引擎配备了多个读取和写入存储器端口或总线,使其能够有效地并行测试多个存储器实例。PBIST 控制器也可以访问 PBIST ROM。PBIST ROM 用于存储测试例程,以供 PBIST 引擎提取和执行。这些测试例程由 PBIST 控制器提取,然后在多个片上存储器实例上并行执行。由于专门的架构和测试例程,PBIST 能够以非常有效的方式,在晶体管级别上对已实现的 SRAM 和 ROM 提供非常高的诊断覆盖范围。由于 PBIST 控制器可以直接访问 ROM 和 SRAM,它甚至能够在配备 DCSM(双区域代码安全模块)的器件上测试安全存储器实例。有关在 F28004x 上利用 DCSM 的详细信息,请参阅使用 C2000™ MCU 实现 EV/HEV 安全功能共存

GUID-7BFA1CCC-D6DE-4F97-9F49-CDB244A1C184-low.gif图 2-1 PBIST 架构

图 2-2 描述了执行存储器自检所涉及的步骤。

GUID-E10B90CA-5CD5-4522-8AAB-12E3F96AC59C-low.gif图 2-2 M-POST 执行流程
  1. 如果通过配置客户 OTP 启用,M-POST 就会在每个上电复位序列期间执行。测试仅在上电复位期间执行,不会在其他复位(XRSn、WDRSn、调试器复位等)期间执行。
  2. 用于测试存储器的代码位于引导 ROM 中,所以无法使用 PBIST 测试引导 ROM。因此,在 PBIST 之前,将进行单独的引导 ROM 校验和测试。如果引导 ROM 校验和测试失败,将不执行 PBIST 测试的其余部分。测试状态将被复制到 SRAM。
  3. 在使用 PBIST 执行任何测试之前,会执行一个始终失败测试用例。这是为了验证 PBIST 控制器的正常运行及其指示故障的能力。测试状态位在测试完成时注册。如果测试失败(即始终失败测试通过),系统将绕过整个测试序列,并将测试状态返回给应用程序代码。如果测试通过,则在下一阶段测试整个器件存储器集(引导 ROM 除外)。
  4. 所有 SRAM 都将使用 March13n 进行测试,除了引导 ROM 之外的所有 ROM 都将使用 ROM 签名计算算法进行测试。
  5. 一旦测试完成,所有的 CPU RAM 都会被初始化。
  6. 系统会在每个测试序列期间实施超时功能,以识别测试是在规定时间内完成还是由于故障而延迟。
  7. PBIST 测试的状态(包括由于校验和测试失败而未执行的测试、始终失败测试的状态、存储器自检状态和超时错误)将被传达给应用。
  8. 如果存储器测试失败,该器件将不适合运行任何功能安全应用程序。引导 ROM 将让应用程序代码决定未来的进程。应用程序可能会触发 NMI(在用软件)并使用 ERROR_STS 引脚让外部器件得知发生了故障。
  9. 如果启动存储器测试失败,应用程序将没有足够的信息来识别故障存储器。应用程序可能必须为此运行诊断。诊断序列可以对各个存储器实例执行测试并识别故障存储器。