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.

[参考译文] TMS320F2800157:SysCtl_delay 如何生效?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1509780/tms320f2800157-how-sysctl_delay-take-effect

器件型号:TMS320F2800157

工具/软件:

您好专家

在 DSP 开发中、客户使用 sysctl_delay ()、汇编如下、能否与汇编共享、哪个寄存器被更改以实现延迟函数? 用户如何在 CCS 中观察操作?

谢谢

Joe

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

    您好、
    sysctl_delay()是一个汇编宏。 如果您想查看 driverlib sysctl.c 文件中的代码、可以找到该代码。

    谢谢

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

    您好 Prarthan

    汇编代码如下、但我找不到 _SysCtl_delay 定义以及要控制延迟周期的寄存器:

    您能否请帮忙解释 寄存器级别的_SysCtl_delay? 还是只是软件延迟?

    谢谢

    Joe

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

    您好、

    如您所见、该函数调用以下汇编函数:  

    Sub ACC、#1 --> 减去累加器  

    BF 偏移、GEQ -->大于或等于条件时的快速分支

    LRETR --> 使用 RPC 的长返回

    您可以检查反汇编查看相同内容、并查看 CPU 用户指南进行确认。

    因此在我的了解中、我需要配置硬件来实现延迟功能。

    谢谢。

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

    您好 Prarthan

    您能否帮助检查是否有特定的寄存器来实现 SysCtl_delay ()函数,或者它只是由通用函数 CPU 寄存器实现?

    谢谢

    Joe

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

    Joe、

    如前所述、我将再次重复

    SUB 是一条减去 CPU 内核寄存器中 ACC (累加器)寄存器的 CPU 指令。 累加器寄存器由传递给延迟函数的值进行设置。

    然后在递减累加器后、检查累加器是否大于或等于零(如果不存在)、则进行分支并继续执行。

    这只是延迟函数的高效软件实现。

    谢谢