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.

[参考译文] TMS570LS1114:SafeTI-Lib VIM 奇偶校验自检偶尔会导致 VIM-RAM 中断表发生更改

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/610242/tms570ls1114-safeti-lib-vim-parity-selftest-occasionally-causes-change-in-vim-ram-interrupt-table

器件型号:TMS570LS1114

我们在项目中使用 SafeTI Lib 2.3.1来执行各种自检。

我们使用的测试之一是 sl_SelfTest_VIM (VIM_SRAM_parity)。

对于该测试、我们观察到以下随机错误:

- sl_SelfTest_VIM (VIM_SRAM_parity)本身成功通过。

-测试完成后、vimRAMLoc ((volatile UINT32 *) 0xFFF82008U)的内容具有错误的值。

vimRAMLoc 的变化似乎只影响低字节。 (到目前为止、这可能是巧合)

我们每秒执行一次自检。

大部分时间、一切都很好。

在运行五个设备的情况下、该错误每天发生一次。

我们在 vimRAMLoc 的 CCS 调试器中设置了一个写入观察点、以检查我们的源代码。

但是、没有从源代码到该地址的写入访问权限。

我们还将 vimRAMLoc 的地址更改为0xFFF820U (VIM 通道7 RTI 溢出1)。

然后,新地址上出现错误。

我们没有对此进行解释、因为 SL_SelfTest_VIM (VIM_SRAM_pariation_test)

不会写入 vimRAMLoc、只会更改 vimRAMParLoc 中的奇偶校验位。

这种行为的原因可能是什么?

