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/TI-RTOS:硬故障:强制:BUSFAULT:PRECISERR.Data Access Error。

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/688270/rtos-ti-rtos-hard-fault-forced-busfault-preciserr-data-access-error

器件型号:TI-RTOS

工具/软件:TI-RTOS

尊敬的先生:  

我正在尝试在 microSD 卡上写入一些数据。  我使用 MSP432p401R Launchpad 作为主处理器、并从 ADS1298获取数据。  

我无法跟踪导致该问题的说法。 我编写的源代码在编写数据供单次使用时工作正常。 但是、如果我多次写入并在线程之间多次切换。 它提供了精确或不精确的 BUSFault 误差。  

仅在本周、我就开始使用 TI-RTOS。  

HwiStack 还有一个问题是溢出。  

欢迎提出任何建议。 提前100万美元致谢。

此致

Anurag Tamboli

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

    下面是一个提供一些调试技术的链接: training.ti.com/debugging-common-application-issues-ti-rtos

    此外、如何设置矢量表? 您是使用 driverlib 调用插入中断、还是使用 TI-RTOS 中的 Hwi 模块?

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

    您好 Todd、

    感谢您回复。 我尚未将矢量表设置为 TI-RTOS 中的初学者。 我想不要太乱。

    矢量表配置仅为默认配置。  我不明白您说" 您是使用 driverlib 调用插入中断、还是使用 TI-RTOS 中的 Hwi 模块? "  

    实际上、我修改了 SPI 通信和 FatFs 文件系统示例的示例代码、更改/修改了例程以访问数据或将数据写入 SD 卡。

    如果源代码流仅打开 SD 卡、写入数据并关闭文件、则一切都正常。 但是、如果我保持文件打开并切换线程、在经过一些处理后、我会尝试将其关闭。 它抛出"强制总线故障:PRECISERR 或 IMPERSIERR"。   

    如果您想浏览、我可以向您发送一份代码副本。  

    此致

    Anurag Tamboli

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    示例代码来自哪里? 它最初是基于 TI-RTOS 还是基于 driverlib? 如果它是 driverlib、您可能需要从使用 Interrupt_registerInterrupt (或类似的中断)移动到 Hwi_create (或 Hwi_con构)。

    您能否附上示例?

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

    您好 Todd、  

    我仅安装了 TI 的 SDK。 我在 MSP-EXP432P401R 中使用 TI-RTOS 示例。  

    我很确定、示例代码不使用 interrupt_registerInterrupt、因为当源代码遇到总线故障时。 它在 Hwi_excHandler ()中循环。  

    此致

    Anurag Tamboli

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

    Anurag、您好!

    如果 Hwi 堆栈溢出、它将导致内存损坏、这可能导致总线故障或其他奇数错误。  首先要做的是增加为此堆栈分配的数量。  

    在上面显示的 Hwi 模块设置图形视图中、可以将"系统(Hwi 和 Swi)堆栈大小"从2048增大到更大的值、然后保存文件并重新构建和重新加载程序。  您应该能够看到 ROV 工具中显示的更高的堆栈大小(在“Hwi”模块的“Module”选项卡的“hwiStackSize”列中)。  

    如果你增加足够大的空间来避免 Hwi 堆栈溢出、总线故障是否会消失?

    谢谢、
    Scott

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


    感谢您的建议。 它以某种方式工作。 看起来需要学习的内容更多。

    此致
    Anurag Tamboli