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.

[参考译文] TM4C1294NCPDT:固件停止运行

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136211/tm4c1294ncpdt-firmware-stops-functioning

器件型号:TM4C1294NCPDT

您好!

固件问题:

我们将定制板和传感器连接在一起、移除传感器后、器件执行软件复位、在软件复位后、它尝试从开始设置系统、并进入永久空闲循环(固件停止工作)、 这个问题发生在400 - 500中的一个尝试移除传感器、然后重新插入。

我们怀疑以下问题:任务的时序问题、或者信标失去参数、信标丢失计数、信标不再被调用、它进入永久空闲循环。

下面显示了固件时序图。 在40个 ADS 数据包后、它会将其发送到 PC、这就是为什么使用第二条红色虚线之后的时间。

-是否有办法调试这些错误,因为500次中有1次?

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

    您好!

    [引用 userid="448168" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136211/tm4c1294ncpdt-firmware-stops-functioning "]

    我们怀疑以下问题:任务的时序问题、或者信标失去参数、信标丢失计数、信标不再被调用、它进入永久空闲循环。

    [/报价]

     我不是 TI-RTOS 专家、但我还不完全相信这是 TI-RTOS 内核问题。 在我看来、信标没有发布到您的应用程序中、任务正在等待它。 我想您需要了解为什么没有发布信标。 另一个需要注意的问题是、如果您的任务处于待处理状态且超时时间很长? 您可以使用超时配置挂起、这样它就不会卡住。 以下是 TI-RTOS 培训材料中的建议。  

    注意:我们建议您在挂起调用上使用超时,这样代码就不会在等待永远不会被发布的信标时被“卡住”。 如果您将超时时间设置得足够长,则可以确保它在合理的时间到期之前不会超时。 但是、当您使用超时时时、请始终检查挂起的返回值! 否则,您可能会处理不存在的数据并导致问题。 挂起后、有两种方法到达代码行–您获得了信标或超时。 一种方法是“处理数据”,另一种方法是“oops,存在问题”。 因此、请相应地处理这些问题。

    您使用哪种类型的信标? 对信标或二进制进行计数? 如果您使用二进制信号量该怎么办? 这会产生影响吗?

      

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

    您好、Charles

    我们正在使用计数(FIFO)信标。 对于二进制信标,我没有信心,但会尝试一下。

    我尝试更改信标上的时序、当信标达到超时时时、固件就会停止工作。

    将使用时序和二进制信号量进行测试、并返回 结果

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

    您好、Robert、

    [引用 userid="448168" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136211/tm4c1294ncpdt-firmware-stops-functioning "]此问题发生在400 - 500次尝试删除传感器,然后重新插入。

    但是、如果目标目的实际上不是重新插入传感器400 - 500次计数、则解决此问题似乎是很好的可能性。 断开传感器电源后多久进行软件复位? 另一个需要考虑的因素是传感器电源和传感器电路去抖。

    很久以前在游戏盒 PCB 上工作过、它具有更短的+5V 边沿走线、因此接地走线首先连接。 塑料盒的两个夹耳背面都放置了锁紧夹耳和一小块 AL 粘性背带。 碳粉盒 PCB 的每侧有两个金针、一个用于外部重置 CPU、此时塑料耳被挤压、将碳粉盒插入34针边缘连接器。 游戏盒具有运行内核的 CPU 所需的 ROM 地址和数据总线连接。 游戏盒在移动设置中从未出现故障,±G 力在结束时使整个系统振动数小时 以前、大多数 CPU 上只有 NMI 引脚、不能执行软件复位。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="448168" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136211/tm4c1294ncpdt-firmware-stops-functioning/4217979 #4217979"]我尝试更改信标上的时序,当信标达到超时时时时,固件就会停止运行。

    因此、挂起状态中的任务确实会达到超时。 这是否意味着没有人发布信标? 这就是为什么我要知道你发布信标的机制是什么、为什么它停止发布? 如果发布来自在您的器件被拔出后将停止生成中断的中断、那么这可能是原因。 我想、如果您可以安装某种类型的看门狗计时器、不一定是硬件看门狗、可能是软件版本。 如果一个标志在一个指定的时间内没有被软件定时器写入、那么它将生成一个软件复位。 只是一个想法,但你可以比我更有创意。  

    另外,为了给大家一个机会,我将在下星期二之前离开办公室。