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.

[参考译文] TMS320C6657:安全违例、本地 L1/L2高速缓存存储器故障

Guru**** 2587345 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/634604/tms320c6657-security-violation-local-l1-l2-cache-memory-fault

器件型号:TMS320C6657

您好!  

我们有一款基于 C6657的产品、我们收到了"安全违规、本地 L1/L2缓存存储器故障"异常。

我们的系统处理2个视频流、每个内核处理来自每个摄像头的视频。

  • 通常、一个内核获得例外、但另一个内核继续运行。
  • 2个内核共享完全相同的代码、但每个内核都有自己的数据段。
  • 我们尝试了几个不同版本的软件、但都有问题。 我现在使用的是:SYS/BIOS 6.40.04.47 + XDCtool 3.30.004.52 + TI 编译器8.2.2。
  • 如果我们使用"-opt_for_space=3"、则运行时间会更长。
  • 如果我们在 config 中禁用 MemoryProtection,则它的运行时间会更长--这可能是一种变通办法,但它是最后一个选项。

您能告诉我什么原因导致了异常吗?  

这是因为内核尝试访问  0xd46b40 (位于保留空间中)、所以缓存控制器尝试缓存存储器吗?

您对如何进行调试有什么建议吗?  

以下是 PC 周围的汇编代码(0x800bd782)、以防万一:

