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.

[参考译文] TMS320F28P650DK:C2000 ware SDK — 用于双核配置的 SysCtl_delay ()

Guru**** 2692745 points

Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1597817/tms320f28p650dk-c2000-ware-sdk---sysctl_delay-for-dual-core-configuration

器件型号: TMS320F28P650DK
Thread 中讨论的其他器件: SysConfigC2000WARE

您好:

我发现、在 CPU1 运行程序期间、在 CPU2 中调用“device_delay_US ()“函数后、F28P65 内核将复位。  那么、这个“device_delay_US ()“函数可以用于双核系统吗?

如果没有、您是否可以使用其他延迟 API 函数?

 

以下是 syscfg 生成的代码

 

//************************************************************************************************
//
//宏调用 sysctl_delay () 以实现以微秒为单位的延迟。 宏
//将所需延迟(以微秒为单位)转换为预期的计数值
//由函数执行。 \b x 是延迟的微秒数。
//
//************************************************************************************************
#define DEVICE_DELAY_US (x) SYSCTL_DELAY ((((( long double)(x)/(10000.0L / \
                (long double) DEVICE_SYSCLK_FREQ)- 9.0L)/5.0L)

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

    尊敬的 Chen:

    此功能应该适用于所有 CPU。 如果您使用 SysConfig、  当您在 CPU1 和 CPU2 上下文中打开 ClockTree 工具时、ClockTree 工具会生成 DEVICE_SYSCLK_FREQ 的值。 如果您不使用 SysConfig、则此宏是在器件文件中显式定义的、您可以进行相应的修改。 您认为调用此函数会导致 CPU 复位的原因是什么?

     也可以使用普通的 sysctl_delay()。  

    您使用的是什么 C2000WARE 和 CCS?  

    此致、

    Aishwarya

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

    您好 Aishwarya、

        根本原因是我只在 CPU1 中启用了 device_init () 函数。

    也必须在 CPU2 中执行此操作、以将闪存复制到 RAM、从而使用此函数。

    此致、

    Chen