此致、Jan

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

    代码不会写入 vimRAMLoc、因此不应更改此位置中的内容。 0xFFF82008的内容为0x00018C04 (在我的例子中是 phantomInterrupt 的地址)。 发生错误后的更改值是多少? 奇偶校验地址(0xFFF82408)的值是多少? 该代码在 HDK 上运行了将近2个小时、我目前还没有看到问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、

    在下表中、发生错误后有更改的值(黄色)。 Phantom 中断标记为红色、使用的中断标记为绿色(Ch1不用作仅用于自检的中断通道)。 在"A7-12.07.17"和"H1-13.07.17"列中、通道7 (0xFFF82020)用于 VIMParity 测试。

    下面列出了相应的奇偶校验结果(0xFFF82400 - 0xFFF82420)。 未标记"零"、"一"标记为绿色。

    如果发生 VIMCRC、则有两种情况:

    1.仅显示 VIMCRC。

    2. VIMCRC 恰好在 VIMParitySelftest 错误之后出现。 在这种情况下、可以通过读取 TMS (由 SCI 触发)对应的表条目(例如0xFFF82008)来"复位" VIMCRC。

    地址(十六进制) 别施雷本格 中断 H1-05.07.17 A7-05.07.17 A7-07.17 A1-10.07.17 A6-11.07.17 A7-12.07.17 H1-13.07.17 A3-13.07.17 A6-17.07.17 H1-17.07.17
    FFF82000 幻象 0x00060440 0x00060220 0x00060238 0x0005FFDC 0x0005FFDC 0x0006039C 0x00060130 0x000603D8 0x0006039C 0x0006039C
    FFF82004 通道0 ESM 高电平 0x0005EDEC 0x0005EA78 0x0005EA90 0x0005E988 0x0005E988 0x0005EBF4 0x0005EADC 0x0005EC30 0x0005ED48 0x0005ED48
    FFF82008 通道1 保留 0x00060400 0x00060200 0x00060200 0x0005FF00 0x0005FF00 0x0006039C 0x00060130 0x00060301 0x00060300 0x00060301
    FFF8200C 通道2. RTI 比较0 0x00055444 0x00055740 0x00055758 0x00054FE0 0x00054FE0 0x000558BC 0x00055134 0x000558F8 0x00055248 0x00055248
    FFF82010 通道3. RTI 比较1 0x00055464 0x00055760 0x00055778 0x00055000 0x00055000 0x000558DC 0x00055154 0x00055918 0x00055268 0x00055268
    FFF82014 通道4 RTI 比较2 0x00060440 0x00060220 0x00060238 0x0005FFDC 0x0005FFDC 0x0006039C 0x00060130 0x000603D8 0x0006039C 0x0006039C
    FFF82018 通道5. RTI 比较3 0x00060440 0x00060220 0x00060238 0x0005FFDC 0x0005FFDC 0x0006039C 0x00060130 0x000603D8 0x0006039C 0x0006039C
    FFF8201C 通道6. RTI 溢出0 0x00060440 0x00060220 0x00060238 0x0005FFDC 0x0005FFDC 0x0006039C 0x00060130 0x000603D8 0x0006039C 0x0006039C
    FFF82020 通道7. RTI 溢出1. 0x00060440 0x00060220 0x00060238 0x0005FFDC 0x0005FFDC 0x00060300 0x00060101 0x000603D8 0x0006039C 0x0006039C
    FFF82400 幻象 奇偶校验 0x00000001 0x00000001 0x00000001 0x00000000 0x00000000 0x00000001 0x00000000 0x00000001   0x00000001
    FFF82404 通道0 奇偶校验 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000001 0x00000000   0x00000001
    FFF82408 通道1 奇偶校验 0x00000000 0x00000000 0x00000000 0x00000001 0x00000001 0x00000001 0x00000000 0x00000000   0x00000000
    FFF8240C 通道2. 奇偶校验 0x00000000 0x00000001 0x00000001 0x00000001 0x00000001 0x00000001 0x00000001 0x00000001   0x00000000
    FFF82410 通道3. 奇偶校验 0x00000001 0x00000000 0x00000000 0x00000001 0x00000001 0x00000001 0x00000001 0x00000001   0x00000001
    FFF82414 通道4 奇偶校验 0x00000001 0x00000001 0x00000001 0x00000000 0x00000000 0x00000001 0x00000000 0x00000001   0x00000001
    FFF82418 通道5. 奇偶校验 0x00000001 0x00000001 0x00000001 0x00000000 0x00000000 0x00000001 0x00000000 0x00000001   0x00000001
    FFF8241C 通道6. 奇偶校验 0x00000001 0x00000001 0x00000001 0x00000000 0x00000000 0x00000001 0x00000000 0x00000001   0x00000001
    FFF82420 通道7. 奇偶校验 0x00000001 0x00000001 0x00000001 0x00000000 0x00000000 0x00000001 0x00000001 0x00000001   0x00000001

    此致、

    Helge Pape

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

    您好 QJ、

    我的同事 Helge 已经为您发布了一个包含 VIM 中断表部分的表。 (请参阅上面的文章)。

    为了澄清:我们在多个器件和软件版本(用10列表示)上进行了测试。

    因此、中断地址并不总是相同的。

    在第6列和第7列中、我们修改了 VIM 奇偶校验自检、以使用地址 FFF8201C 而不是 FFF80008。 (VIM 通道7)。

    黄色单元格显示的值与预期的幻象中断不同。

    此致 Jan

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

    您好 QJ、

    我对失败的 VIM 奇偶校验自检进行了一些更新:

    在我们的项目中、有两个活动中断、RTI 和 CAN1HI。

    出于测试目的、我们将 DCAN1上的总线负载增加了20倍。

    因此、VIM 奇偶校验自检错误的频率也增加了。

    那么、现在的问题是:

    -如果 VIM 奇偶校验自检中断-例如- CAN 中断-将发生什么情况?

    这是否会导致上述行为?

    此致、Jan

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

    A7、H1和 A6是计算机名称、07.07.17、05.07.17是测试日期吗? 如果 A7是计算机名称、那么为什么2个测试之间所有中断的地址都不同? 例如、ESM 高电平的地址为0x0005EA78 (A7、7月5日)和0x0005EA90 (A7、7月7日)。 发生错误之前的地址是什么? 为什么未测试的通道中存在奇偶校验错误"0x00000001"?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、

    A1-A7和 H1是被测器件的名称。 相同器件的地址不相等、因为有不同的软件版本。 A7、7月5日是与7月7日 A7相同的器件、但使用"其他"软件、因此中断通道的地址会发生更改。

    发生错误之前的地址是 Phantom Interrupt (红色)的地址。 例如:H1-05.07.17 Ch1 = 0x00060400 (错误后);H1-05.07.17 Ch1 = 0x00060440 (错误前)。

    “奇偶校验错误0x00000001”是什么意思? 地址0xFFF82400-0xFF827FC 的奇偶校验位的内容是否用于奇偶校验? 例如:A7-05.07.17 Phantom = 0x00060220具有奇偶校验(=0) 、Ch1 = 0x0005EA90具有奇偶校验(=1)。

    此致、

    Helge

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

    您好 QJ、

    我们的主题是否有新的发现?

    我们现在的解决方法是在 测试之前保存 VIMParity 测试单元(0xFFF82008 Ch1"保留")、并在测试后覆盖损坏的单元。 因此不再存在 VIMCRC 误差。

    为了防止 VIMParity 错误(由 CAN 中断触发)、我们在测试之前停用 CAN 中断、然后重新启用中断。

    这两种方法解决了我们的问题、但我们仍在等待对具体问题的解释。

    此致、

    Helge