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.

[参考译文] AM2634-Q1:SDL ATCM 和 BTCM 演示问题

Guru**** 2535750 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1219433/am2634-q1-sdl-atcm-and-btcm-demos-problems

器件型号:AM2634-Q1

大家好、  

我正在将 SDL_ECC_ATCM 和 SDL_ECC_BTCM 的演示集成到一个工程中、但其功能不正确、请帮助检查。  

该项目附有:  

提醒:这个项目在 R5FSS1-0中运行。 在此项目中、我关闭了缓存、而在调试时、我不打开"variables"、"expressions"和"Memory Browser"。  

问题如下:  

1)。 ATCM 和 BTCM 的 ECC 初始化将更改 TCM 中的数据。 在代码中,我添加了两个函数,一个是 用于将 ATCM / BTCM 的初始值存储到两个数组;另一个是 用于检测 TCM 内容变化的 TestTcmValueChange ()。 首先,我 在 ECC init 之前插入 vTcmInitialValueStore(),然后 在 ECC init 之后插入 TestTcmValueChange(),它显示内容已更改;  

2)。 不出所料、我发现2位或1位错误注入也会改变数据、您可以从代码中检查、我插入了 VTcmInitialValueStore 和 TestTcmValueChange 。  

3)。 另一个奇怪的现象是、 2BitProjectTest 或 1BitProjectTest 有时无法通过、并且测试在以下循环中停止:  

4)。 ATCM 和 BTCM ECC 特性由 R5指令启用、并且应该访问 R5寄存器来启用 ECC 特性。 然而、注入错误函数、即 API- SDL_ECC_expractError、是由 ECC 聚合器生成的、我对它很好奇、为什么启用功能和注入错误不是通过一条相似的路径 、而是通过两种不同的方式。  

请检查这个问题、我和客户都很困惑... SDL ECC 的演示非常不可预测、而且很难调试。  

Br、  

怎样的  

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

    为了使这一问题更加清楚,我想在此补充一点基础。  

    我将上述项目修改如下:  

    请使用这一个。 我也在项目中添加了 SRAM ECC 演示。  

    我有以下的创始,请你也看看你的一方:  

    1)。 当不启用 TCM ECC 和事件总线时、以下代码为:  

      SRAM ECC 测试将不会更改 ATCM / BTCM 的内容。  

    2)。 但是、如果按照以下方式添加代码、但不执行 ATCM / BTCM ECC 自检、  

      SRAM ECC 测试将更改 ATCM / BTCM 的内容。  

    3)。 添加了启用事件总线但不启用 ATCM / BTCM ECC 的代码、  

      SRAM ECC 测试也将更改 ATCM / BTCM 的内容。  

    4)。 最后、添加启用事件总线 、同时为 ATCM 启用 ECC、并执行 ATCM / BTCM ECC 自检的代码、即:  

     SRAM ECC 测试和 ATCM / BTCM 自检将更改 ATCM / BTCM 的内容。  

    请 BU 侧尝试我分享的以上项目、并给出您的意见。  

    此致、  

    怎样的  

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

    您好、Will、

    我将在结束时进行测试、然后明天 早上回来与您联系

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

    您好、QJ:  

    谢谢。 我还发现、在'SDL_UTILS_ENABLE_EVENT_BUS'函数中、它也将为 TCM 启用 ECC:  

    这意味着可以删除 TCM 的 ECC 初始化...

    此致、  

    怎样的  

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

    您好、Will、

    如会议和消息中所述、默认情况下不启用 ECC (TCM 和 SRAM)。 在存储器初始化之前必须启用 ECC、以为存储器内容生成 ECC 代码。 如果未启用 ECC、则在读取存储器时会得到损坏的数据。 我注意到、在锁步模式下、存储器初始化函数中的存储器可能不正确(ATCM 为0x4000、BTCM 为0x2000)。

    可删除用于 TCM 的 ECC 初始化。

    是的、您可以在 ECC init 函数中删除 ECC 使能函数调用。

    当运行您的项目时、代码会停留在: