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.

[参考译文] TMS320F280039C:当我使用 flash_cmd 文件时、delay_us ()函数的时间会增加。

Guru**** 2479015 points
Other Parts Discussed in Thread: TMS320F280039C, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1456820/tms320f280039c-when-i-use-the-flash_cmd-file-the-time-of-the-delay_us-function-increases

器件型号:TMS320F280039C
Thread 中讨论的其他器件:C2000WARE

工具与软件:

您好、TI 工程师:
当我使用 ram_ink.cmd 文件来测试 delay_us()函数的时间时、时间匹配。 当我使用 flash_ink.cmd 文件时、测量时间大于设定值。 但我看到了 CMD 文件中将。 TI.ramfunc 段在 RAMLS3S7处运行、还通过以下方式运行:通过 memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize)将闪存代码复制到 RAM。 但从运行结果来看、它不是在 RAM 中运行。 我还需要配置其他任何内容吗?

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

    器件型号:TMS320F280039C

    工具与软件:

    您好、TI 工程师:
    当我使用 ram_ink.cmd 文件来测试 delay_us()函数的时间时、时间匹配。 当我使用 flash_ink.cmd 文件时、测量时间大于设定值。 但我看到了 CMD 文件中将。 TI.ramfunc 段在 RAMLS3S7处运行、还通过以下方式运行:通过 memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize)将闪存代码复制到 RAM。 但从运行结果来看、它不是在 RAM 中运行。 我还需要配置其他任何内容吗?

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

    尊敬的 Zhen:

    感谢您在假期期间的耐心等待。 我正在查看您的论坛帖子、稍后会向您提供更多信息。

    此致、

    Ozino

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

    尊敬的 Zhen:

    您能否确认是否将 delay_us ()映射到.TI.ramfunc 段;并将此段映射到加载的闪存地址和在链接器 cmd 中运行的 RAM 地址?

    有关如何正确设置 delay_us ()函数的信息,请参阅此帖子: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/942115/tms320f28069-problem-with-delay_us

    此致、

    Ozino

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

    尊敬的 Ozino:

    感谢您的答复。  首先、我在 SYSCTL.c 文件中对 SYSCTL_DELAY 函数具有以下定义、我认为应该在中定义该函数。 TI.ramfunc 段。

    然后我检查了 CMD 文件、其定义如下、memcpy ()函数被添加到程序中、并且_FLASH 被定义。

    最后、我在.map 文件中看到。 TI.ramfunc 的加载地址为0x826f0、运行地址为0xe000。 但 SYSCTL_DELAY 在0x826d7运行、并且不处于中。 TI.ramfunc 段。 中未定义 SYSCTL_DELAY 的问题。 找到此器件? 因为我不了解图1中宏的定义、所以我是否需要不同的标识符?

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

    尊敬的 Zhen:

    您能否确认您的项目是否使用 EABI 输出格式。 您可以在编译器段的工程属性中查看_TI_EABI 的预定义符号是否。

    此外、请确认您是否已将使用切换到 SYSCTL_DELAY 宏、而不是 delay_us ()函数。

    此致、

    Ozino

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

    尊敬的 Ozino:

    我看到 CCS General 属性中的 Output format:eabi (ELF)、但我没有看到在此预定义符号上定义的_TI_EABI。 但是、我从编译器手册中看到、如果使用了--abi=eabi、则__TI_eabi__为1。 在程序中,我使用 DEVICE_DELAY_US()宏定义。

    此致、

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

    尊敬的 Zhen:

    您是否可以导入 LED 闪烁示例并对闪存和 RAM 构建配置执行时序测试? 请告诉我结果是什么样的。 谢谢!

    此致、

    Ozino

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

    尊敬的 Ozino:

    很抱歉这么晚才回复、因为我没有看到消息提醒。 我导入了 led_ex1_blinky 工程并将延迟时间参数更改为5000。 当我使用28003x_generic_ram_Ink .cmd 时、我得到了延迟时间为5ms 的以下波形、这是正确的。 当我使用28003x_GENERIC_FLASH_Ink .cmd 并将预定义参数 RAM 更改为_FLASH 时、我得到了具有5ms 延迟的相同波形。

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

    尊敬的 Zhen:

    看起来您可以在 C2000Ware 中查看示例所需的延迟。 您能否确认您是否修改了您的示例的时钟? 是否有机会在该示例中将同一链接器命令文件用作代码的一部分? 或者您能否在此示例之上应用您的代码更改。

    此致、

    Ozino