This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RM48L952:安全手册 RM48和 SafeTI 诊断库/ HalCoGen 之间的关系

Guru**** 2609895 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/761384/rm48l952-relation-between-safety-manual-rm48-and-safeti-diagnostics-library-halcogen

器件型号:RM48L952
主题中讨论的其他器件:HALCOGEN

您好!

对于我们使用 Hercules RM48L52 MCU 的应用、我们有几个关于安全手册[spnu577d]的问题、主要 是关于 SafeTI 诊断库(V2.4.0)和 HalCoGen 的关系。 我在 SafeTI 诊断库的用户指南中找到了"API 映射安全手册"页面。 不过,我有时不清楚哪一项论点须交予各职能部门,以涵盖某项测试。
1) 1)安全手册使用两种类型:诊断和诊断测试。
我们必须:
A。 选择用于诊断系统安全关键组件的诊断程序
B。 确保已启用它们(即在 RAM 上启用 ECC)
c。 定义此诊断报告的错误的错误处理(即 ISR)
D。 实施/使用(单个?) 涵盖此诊断的"诊断测试"
这是´s 我如何解释该表的。 是这样吗?

2) 2) RAM14/VIM12/DMA16均为 PBIST 的软件测试。 SafeTI 库是指带有注释的"sl_SelfTest_PBIST"函数
"在 PBIST 上使用失败测试-有关详细信息、请参阅器件安全手册。"
《安全手册》规定:
"通过选择一个应该失败的算法并查看是否、可以配置 PBIST 逻辑
PBIST 逻辑在这种情况下报告一个错误。 例如、可以在上执行读写测试
只读存储器、以确保报告故障。 另一种方案是运行存储器测试
实际存在于器件存储器中的位数更多。"
HalCoGen 生成"pbistSelfCheck()函数来执行这个测试。
单次测试(写入 ROM)是否足以保证 PBIST 的正常运行、或者我是否必须 为每个 内存运行一个失败的 PBIST?
3) RAM15/RAM19/CPU9/VIM11/VIM13/FLA15/.. "自动覆盖"
"Auto Coverage" (自动覆盖)被称为诊断测试多次。 解释说、由于2^n 值中只有1个是正确的、因此如果 CRC 计算/PBIST 中存在故障、不可能生成正确的值。 这似乎由"文本执行时间"列中的"N/A;隐含在 CRC/PBIST 操作中"确认。 如果我们执行 SRAM PBIST (RAM7A)、那么我们是否可以自动声明 RAM15 PBIST 自动覆盖已完成?
4) RAM18 "硬件 CRC 的软件测试"
如果 CRC 外设仅用于计算 CRC、而不是根据"黄金值"对其进行评估(这是由 CPU 完成的)、那么有意引入错误以在计算的 CRC 和"黄金值"之间创建不匹配似乎毫无意义。 同意?
5) CPU6/CPU7:"静态配置寄存器的定期软件回读/ CPU 寄存器的软件回读"
从 Cortex R4F TRM 中,我花了一段时间来弄清这里的寄存器是什么样子的,CPU 协处理器好像是:浮点单元、TCRAM、...  使用 MRC 和 MCR 指令(在由 HalCoGen 生成的 sys_core.asm 中)来完成对这些控制寄存器的设置。 例如、这就是启用 ECC 的方式。
在我看来、实现回读只能通过汇编实现、在 SafeTI 库或 HalCoGen 中、我找不到这方面的支持函数。 不支持是否正确?
在哪里可以找到对协处理器配置寄存器的监督?
6) FLA7:"闪存扇区保护"/FLA13 "闪存扇区保护单元的软件测试"
  我不清楚闪存扇区保护的目的。 它是为了防止 CPU (某种类型的引导加载程序)或外部源(JTAG?)意外擦除闪存组?
如果应用不使用闪存写入 API、是否有必要对此进行测试?
7) 7) INC2 "PCR 访问管理"
如何禁用未使用的外设? HalCoGen 中没有 PCR 选项卡、我找不到 API 函数来执行此操作。 当您取消选中"ENABLE DRIVER"复选框时、HalCoGen 是否自动完成此操作?
8) 8) ESM2B 错误部件报告
这可以通过执行 CCM 自检进行测试、因为这会报告 ESM 错误、但这仅测试1个错误路径。
并非所有 ESM 错误路径都可以被测试(因为某些错误路径将直接导致一个中止)。
测试一个错误路径是否足以声明已测试此诊断?

9) DMA9A/DMA9B/DMA18

SafeTI 诊断库文档显示 sl_SelfTest_DMA 是用于测试这些(和 DM12)的函数。
在 R4器件上、该函数可以执行两个测试 DMA_software_test 和 DMA_SRAM_parity 测试。 很明显、DMA_SRAM_parity 测试与 DMA12匹配。
不清楚哪个测试 DMA_software_test 匹配:

DMA9A/B:“DMA MPU 功能的引导时间/定期软件测试,包括错误测试”

或 DMA18:" MPU 功能的软件测试"。

谢谢、

Karel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Karel、

    1.您的理解是正确的。
    2.单次测试(写入 ROM)足以进行 PBIST 自检。
    3.自动覆盖诊断措施基于随机故障导致 CRC 或 BIST 等机制错误通过测试的可能性。 换言之、如果在执行硬件 CRC 测试/算法期间发生随机故障、那么故障发生的可能性非常小、以至于 CRC 校验失败现在会通过。 这是一种基于算法稳健性的内置安全措施、只要使用给定算法(CRC、LBIST、PBIST)(仅基于错误通过的可能性)、就会包含该措施。 自动覆盖机制没有故障检测。 自动覆盖仅用作诊断测试。
    4.你是对的。 需要使用黄金 CRC 值(预期 CRC 值)来检查计算出的 CRC 值。
    5. HalCoGen 和 Diagnostc 库没有任何函数可回读协处理器寄存器。
    6。FBSE (闪存组扇区使能寄存器)为每个扇区提供一个使能位来启用/禁用编程/擦除访问。 这个机制能够减少闪存存储器意外编程的可能性。 例如、在引导加载程序中、在启用闪存扇区之前、您无法通过调用编程命令对固件进行编程。
    7.请使用以下 PCR 寄存器来启用/禁用到外设的时钟
    PSPWRDWNSET0/1/2/3和 PSPWRDWNCLR0/1/2/3
    HALCoGen 没有此选项。
    8.您可以自检或 RAM ECC 自检来测试 ESM 错误路径报告。
    9. DMA9A/DMA18:访问 MPU 受保护的存储器区域并生成 ESM 错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、QJ Wang、

    感谢您能很快回来。
    有些问题对我来说还不是很清楚:

    1) 1)已回答
    2) 2)回答了
    3) 3)由于自动覆盖(CRC/PBIST 的)是 CRC/PBIST 的属性、因此如果执行了 CRC/PBIST、它会自动完成、对吧?
    4) 4)回答了
    5) 5)已回答(协处理器寄存器可在 ARM R4F TRM 中找到)
    6) 6)回答了
    7) 7)回答说、HalCoGen 会生成代码来设置这些寄存器、并与表6-20结合使用。 RM48 TRM p 79的器件存储器映射、以查看哪个外设为0-31。
    8) 8)好的
    9) 9)调用 sl_SelfTest_DMA (DMA_software_test)涵盖了哪个测试?
       DMA9A/9B 或 DMA18、还是两者都有?

    此致、

    Karel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Karel、

    3.你是对的。
    5、可以在 ARM R4F TRM 中找到协处理器寄存器
    9.这两种类型都使用。