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.

[参考译文] CCS/AM3359:ISDK 01.01 .02.01 问题中出现异常时,注册转储

Guru**** 2540720 points
Other Parts Discussed in Thread: SYSBIOS, AM3352

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/571753/ccs-am3359-register-dump-following-exception-in-isdk-01-01-02-01-issue

部件号:AM3359
Thread:SysBIOSAM3352中讨论的其它部件

工具/软件:Code Composer Studio

您好,

标题说明了一切:01.01 02.01 + BIOS_6_42_02_29中出现致命异常后的寄存器转储无法保留正确恢复堆栈回溯到异常点所需的正确SP/LR/PC。

下面是一个转储示例(请注意格式较差的"[CortexA8]"覆盖"R0 =")。  这里的主要问题是,PC和/或SP似乎不正确--为什么PC在崩溃后始终报告为等于SP?

[CortxA8] 0x0万f R8 = 0x8.0106万c90
R1 = 0x0000c75f R9 = 0x0万ff
R2 = 0x4820.0048万 R10 = 0x0万
R3 = 0x822f540c R11 = 0x0.0002万
R4 = 0x80.0582万b0 R12 = 0x0万f
R5 = 0x80.0582万b4 SP (R13)= 0x8004b8d4
R6 = 0x4820.0068万 LR (R14)= 0x822edd6c
R7 = 0x0万 PC (R15)= 0x8004b8d4
PSR = 0x0万ff
DFSR = 0x0.0005万 IFSR = 0x0万
DFAR = 0x0.0001万f IFAR = 0x0万
TI.SysBIOS.family.arm.exc.exception:line 205:e_dataAbort:PC = 0x8004b8d4,LR = 0x800edd6c。
xdc.runtime.Error.raise:正在终止执行

请提供建议。

 

此致,

David

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

    ISDK团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,David

    您提到使用BIOS_6_42_02_29。
    ISDK 1.1。2.1 具有特定的工具要求。 这些在用户指南的系统要求部分中列出。

    Code Composer Studio [13]版本CCS 6.1 .0.0.0104万
    SysBIOS 6.41 .04.54 [14]实时操作系统
    XDC 3.30 .06.67 [15]
    编译器版本TI v 5.1 ................................................................11.
    网络开发套件(NDK) 2.24 .01.18 [16]

    您看到此工具集的行为是否相同?

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

    相同的行为:

    [CortxA8] 0x0.0002万E R8 = 0x0万
    R1 = 0x0.0005万 R9 = 0x8.0028万a44
    R2 = 0x822f14a8 R10 = 0xffffffff
    R3 = 0x481aa000 R11 = 0xffffffff
    R4 = 0x822f20f4 R12 = 0x0万
    R5 = 0xffffffff SP (R13)= 0x80.0243万f4
    R6 = 0x0.0002万 LR (R14)= 0x822edd6c
    R7 = 0x822f51a0 PC (R15)= 0x80.0243万f4
    PSR = 0x8.0028万a44
    DFSR = 0x0.0005万 IFSR = 0x0万
    DFAR = 0x0.0004万 IFAR = 0x0万
    TI.SysBIOS.family.arm.exc.exception:line 205:e_dataAbort:PC = 0x80.0243万f4,LR = 0x822edd6c。
    xdc.runtime.Error.raise:正在终止执行

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

    它不是此特定版本所独有的。 任何未处理的异常都会导致类似的行为。
    发生这种情况时-我重建相关库以允许调试并使用断点来查找故障。

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

    感谢您的回复,我了解如何调试lib调用。 我正在追踪一个不容易重现的错误...

    我最初的帖子的要点是,这是SysBIOS的异常处理程序和/或CSS中的*BUG*。 当然,异常处理程序没有按预期执行,也没有记录。 异常处理程序的reg dump的唯一目的是为回溯提供足够的CPU状态。 TI的异常处理程序已损坏,价值极低。 此问题是否已在后续版本中修复? 如果是,是哪一个? 如果没有,何时会解决?

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

    David79 说:
    异常处理程序的reg dump的唯一目的是为回溯提供足够的CPU状态。 TI的异常处理程序已损坏,提供的价值很小。

    我报告了异常处理程序中的一个错误-请参阅 SYS/BIOS 6.45 .01.29 ti.SysBIOS.family.arm.exc.Exception报告不正确的SP和LR值,导致错误的异常调用栈,尽管在SYS/BIOS的更高版本中。 在该线程中,我描述了问题的原因,以及对异常处理程序代码的建议更改。 在等待正式修复时,您应该能够将异常处理程序代码的修改版本与修复一起放置在项目中。

    此问题是否已在后续版本中修复?

    出现错误 SysBIOS-307。 刚刚浏览了SYS/BIOS发行说明,在 SYS/BIOS 6.50 .00.10 发行说明中,SysBIOS-307被报告为已修复。 我将下载SYS/BIOS 6.50 .00.10 进行检查。

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

    刚刚浏览了SYS/BIOS发行说明,SysBIOS-307在 SYS/BIOS 6.50 .00.10 发行说明中被报告为已修复。 我将下载SYS/BIOS 6.50 进行检查。

    使用6.50 7.0 .0.0.0042万 ,00.10 0.10 3.50 .0.10 和TI编译器16.9 .0.LTS,通过AM3352测试SYS/BIOS AM.AM。

    下面的屏幕快照显示了将生成异常的指令中的测试程序:

    继续解码异常后:

    这表明SYS/BIOS 6.50 .0.10 已保存了正确的异常上下文,因为:

    1) CCS控制台中的寄存器转储显示SP,LR和PC寄存器的值,这些值与执行生成异常的指令之前调试器中的值相匹配。

    2) ROV视图中的异常调用栈与在 执行生成异常的指令之前调试器中显示的调用栈相匹配。

    请注意,升级到 SYS/BIOS 6.50 .0.10 会对这些工具施加一些限制,因为:

    a) SYS/BIOS 6.50 .0.10 要求 XDCtools 3.50 .0.10 能够编译

    b)由于缺少依赖项,XDCtools 3.50 无法安装在0.10 6中。  XDCtools 3.50 .0.10 的发行说明中说,必须使用CCS 7.1 .x,但我能够与CCS 7.0 .0.0.0042万 一起使用,没有任何明显的问题。