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.

[参考译文] RTOS/TM4C1294NCPDT:TI.SYSBIOS.family.ARM.m3/Hwi:第1095行:E_hardFault:Forced

Guru**** 2611705 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/581948/rtos-tm4c1294ncpdt-ti-sysbios-family-arm-m3-hwi-line-1095-e_hardfault-forced

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

我将 TI-RTOS 用于 TM4C1294微控制器。

软件使用硬件中断来实现 SPI 和 UART、具有 SWI、USB 通信和4个计时器(1sec、250ms、100ms、1ms)。

在使用 TI-RTOS NDK 的项目中添加了 Web 服务器功能。 Web 服务器本身就能正常工作、但使用我当前的应用程序代码时、它似乎有一些问题。

如果我阻止大多数应用程序代码运行(阻止空闲循环)、则 Web 服务器工作正常。

尝试将堆栈的堆栈增加到0x10000、只是为了查看堆栈是否溢出但没有帮助。  请参阅下面的错误。

在我看来、我有某种种族状况或优先级冲突来评估资源。  请参阅下面的错误。

[Cortex_M4_0]开始 FatSD USB Copy 示例
使用闪存中的 MAC 地址
服务状态:DHCP:   已启用 :000          
服务状态:HTTP    :已启用 :         000
服务状态:DHCP:   已启用 :正在运行 :000
TI.SYSBIOS.family.ARM.m3/Hwi:第1095行:E_hardFault:Forced
TI.SYSBIOS.family.ARM.m3/Hwi:第1172行:E_BUSFault:PRECISERR:立即总线故障、确切的已知地址、地址:20202024
在 PC = 0x0004b552的后台线程中发生异常。
内核0:ThreadType_Swi 中发生异常。
SWI 名称:{unknown-instance-name}、句柄:0x20027be0。
SWI 堆栈基地址:0x20016f30。
SWI 堆栈大小:0x10000。
R0 = 0x200128d4 R8 = 0x00000000
R1 = 0x00000000 R9 = 0x00000000
R2 = 0x20027f28 R10 = 0x00000000
R3 = 0x20202020 R11 = 0xffffffff
R4 = 0x200128d4 R12 = 0x000498b1
R5 = 0x000003e7 SP (R13)= 0x20026ea0
R6 = 0x00000003 LR (R14)= 0x00041827
R7 = 0x200128e6 PC (R15)= 0x0004b552
PSR = 0x41000000
ICSR = 0x00423803
MMFSR = 0x00
BFSR = 0x82
UFSR = 0x0000
HFSR = 0x40000000
DFSR = 0x00000001
MMAR = 0x20202024
BFAR = 0x20202024
AFSR = 0x00000000
正在终止执行...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tushar、
    您能否启动 ROV 并查看 Task -> Detailed 以检查任务堆栈?
    此致、
    Janet
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是屏幕截图。

    感谢您的指导。 我有空闲堆栈溢出。 它设置为512。 我增加到2048、似乎工作了30秒、并遇到了其他严重故障。 但这次是在第5行执行一些未知任务。 下面是屏幕截图和错误。

    启动 FatSD USB Copy 示例
    使用闪存中的 MAC 地址
    服务状态:DHCP:   已启用 :000          
    服务状态:HTTP    :已启用 :         000
    服务状态:DHCP:   已启用 :正在运行 :000
    网络已添加:IF-1:10.40.149.66
    服务状态:DHCP:   已启用 :正在运行 :017
    ULD 不分配内存。
    00014.155内存不足:handle=0x0、size=536946436
    00014.155 SBNew:缓冲室
    00047.100 TcpTimeoutRexmt:重新发送超时
    TI.SYSBIOS.family.ARM.m3/Hwi:第1095行:E_hardFault:Forced
    TI.SYSBIOS.family.ARM.m3/Hwi:第1172行:E_BUSFault:IMPRECISERR:延迟总线故障、确切的地址未知、地址:e000ed38
    在 PC = 0x0002efb0的后台线程中发生异常。
    内核0:ThreadType_Task 中发生异常。
    任务名称:{unknown-instance-name}、句柄:0x20028110。
    任务堆栈基地址:0x200131a0。
    任务堆栈大小:0x800。
    R0 = 0x00000000 R8 = 0xffffffff
    R1 = 0x00000000 R9 = 0xffffffff
    R2 = 0x0004ec21 R10 = 0xffffffff
    R3 = 0x0002760d R11 = 0xffffffff
    R4 = 0x00000001 R12 = 0x00000007
    R5 = 0x00027614 SP (R13)= 0x20013960
    R6 = 0x0005bf18 LR (R14)= 0x00027b67
    R7 = 0x0005bf10 PC (R15)= 0x0002efb0
    PSR = 0x01000000
    ICSR = 0x00423803
    MMFSR = 0x00
    BFSR = 0x04
    UFSR = 0x0000
    HFSR = 0x40000000
    DFSR = 0x00000001
    MMAR = 0xe000ed34
    BFAR = 0xe000ed38
    AFSR = 0x00000000
    正在终止执行...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tushar、
    您似乎已启用以太网日志记录。 这可能是个问题、因为用于 Tiva 的 TI-RTOS 附带的 UIA 版本在以太网传输中存在错误。 您能否将 LoggingSetup.logerType 更改为 LoggerType_STOPMODE、并从.cfg 文件中删除对 LoggerRunMode 和 ti.uia.runtime.ServiceMgr 的引用?
    您在带红色框的 ROV 中看到的任务可能是尚未构建的任务、根据堆栈大小0来判断。 这不是问题。
    此致、
    Janet
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Janet。 我发现 ti.uia.runtime.ServiceMgr 已被使用,但我没有找到 LoggingSetup.logerType 和对 LoggerRunMode 的引用。

    我删除了以下行、解决了任何问题。

    //var ServiceMgr = xdc.useModule('ti.uia.runtime.ServiceMgr');

    感谢你的帮助。 出于好奇,您认为(ServiceMgr)的结论是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tushar、
    我不知道为什么在.cfg 文件中会有 ServiceMgr。 您是否使用了 GUI 配置工具? 我很高兴听到它正在工作。
    此致、
    Janet
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否、我使用 了示例 TIRTOS_httpServer 中的配置(cfg)文件并将我的应用程序传输到该文件。