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.

[参考译文] TMS320F28379D:时钟计时毫无意义

Guru**** 2591260 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1053201/tms320f28379d-clock-timing-does-not-make-sense

器件型号:TMS320F28379D

我注意到在计时一些代码时出现了计时问题。  我可以使用 稍微修改的 f2837xD GPIO 切换示例版本复制它。  我将在'379D launchpad 上运行该程序。 SYSCLK 的设置如下:

InitSysPll(XTAL_OSC,IMULT_40,FMULT_0,PLLCLK_BY_2);

我执行以下指令:

       GpioDataRegs.GPADAT.bit.GPIO10 = 1;
       GpioDataRegs.GPADAT.bit.GPIO10 = 0;

当我观察输出时、切换该位大约需要35ns。  但是、当我在 Code Composer 中单步执行指令时、CCS 时钟显示它应该只需要3个时钟周期(我不确定为什么它不是2个、而是3个是可以的)。  时钟以200MHz 运行、因此3个时钟周期应为15ns。  以下是示波器输出:

我在这里错过了什么? 我是否设置有错误?  谢谢

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

    您是否查看了相应的汇编指令并对它们将花费的时钟周期总数进行了汇总? 周期信息出现在 www.ti.com/lit/spru430中。

    [引用 userid="248859" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1053201/tms320f28379d-clock-timing-does-not-make-sense "] CCS 时钟表示它只需3个时钟周期

    我不理解以上内容。 请澄清。

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

    Hareesh、

    根据我的理解、有两种方法可以获得周期数:  

    1.查看.asm 文件并按照建议对每条指令的时钟周期进行计数

    2.使用 CCS 并在要开始的行处放置断点,然后在“运行”菜单上启动时钟,执行“运行”->“时钟”->“启用”,然后单步执行到要结束的行, 并查看屏幕右下角的时钟周期 CCS 报告。 (并使用复位将其清除以进行多项测试)。

    我完成了这两项操作、得到了相同的答案。  -- 3个时钟周期。  asm 代码如下所示:

            MOVW      DP,#_GpioDataRegs     ; [CPU_ARAU] 
            OR        @$BLOCKED(_GpioDataRegs),#0x0400 ; [CPU_ALU] |172| 
            AND       @$BLOCKED(_GpioDataRegs),#0xfbff ; [CPU_ALU] |173| 
    

    CCS 告诉我、执行两行 C 代码需要3个时钟周期。

    我的问题是、如果时钟以200MHz 运行、为什么3个时钟周期的指令需要34us 才能执行? (它们只需15us)。  代码从 RAM 执行、因此不会出现闪存问题(此处理器是否会减慢闪存的运行速度??)。 感谢你的帮助。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="248859" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1053201/tms320f28379d-clock-timing-does-not-make-sense/3897586 #3897586"]我的问题是、如果时钟以200MHz 运行、为什么3个时钟周期的指令需要34us 才能执行? (它们只需15us)。[/引述]

    请参阅 GPIO 切换看起来比 [常见问题解答] C2000 GPIO 常见问题解答中的速度慢 、以了解可能的说明。