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.

[参考译文] TMS320F280025:DEVICE_DELAY_US

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1212507/tms320f280025-device_delay_us

器件型号:TMS320F280025
主题中讨论的其他器件:C2000WARE

大家好

我在运行频率@ 100MHz 的项目中使用 F280025。 我使用 DEVICE_DELAY_US 造成延迟。 我希望在我的代码 DEVICE_DELAY_US (300000)中延迟300ms。 我使用示波器来监控时序。 时间通常延长5s ~ 20次。

我在论坛上看到了一些问题、似乎需要在 RAM 中运行。 我想知道如何确保它在 RAM 中运行。

SYSCTL_DELAY (((( long double)(300000)/(1000000.0L / \
                             (long double)(((20000000U * 30)/(2 * 3 * 1)))- 9.0L)/ 5.0L)

我在闪存段0中有一个引导加载程序、并且应用程序 start @ Flash 0x7000

下面是我用于复制 RAM 函数的代码

#ifdef ota.
//移至 LO 后,ramfuncs 开始了7个低扇区
uint32_t loadStart =(uint32_t)&RamfuncsLoadStart - 0x7000;
memcpy (&RamfuncsRunStart、(const void*) loadStart、(size_t)&RamfuncsLoadSize);

LoadStart =(uint32_t)&isrcodefuncsLoadStart - 0x7000;
memcpy (&isrcodefuncsRunStart、(const void*) loadStart、
(size_t)&isrcodefuncsLoadSize);

请告知。

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

    您好!  

    感谢您的提问。 请告知我们您使用的是哪个版本的 C2000Ware。

    此致

    Siddharth

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

    您好!  

    此外,只有 delay 函数"sysctl_delay"必须从 RAM 运行。   这是通过使用编译器 属性.sect \".TI.ramfunc 来完成的。  

    此属性(ramfunc) 函数指示编译器指定将函数放入 RAM 中并从 RAM 执行

    此致

    Siddharth

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

    我使用的是 C2000Ware 4.0

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

    您好!  

    如上所述、只有代理功能必须从 RAM 运行。 请在调试此函数时检查它是否已分配给 RAM。

    此致

    Siddharth