。 (笑声)
2357 S32 j = rr*(rect->Wide >1)+(_cc>1);
800bd688:02030001 SPMASK M2
800bd68c:098E6C83 ||^² MPY.M2 B19、B3、B19
800bd690:0316CBA6 || LDNDW.d2T2 *+ B5 (B22)、B7:B6
2385 Sumi +=_dotpu4 (pval、0x01010101);
800bd694:037ECBA4 LDNDW.d2T1 *+ B31 (B22)、A7:A6
800bd698:096881B2 DOTPU4.M2 B4、B26、B18
2357 S32 j = rr*(rect->Wide >1)+(_cc>1);
800bd69c:0007701 SPMASK L1
800bd6a0:0E4EB079 ||^Ω ADD.L1x A21、B19、A28
800bd6a4:0E9081B2 || DOTPU4.M2 B4、B4、B29
2385 Sumi +=_dotpu4 (pval、0x01010101);
800bd6a8:08E901B3 DOTPU4.M2 B8、B26、B17
800bd6ac:0910B1B0 || DOTPU4.M1X A5、B4、A18
2361 Sumi = sumi2 = sumim = 0;
800bd6b0:002B0001 SPMASK L2、S2
800bd6b4:0C00002B ||^Ω MVK.S2 0x0000、B24
800bd6b8:0D80A35B ||^ MVK.L2 0、B27
800bd6bc:042091B1 || DOTPU4.M1X A4、B8、A8
800bd6c0:04A101B2 || DOTPU4.M2 B8、B8、B9
800bd6c4:AF67 SPMASK L1、S1、S2、D2
800bd6c6:0292 ||^μ A MVK.S1 0、A21
800bd6c8:0C00A359 ||^Ω MVK.L1 0、A24
800bd6cc:0393 ||^μ A MVK.S2 0、B23
800bd6ce:19F7 ||^μ A MVK.D2 0、B19
800bd6d0:039A11B1 || DOTPU4.M1X A16、B6、A7
800bd6d4:0F18E37B || PACKLH2.L2 B7、B6、B30
800bd6d8:0E18C1B2 || DOTPU4.M2 B6、B6、B28
800bd6dc:E14800CC fphead N、h、W、BU、nobr>、 Nosat,0001010b
2385 Sumi +=_dotpu4 (pval、0x01010101);
800bd6e0:0498C1B1 DOTPU4.M1 A6、A6、A9
800bd6e4:0368C1B3 || DOTPU4.M2 B6、B26、B6
800bd6e8:0210A37A || PACKLH2.L2 B5、B4、B4
2386 sumim +=_dotpu4 (pval、mval);
800bd6ec:02C4C1B1 DOTPU4.M1 A6、A17、A5
800bd6f0:0421237B || PACKLH2.L2 B9、B8、B8
800bd6f4:086BC1B2 || DOTPU4.M2 B30、B26、B16
2385 Sumi +=_dotpu4 (pval、0x01010101);
800bd6f8:02E8D1B1 DOTPU4.M1X A6、B26、A5
800bd6fc:0E1081B3 || DOTPU4.M2 B4、B4、B28
800bd700:0318E378 || PACKLH2.L1 A7、A6、A6
2389 sumia +=_dotpu4 (pvala、0x01010101);
800bd704:04FA11B1 DOTPU4.M1X A16、B30、A9
800bd708:03E881B2 || DOTPU4.M2 B4、B26、B7
2390 sumima +=_dotpu4 (pvala、mval);
800bd70c:0310B1B1 DOTPU4.M1X A5、B4、A6
800bd710:042101B2 || DOTPU4.M2 B8、B8、B8
2386 sumim +=_dotpu4 (pval、mval);
800bd714:0227907B ADD.L2X B28、A9、B4
800bd718:0394E079 || ADD.L1 A7、A5、A7
800bd71c:01C4C1B1 || DOTPU4.M1 A6、A17、A3
800bd720:046901B2 || DOTPU4.M2 B8、B26、B8
800bd724:0413A07B ADD.L2 B29、B4、B8
800bd728:021E4079 || ADD.L1 A18、A7、A4
800bd72c:03A091B1 || DOTPU4.M1X A4、B8、A7
800bd730:089B51B2 || DOTPU4.M2X B26、A6、B17
800bd734:032121E3 ADD.S2 B9、B8、B6
800bd738:02110079 || ADD.L1 A8、A4、A4
800bd73c:0418C1B1 || DOTPU4.M1 A6、A6、A8
800bd740:08FBC1B3 || DOTPU4.M2 B30、B30、B17
800bd744:0494D07A || ADD.L2X B6、A5、B9
800bd748:0A92A079 ADD.L1 A21、A4、A21
800bd74c:0B9AE07B || ADD.L2 B23、B6、B23
800bd750:032361E3 || ADD.S2 B27、B8、B6
800bd754:04C92842 || ADD.D2 B18、B9、B9
800bd758:0970C07B ADD.L2 B6、B28、B18
800bd75c:031D01E3 || ADD.S2 B8、B7、B6
800bd760:03C52843 || ADD.D2 B17、B9、B7
800bd764:048D2078 || ADD.L1 A9、A3、A9
800bd768:0318E079 ADD.L1 A7、A6、A6
800bd76c:099A607B || ADD.L2 B19、B6、B19
800bd770:0C1F01E3 || ADD.S2 B24、B7、B24
800bd774:00B7 || ADD.D2 B16、B17、B16
800bd776:6031 ADD.L2 B19、B16、B19
800bd778:091B0079 || ADD.L1 A24、A6、A18
800bd77c:E4080800 fphead N、h、W、BU、nobr>、 Nosat、0100000b
800bd780:409B ADD.S2 B18、B17、B17
800bd782:1C66 SPKERNEL 0、0
800bd784:0C264079 || ADD.L1 A18、A9、A24
800bd788:0DA231E2 || ADD.S2X B17、A8、B27
2477 SURF[j+i]=诺尔米;
800bd78c:0BF181E1 增补件 S1. A12、A28、A23
800bd790:0A800042 || MVK.D2 0、B21 

谢谢、
tamo2.

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

    我已通知 RTOS 团队。 他们的反馈将在此处发布。

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

    有一个 Wiki 页面对 processors.wiki.ti.com/.../MemoryProtectionOnKeystoneDevices 进行了说明。 MPFAR 指示访问地址并看起来无效。 MPFSR 记录访问类型。 返回指针 B3也损坏。

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

    MPFSR = 0x120、这意味着它是"本地"(= DSP core0)、它是一个监控器读取。

    所以... DSP 内核0本身试图读取无效地址0xD46B40、对吧?

    如果您看看反汇编、这种情况会发生在哪里? 我不是 C66x 专家、但我看不到 PC 周围的任何存储器访问(0x800bd782)。

    这是否意味着异常发生在 ISR 或其他任务中?
    或者、这是否是因为异常发生和报告之间存在较大的延迟?