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.

[参考译文] CCS/TMS320F2.8035万:没有可用于"0x3ff599"

Guru**** 2563960 points
Other Parts Discussed in Thread: DRV8711, CONTROLSUITE, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/656494/ccs-tms320f28035-no-source-available-for-0x3ff599

部件号:TMS320F2.8035万
主题中讨论的其他部件:DRV8711controlSUITEC2000WARE

工具/软件:Code Composer Studio

您好,

我正在使用C2000驾驶DRV8711。 该代码似乎不适合RAM,因此我尝试通过在项目中包含F2.8035万.cmd文件来切换到闪存。 在我重置Piccolo之前,电机似乎按所需方式运行。 这样做后,CCS在控制台上显示'No source available for "0x3ff599'(没有可用的源)。

我尝试清除代码,然后再次加载,但显示 'No source available at 0x3ff8a1'(0x3ff8a1处没有可用的源)。

我还检查了F2.8035万.gel文件。

热菜单EMU_BOOT_FLASE()

*0xD00 = 0x55AA;/* EMU_KEY = 0x 55AA */
*0xD01 = 0x000B;/*引导至闪存*/
}

请帮助我找到解决方案。

提前感谢!

Nihit Shah

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

    这不是错误。 CCS只是让您知道“C”源代码不可用,因为此代码部分位于引导ROM中。 如果您查看"反汇编"窗口,则应找到汇编代码。 我希望这能回答您的问题,如果是,请单击绿色的"已验证答案"按钮。 谢谢你。

    - Ken
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么我该如何解决呢? 是否需要添加一些例程或执行任何其他更改,以便在重新启动时在该地址提供代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ken

    请详细说明您的答案,我不明白您的意思。

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

    非常简单地说,引导ROM代码是用汇编语言编写的,而不是用C。因此,CCS不能将其显示为C,这就是为什么您看到消息'No source available <at address>'(没有可用的源<at地址>)的原因。 您还会注意到,您提供了单击"查看反汇编"的选项。 在“Disassembly (拆卸)”窗口中,您将找到引导ROM中的汇编代码。 因此,总之,您的C代码将编译为程序集,因此您可以在"反汇编"窗口中以C '源'和程序集的形式查看它。 但是,对于在汇编中写入的代码,该汇编是源代码。

    此外,请注意"重置"和"重新启动"之间存在差异。 重置将重置设备(重置到引导ROM),重新启动将程序计数器(PC)恢复到当前加载程序的入口点,通常在主功能开始时。

    我希望这能有所帮助。 如果您有任何其他问题,请告诉我。 如果这回答了您的问题,请单击绿色的"已验证答案"按钮。 谢谢。

    - Ken
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的澄清。 我在重置和不重新启动时看到此消息。 我在重新启动时没有收到此消息,但当我重置时,此消息会弹出,并且由于在该地址找不到任何源代码,因此无法运行。
    如何解决这一问题? 我尝试了几件事(在我的初始帖子中提到),但这还不够。 有什么建议?

    再次感谢您的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Nikit,
    重新启动时,程序控件将转到应用程序的入口点。 重置时,程序计数器位于设备引导ROM中的重置入口点。 如果在重置后单击运行,则会运行设备引导ROM,设备引导ROM指南中说明了发生的情况以及设备引导ROM的功能。 在没有仿真器的独立运行中,当设备通电或设备重置后,设备引导ROM将运行,然后将根据配置的引导模式引脚进行引导。

    您可以执行重置,然后重新启动以将程序计数器设置为应用程序并运行应用程序。 不必每次都运行引导ROM,除非您尝试查看是否可以在执行引导ROM后启动应用程序。 请参阅设备引导ROM指南,了解如何确保引导ROM正确启动应用程序。 但我怀疑这正是你要做的。

    但是,如果要查看ROM源代码,则可在controlSUITE和C2000Ware中找到设备的ROM源代码。 在controlSUITE中,您将找到:- C:\ti\controlSUITE\libs\utilities\boot_rom\2803x\2803x_boot_rom_v1</s>2803

    在C2000Ware中,设备的ROM源代码位于C:\ti\c2000\C2000Ware_1_00_02_00\libraries\boot_ROM\F2803x\v1_0\rom_sources\</s>2000 2803

    现在,在加载应用程序后,可以使用添加符号选项并从以上文件夹路径的发行目录中选择ROM COFF文件。 现在,如果您执行重置,它应该指向具有ROM源代码的重置入口点。 请注意,ROM源仅供参考,您将无法构建ROM项目并加载ROM。

    希望这有所帮助

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

    Nikit,

    是的,您将在重置时看到此消息,而不是重新启动。  从我上一篇文章中,重置将导致PC位于设备重置入口点,该入口点位于引导ROM (即写入汇编,而不是C源)中。  重新启动将导致PC位于应用程序代码入口点(即在您的情况下使用C源代码编写)。  请注意,您看到的不是错误或警告。  所有功能都正常工作。

    现在,您需要注意的另一个问题是设置引导模式。  为此,我建议查看以下位置的车间材料:

    http://processors.wiki.ti.com/index.php/C2000_Archived_Workshops#C2000_Piccolo_Multi-Day_Workshop_-_Revision_2.1_December_2010_.28ExpKit_F28035.3B_CCSv<xmt-block0>20004.220104.2</xmt-block>2.8035万 .3B_DSP.5.41 .29

    请参阅模块4中的引导模式,并回顾模块5中的实验说明,特别是步骤11。  如果这有帮助,请告诉我。

    - Ken

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

    Santosh,

    这一解释是有益的。 我确实添加了一些符号,并且在运行应用程序时弹出SelectMode_Boot.c,并且PC已联机
    ASM (" ESTOP0")

    void WaitBoot(void)(无效Wait

    WatchDogEnable();
    对于(;;)

    //如果仿真器在此停止
    // a)将EMU_KEY更改为0x55AA
    // b)将相应的引导模式写入EMU_BMODE
    // c)执行调试器重置,然后运行
    ASM (" ESTOP0");
    }
    }

    我对F2.8035万.gel文件进行了相应的更改。
    您对此有何意见?有何建议?

    -Nihit Shah

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

    我不确定您的问题是否具体涉及WaitBoot功能,但希望我可以增加一些价值。 在仿真引导模式下(即,调试探测器连接到目标),首先检查EMU_KEY位字段的值0x55AA。 如果EMU_KEY或EMU_BMODE位字段无效,则输入“等待”引导模式。 然后可以使用调试器修改这些位字段值,然后发出重置以重新启动引导进程。 这是在连接仿真器的情况下启动设备时遵循的典型顺序,允许用户使用调试器控制引导过程。 在CCS中,您将找到用于加载EMU_KEY和EMU_BMODE值的脚本。 从我上一篇文章中的链接,请参阅模块4引导模式幻灯片,了解引导流程过程,并参阅实验5说明(步骤11),了解CCS脚本的使用。

    也很抱歉,我在之前的帖子中犯了一个小错误。 对于此设备,引导ROM是用C语言编写的,显示源代码所需的一切就是添加符号,正如Santosh所指出的。 我想到的是我们的旧设备,它是在组装过程中写入引导ROM的。

    我再次希望这能有所帮助。 如果您有任何其他问题,请告知我们。 如果这回答了您的问题,请单击绿色的"已验证答案"按钮。 谢谢。

    - Ken