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.

[参考译文] AM263P4-Q1:关于 TCM 's ECC 检查

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1630393/am263p4-q1-regarding-tcm-s-ecc-check

器件型号: AM263P4-Q1

您能否提供用于检测 AM263Px MCU+ SDK 09.02.00 的 TCM (ATCM、BTCM) 中 ECC 错误的 API 及其调用顺序的详细规格? 我尝试根据样本 (sdl_ecc_r5_atcm0) 创建原型、但在 sdl_ecc_initMemory 函数中中止。

​​可以将哪些值指定为参数? 可能的返回值是多少? 调用该函数有哪些限制? 具体来说、它是否可以在锁步操作期间使用? 是否可以在使用正在进行 ECC 校验的存储器时使用该函数? 配置时是否保留内存内容?

此外、如果仅在 Core0-0 上配置 ESM 设置和回调函数设置、是否会在从其他内核访问期间发生 ECC 错误时通知 Core0-0?

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

    您好、  

    Jagadish。

    对 SDL_ECC_initMemory 施加的限制是否也适用于其他存储器类型 (OCSRAM)?
    约束条件:
    •在使用目标存储器时无法调用
    •在初始化期间保留内存内容
    •必须在启用 ECC 的情况下访问存储器之前调用

    有关如何使用 SDK 的响应
    正确的回调序列:
    1.先初始化 ESM 模块
    2.注册 ESM 通知回调
    3.使用 SDL_ECC_initMemory 配置 ECC 内存区域
    4.在 ESM 中启用 ECC 错误通知
    5.处理回调函数中的错误
    并调用 sdl_ecc_aggInjectError 函数
    但是、SDK V9.2 样片看起来是
    SDL_ECC_initMemory <- 3.
    sdl_esm_init <- 2.注册 ESM 通知回调?
    sdl_ecc_init <- 4.在 ESM 中启用 ECC 错误通知?
    并调用 sdl_ecc_injectError 函数。
    响应似乎与调用序列不匹配、并且也不存在 SDL_ECC_AGGInjectError。
    “1.Initialize ESM module first“是否需要调用与用于 SDL_ESM_INIT 的函数不同的函数?

    C:\ti\mcu_plus_sdk_am263px_09_02_00_56\examples\sdl\ecc

    此致、

    Imaoka.

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

    尊敬的 Jagadish:
    由此给您带来的不便、我们深表歉意、如果您能在今天结束前提供您的回复、我们将不胜感激。

    此致、Imaoka

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

    你好、Imaoka、

    对延迟的回复表示歉意、我在这一平均时间内还遇到了其他优先问题、请确保将来能提供快速的回复。

    对 SDL_ECC_initMemory 施加的限制是否也适用于其他存储器类型 (OCSRAM)?

    是、的限制 SDL_ECC_initMemory 适用于所有存储器类型、包括 OCSRAM。

    似乎响应与调用序列不匹配、并且 sdl_ecc_aggInjectError 也不存在。
    “1.Initialize ESM module first“是否需要调用与用于 SDL_ESM_INIT 的函数不同的函数?

    我建议您仅遵循 SDK 9.2 序列、因为它已经过测试。

    除之外没有单独的“初始化 ESM 模块优先“函数 SDL_ESM_init()

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    目前、对于 OCSRAM、即使在开始使用 OCSRAM 后调用了 SDL_ECC_initMemory、也会返回 SDL_PASS。
    在这种情况下,它是否意味着它只是似乎工作,但它的运作不能得到保证?
    “使用的目标存储器“实际指的是哪种情况?
    例如:

    在调用 SDL_ECC_initMemory 之前、至少从该存储器中读取或写入一次该存储器、或
    在执行 SDL_ECC_initMemory 时、另一个内核或中断对存储器进行访问?

    此外、如果 SDL_ECC_initMemory 返回 SDL_PASS、判断此约束不适用以及存储器已成功初始化是否正确?


    请在 5 月 14 日前答复。

    此致、Imaoka。

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

    尊敬的 Jagadish:

    对于给您带来的不便、我深表歉意、但请您对三天前我提出的询问做出回复。
    此致、Imaoka。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Imaoka、

    对延迟的回复表示歉意。

    [引述 userid=“633951“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1630393/am263p4-q1-regarding-tcm-s-ecc-check/6340814

    目前、对于 OCSRAM、即使在开始使用 OCSRAM 后调用了 SDL_ECC_initMemory、也会返回 SDL_PASS。
    在这种情况下,它是否意味着它只是似乎工作,但它的运作不能得到保证?
    “使用的目标存储器“实际指的是哪种情况?
    例如:

    在调用 SDL_ECC_initMemory 之前、至少从该存储器中读取或写入一次该存储器、或
    在执行 SDL_ECC_initMemory 时、另一个内核或中断对存储器进行访问?

    [/报价]

     SDL_ECC_initMemory 中的主函数 是 SDL_ECC_memoryRefresh。

    在此刷新中、我们将只读回内存中的数据、并将相同的数据写入内存、这将确保为整个内存生成适当的 ECC。

    这里我所说的“正在使用的目标存储器“是指、只需避免并发访问存储器即可。  

    [SDL_ECC_initMemory 正在执行]->【另一个内核写入同一区域】
    结果:
    - ECC 位可能与实际数据不一致
    -函数仍可能返回 SDL_PASS
    如果没有对该存储器的多核访问、那么使用此 API 不应出现任何问题。
    --
    此致、
    Jagadish。