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/CC2650:任务执行前的 BIOS_Start()异常

Guru**** 2595805 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/610158/rtos-cc2650-bios_start-exception-before-task-execution

器件型号:CC2650

工具/软件:TI-RTOS

我们使用 IAR 7.80.3在具有 CC2650的定制板上运行 TI-RTOS 2_18_00_03和 tidrivers 2_16_01_13以及 BIOS 6_45_02_31和 BLE 2_02_00_31。

我们的应用程序在最近更改/添加之前一直保持稳定。  现在我们执行 BIOS_Start(),它永远不会进入任务。

我们将其单步执行 BIOS、在大约270条指令之后、它会依次经过 Task_StartCore、Task_supportProxy_start 和 TaskSupport_cUS,使用 TaskSupport_swap 它会破坏堆栈指针并被捕获在异常处理程序中。

任务堆栈是好的--它们从未执行过。  堆似乎正常。 当它逐步通过时,它永远不会改变,令人惊讶的是--所以我们假设我们在那里缺少一些东西。 CStack 区域看起来很好、直到 SP 与所有寄存器一起损坏。

您能给我们一些关于下一步工作的提示一下。  项目选项任务数?  实体数量?  我们正在突破应用程序和 BLE 堆栈之间的总内存消耗极限。

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

    您是否能够隔离导致此情况的变化? 很多时候、这些问题最终会导致引脚和/或驱动器配置不正确。

    我还建议查看 BLE 软件开发指南(SWRU393)中的"解密 CPU 异常"部分、了解有关如何捕获和分析这些异常的一些提示。

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

    我们尝试重新下载完整的软件套件... TI RTOS、XDC、simplelink…… 没有改善。  例外情况继续存在。  我们尝试了应用程序的以前源版本、没有任何变化。

    然后,我们检查了 TI 样片程序的支持文件.... 找到了一个已编辑的关于问题开始的时间的通用文件。

    它是链接器文件 src/common/cc26xx/IAR/cc26xx_app.ICF。  我们使用 KDiff3对其进行了检查、发现除了 CStack 分配之外、该编辑后的文件与原始下载文件之间没有区别。

    我们复制了原始文件、将其编辑为与以前相同的 CStack 大小、然后运行应用程序。

    问题消失了--应用程序再次运行正常。

    KDiff3未显示任何应对编译器产生影响的可见差异。  但是、我看到编辑器添加了编译器无法消化的隐藏字符... 也许这是其中一种情况。

    那么、我将把这个标记为"已解决"。