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.

[参考译文] TM4C129ENCPDT:Project 已经在运行、现在我在 BIOS 启动时继续跳跃以中止

Guru**** 2455360 points
Other Parts Discussed in Thread: SYSBIOS, TM4C129ENCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1483128/tm4c129encpdt-project-was-working-and-now-i-keep-jumping-to-abort-when-bios-starts

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

工具与软件:

您好!

这个项目正在运作、似乎一直在运作。 我创建了一些任务来独立处理 UART Tx 和 Rx、起初、事情似乎是有效的。 然后 RTOS 开始跳转到 abort 函数、这是其当前所处的状态。

此工程基于 tcpEcho 工程、除与此初始示例相关的任务外、所有其他任务都已注释掉。 在 RTOS ROV 中、我看到 Hwi 下列出了以下异常:

我看到 BIOS 线程被调用、这对我来说很奇怪、因为我没有在这个线程上更改任何内容(有意更改的任何内容)。 BIOS 的运行时设置如下所示:

我怀疑这与内存分配有关、但我不确定如何解决。 感谢任何帮助。 谢谢!

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

    你好、Noah、

    Unknown 说:
    此项目基于 tcpEcho 项目、除与此初始示例相关的任务外、所有其他任务都已注释掉。

    你是说你已经剥离了所有只有 tcpecho 代码的初始示例仍然是吗?

    或者您仍在运行 UART RX 和 UART TX 任务?

    实际运行的是什么?

    如果再次下载 tcpecho 示例、我认为您不会看到任何中止问题、对吗?  

    [报价用户 id="589411" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1483128/tm4c129encpdt-project-was-working-and-now-i-keep-jumping-to-abort-when-bios-starts "]

    我怀疑这与内存分配有关、但我不确定如何解决。 感谢任何帮助。 谢谢!

    [报价]

    在 ROV 中、您可以在任务下查看 是否存在堆栈溢出?

    您可以使用这两个帖子来调试异常吗?

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

    Chairs,

    感谢您推荐这些帖子、我将查看这些帖子。  

    否、该工程与 tcpEcho 函数不完全相同。 请允许我为您提供更多详细信息。

    首先、这是主要内容:

    int32_t main (void)

    // static const uint8_t macArray[6]={0xAC、0xDE、0x48、0x00、0x00、0x80};
    /*调用板初始化函数*/
    Board_initGeneral();
    Board_initGPIO();
    Board_initEMAC();
    Board_initUART();


    /*初始化覆盖任务系统*/
    // InitTaskSys();

    system_printf ("启动 TCP Echo 示例\n 系统提供程序设置为"
    "SYSMIN. Halt the target to view any SYSMIN contents"
    " ROV.\n");
    /* SysMin 只会在您调用 flush 或 exit *时打印到控制台
    system_flush();

    /*启动 BIOS */
    BIOS_start();

    返回(0);
    }

    EMAC 和 UART 外设都被初始化。  注释掉的函数  InitTaskSys  创建用于任务间通信的邮箱、构造 UART_Tx 和 UART_Rx 任务、并构造系统管理任务调用  Syscomm。 注释掉这个函数后、这些任务都不会被构建。

    现在、在.cfg 文件中、邮箱已通过 XGCONF 启用。

    TCP 相关功能通过  tcpEchoHooks.c 绑定到程序中、但我在这里设置了一个断点、在调用这个函数之前会发生中止。  

    最后、我将继续挖掘、并更新该线程。

    谢谢!

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

    Chairs,

    我们一直在使用 ROV 和 Hwi 深入这个问题。 仍然有问题。  

    已从.cfg 中删除邮箱。

    以下是例外选项卡的复制/粘贴:

    当我输入 PC、SP 和 LR 寄存器时,它会将我带到反汇编中  调用 Hwi_Hwi 387_switchFromBootStack()函数的位置:

    转到"Details"选项卡时、fxn 设置为: TI_SysBIOS_family_arm_lm4Timer_isrStudio_e

    在附带说明的地方、我将空项目加载到用于 Tiva 的 Mikroe 开发板上、它在 Pn.1 LED 闪烁的情况下加载并运行。 我担心硬件可能已损坏、但事实并非如此。  

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

    另一个数据点、我重新加载了 tcpEcho 项目。 我对代码进行了两处修改、以便软件能够与 Mikroe 开发套件一起使用:我更改了以太网 LED、并且实现了默认 MAC 地址、因为 Mikroe 开发套件中的 MCU 在闪存中没有 MAC 地址。

    这会导致在相同的 PC 位置出现相同的异常。

    有趣的是、"Detailed"选项卡中列出了另一个函数: GPIO_hwintFxn。 我的定制项目中不存在此列表。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="589411" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1483128/tm4c129encpdt-project-was-working-and-now-i-keep-jumping-to-abort-when-bios-starts/5697700 #569700"]

    或者另一个数据点、我重新加载了 tcpEcho 项目。 我对代码进行了两处修改、以便软件能够与 Mikroe 开发套件一起使用:我更改了以太网 LED、并且实现了默认 MAC 地址、因为 Mikroe 开发套件中的 MCU 在闪存中没有 MAC 地址。

    这会导致在相同的 PC 位置出现相同的异常。

    [报价]

    我不知道该怎么说。 您能做一些 实验吗

     -我想确保当您重新加载 tcpEcho 示例时,它不是 原始示例,您可能已经 在某些设置中修改了某个位置,但您忘了它。 您可以只是再次下载 tcpEcho 示例(作为起点)并更改 LED 和 MAC ID。

     -在 LaunchPad 上运行经修改的代码(tcpecho 和更改以太网 LED 和 MAC 地址)。 你能让它成为例外吗?

     -在 LaunchPad 上运行股票 tcpecho 示例?

     

     

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

    Charles

    我认为这是硬件问题。

    下面是我采取的步骤。

    1) 1)从我的工作区中擦除之前的 tcpEcho 项目。

    2)使用 Lauchpad 开发套件、我重新加载了 tcpEcho 项目。

    3)令人惊讶的是,编译成功,但调试失败,说它找不到目标配置文件。

    4) 4)添加了一个目标配置文件、将其设置为 Stellaris 内电路调试器、并将 MCU 分配给 Tiva TM4C129ENCPDT。

    5) 5) 修改了.cfg 文件以使用静态 IP 地址。

    6)使用了 tcpSendReceive 可执行文件,这是有效的。

    7) 7)使用相同的 Lauchpad、进行了基于 MIKROE 的修改:更改了 LED 引脚、并使用了软件可编程的 MAC 地址。

    8)这也起作用! 尽管、Lauchpad 上的 LED 不起作用、但这是应该出现的情况。

    9) 9)我然后使用了相同的 CCS 工程和配置、并将其加载到 MIKROE 开发套件中。

    10)这是第一次工作,和 tcpSendreceive 运作;然而,这只是第一次工作。

    11)多次尝试后、这继续跳到 aboort 函数、在 ROV 中、我看到了我之前提到的相同错误。

    12) 12)我更换了 MIKROE 开发板上的 MCU 模块(有一个开发板、MCU 在子卡上)。

    13 )同样的事情发生:它第一次工作,然后再也不会。

    通过使用示波器、我查看了3.3V 和5V 电压轨、但没有看到任何压降或噪声。  

    然后、我将自定义项目加载到 Launchpad 上、并在控制台中看到了以下消息:NC_NetStart:警告:引导线程尚未完成!

    现在、我做了很多修改、以便从这个项目中删除各种内容。

    最后、我将代码恢复为以前有效的提交、修改了目标配置文件以使用 Lauchpad 的电路内调试器、现在 Lauchpad 上的运行似乎稳定。

    我不知道发生了什么、但这些问题似乎在 MIKROE 开发套件的本地化范围内。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="589411" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1483128/tm4c129encpdt-project-was-working-and-now-i-keep-jumping-to-abort-when-bios-starts/5699760 #5699760"]

    7) 7)使用相同的 Lauchpad、进行了基于 MIKROE 的修改:更改了 LED 引脚、并使用了软件可编程的 MAC 地址。

    8)这也起作用! 尽管、Lauchpad 上的 LED 不起作用、但这是应该出现的情况。

    [报价]

    这意味着您的软件没有问题。  

    我不知道发生了什么、但问题似乎是在 MIKROE 开发套件中本地化的。

    不确定我可以帮助多少,如果问题是在 MIKROE。 您能在 MIKROE 上运行您的最后一次提交吗? 它是否仅在第一次有效、并在随后的几次中中止? 我建议您从上次提交开始、在 MIKROE 上运行时一次只添加一小段代码增量。 如果您认为这是软件问题、那么有希望、您能够减少可能导致中止的违规代码。 如果这确实是一个硬件问题、如果有一个 MIKROE 板、您可能需要尝试另一个该板、以查看是否可以重现该问题。 如果多个电路板存在相同的问题、则我认为不可能是硬件问题。 确保您的 CAT5E 电缆工作正常。  

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

    你好、Noah、

     我没有听到你的声音。 您有更新吗? 如果您已解决该问题、我可以关闭此 TT 吗?

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

    你好、Noah、

     我没有听到你的声音。  我现在将结束该主题。 如果您有任何更新、您可以写入此帖子、并且状态将更改为"打开"。