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.

[参考译文] TMS320F28388D:在 F2838D CM 内核上使用计时器时出现 e_hardFault

Guru**** 2554950 points
Other Parts Discussed in Thread: SYSBIOS, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1564930/tms320f28388d-e_hardfault-when-using-timer-on-f2838d-cm-core

器件型号:TMS320F28388D
主题中讨论的其他器件:SYSBIOSC2000WARE

工具/软件:

您好:

我们正在尝试激活 F2838D 板 CM 内核上的硬件计时器(即所谓的 CPU 计时器)。 它们在 C28 内核上工作正常、但在 CM 内核上无法正常工作。

我们运行的是 SYSBIOS 6.83.00.18、XDCTools 3.61.02.27 和 C2000Ware_3_04_00_00(对于 driverlib)。

在裸机中、通过 driverlib 并在不上拉 SYSBIOS 的情况下、它似乎是有效的。 不过、一旦我们尝试通过 SYSBIOS 运行计时器并使用 ti.sysbios.family.arm.f2838x.Timer 模块、我们就会立即运行到以下代码:

TI.sysbios.family.arm.m3.Hwi:第 1166 行:e_hardFault:Forced

TI.sysbios.family.arm.m3.hwi:第 1247 行:e_busFault:PRECISERR:即时总线故障、确切地址已知、地址:FFFFFFFF

后台线程中 PC = 0x0020349a 时发生异常

后跟寄存器 R0-R15、PSR、ICSR、MMFSR、BFSR UFSR、HFSR、DFSR、MMAR、BFAR、 AFSR。

 

根据我们尝试运行的特定测试、上述错误总是在不同的变化中出现、但“HardFault: Forced(硬故障:强制)“是一个常数。 有时 busFault 是 PRECISERR、有时是 IMPRECISERR、有时地址为 0、有时是其他已知地址、有时是 F

 

到目前为止、我们已尝试:

-        通过.cfg 配置计时器

-        在 bios_start () 之前通过 C 代码配置计时器

-        在 BIOS 任务中配置计时器

-        使用 SysBIOS 提供的所有模块: m3.Timer、lm3.Timer、lm4.Timer、f2838x.Timer、hal.Timer(在 Timer.c 文件中,我看到 f2838x.Timer 是唯一定义了正确的 CPU 计时器寄存器的模块 (0x40084000/10/20 ),所以我们将大部分工作集中在那里)

-        尝试 Timer_Params 参数的任何和所有组合

-        尝试 Timer_construct 和 Timer_create(尽管我们想避免堆,所以我们要依靠 Timer_construct )

 

使用 Timer_create 而不是 Timer_construct 会导致不同的行为、params.runMode 会变为一些乱码值(例如,“:“或“.")“) 一旦将其传递给“Syscall.init"<xmt-block0>“ Timer_Instance_。 但是、我们确实将正确的 runMode 传递给 create 函数、而且它在运行时确实是正确的、直到它尝试将它传递给 init 调用。 是的、我们尝试使用一个静态的全局作用域 Timer_PARAMS 变量。

 

我还尝试使用 ti.sysbios.KNL.Clock 模块来配置和使用时钟、但我们遇到了相同类型的错误。 似乎任何将 SYSBIOS 与 CPU 计时器外设连接的尝试都会导致硬故障。 看到它们在裸机模式下是如何工作的、我只能猜测、在引导或预引导阶段、SYSBIOS 会以某种方式混乱一些初始配置。

我还尝试在 BIOS_START () 之前启用所有中断并手动启用所有外设,但没有任何作用。

如果我们目前对此问题完全不能提供任何帮助、我们将不胜感激。

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

    尊敬的 Dylan:

    该专家目前已离职、 一旦有空、将立即联系您。 同时、请允许我与您联系另一位专家。

    此致、

    Aishwarya

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

    您好、感谢您的耐心。 您是否仍然遇到此问题?示例项目是否会出现相同的错误? 例如、如果导入使用时钟模块的“swi"示“示例、它是否正常工作或表现出相同的行为?

    遗憾的是、不再支持 SYS/BIOS、因此我们在此处所能提供的帮助有限。 如果可以、我们建议改为迁移到 FreeRTOS。

    Whitney