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.

[参考译文] TMS320F2.8069万:如何构建代码的发行版本

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1095955/tms320f28069-how-to-build-release-version-of-code

部件号:TMS320F2.8069万
主题中讨论的其他部件:C2000WAREMOTORWAREC2000WARE-MOTORCONTROL-SDK,,, TMDSCNCD2.8069万MISODRV8301-69M-Kit

您好,

我有一个项目,我开始使用示例项目“Example_2806xScia”。 我把它修改为使用Scib而不是Scia。 我还添加了一层以适应SLIP协议。 原始项目只有调试配置,没有发行配置。 因此,它在调试模式下运行正常,但当我断开电源并重新启动微时,没有任何反应,除非我连接调试器(Code Composer)并从那里运行它。 我在多个文档中看到,Code Composer会自动生成调试和发布配置。 我没有看到这一点。 我已经看了C2000Ware和Motorware中的每个示例,但找不到一个同时存在这两种配置的项目。 我想如果我可以看到这两种配置的属性,并在Release & Debug文件夹中看到文件,我可能会想清楚这两种配置之间的区别是什么。 这样,我就可以设置发行版本,使其像发行版(即 我可以将它加载到微上,它可以独立于调试器运行)。 我还了解到版本构建通常采用优化(似乎推荐2级),并且禁用了"符号调试"。 我可以打开优化,但我一生无法找到任何可以禁用符号调试的地方。 无论如何,我觉得这些不能成为发布版本的定义特征。 必须有一些区分调试和发布的基本"开关"。 文档似乎只是假定您知道如何执行此操作。 我希望能够逐步说明如何将仅调试项目转变为可以生成发布版本的项目。

提前感谢您的帮助。

此致,

戴夫

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

    Dave,您好!

    我将把您的帖子转发给C2000Ware-MotorControl-SDK团队,以进一步回答您的问题。

    对于示例的调试和发布版本,应注意C2000Ware的driverlib目录中应该有一些示例,其中包括构建配置下的两个版本。 公共发行版通常仅支持发行版。 在电机控制应用程序中, Release configs的一个关键功能是,Release版本通常设置为从闪存运行,而不是从RAM运行。 根据我的理解,这就是您在案例中的期望。 如果是这样,您可以查看C2000Ware中F2.8006万x设备的闪存示例,了解如何将项目配置为从闪存运行。 它还具有闪存配置。

    下面是一个应用程序说明,说明如何从Flash运行示例: https://www.ti.com/lit/an/spra958 l Flash/sspspa.pdf?ts=1650659544854&ref_url=https%253A%252F%252Fwww.google.com%252F 958 l 


    此致,

    Ozino

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

    您好,Ozino:

    我看了一下driverlib目录中的示例,其中许多目录中确实有调试和发行版本。 但是,调试和发布的属性完全相同。 Debug和Release文件夹中包含的文件的名称完全相同,但Release文件夹中的文件的名称略小。 但是我看不出这些文件的内容,所以我无法辨别调试和发布之间的根本区别是否包含在它们中。 即使我可以看到内容,构建发行应用程序也不可能需要手动进入并更改文件内容。

    Motorware示例仅包含"Release"版本(奇怪的是,它可以从调试器运行)。 没有相应的Debug文件夹,这将允许我查看两者之间的差异。

    不一定想从闪存运行此程序。 我只想让它独立于调试器运行。 我需要一个"发布"版本。 如果这需要我从闪存中运行,那么也是如此,但在许多方面,我认为我宁愿使用RAM -通常速度更快。

    我使用了其他的微控制器/IDE组合,这些组合很明显,甚至很简单,可以创建一个独立运行于微控制器上的发行版本。 在这里,整个过程似乎充满了神秘感。

    感谢你的帮助。

    此致,

    戴夫

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

    我讨厌痛苦,但有人知道如何创建发行版,可执行文件,独立应用程序吗? 我想我可以再多想几个同义词,但我宁愿用一个不依赖于调试器操作的程序加载我的微电脑。 我问错了吗? 我是否真的提出了错误的问题?

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

    在文档spru509.pdf (Code Composer Setting入门指南)中,它指出:

    "新项目和第一个项目配置(按字母顺序排列)将成为活动项目,和
    继承TI提供的用于调试和发行配置的默认编译器和链接器选项。"

    我使用了一个现有示例来启动,并根据我的要求对其进行了修改,因此没有自动创建上述调试和发布-仅创建调试版本。  上述文档是针对Code Composer v 3.3 编写的,因此该功能可能不再可用。 有人能告诉我,发行版配置的默认编译器和链接器选项通常是什么?

    我尝试从头开始创建一个新项目,并且不会自动创建发行文件夹,只能是调试,因此我仍然不知道发行版本可能会有什么不同。

    谢谢!

    戴夫

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

    对于什么是"debug"或"release",没有设定定义。 通常,当我们将构建配置命名为“调试”时,意味着没有优化,如果应用程序支持,则启用其他调试功能,如断言或性能分析挂钩。 在“发行版”构建配置中,如果优化级别不是更高,我们可能会将其至少提升到2级,并删除任何可能影响性能/代码大小的调试功能。

    但是,定义构建配置的方式完全由您决定。 如果您只需要在所有情况下使用一个构建配置,也可以。 CCS或编译器的旧版本可能会带来一些差异,但最近似乎没有。

    当从闪存独立启动与从调试器运行时,“释放”与“调试”并不重要,我在上面已经描述了它们。 更重要的是,您使用的是闪存链接程序命令文件,您已在正确的入口点设置了代码启动分支,您已为需要从RAM执行的代码设置了"ramfuncs", 您已在主板上正确设置了启动销等...所有这些都应在上述Ozino链接的文档中描述。

    另请参阅"flash_f2.8069万"示例。 我相信它应该设置所有这些东西,这样你也可以从闪存独立启动它。

    Whitney

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

    您好,Whitney,

    感谢您的回复。 因此,如果我添加“优化”并禁用“符号调试”,将程序加载到设备上,然后重新启动,则程序应在目标上独立于调试器运行。 问题是...它没有做到这一点。 设置所有内容以使我可以在不使用调试器的情况下运行应用程序的步骤是什么?

    谢谢!

    戴夫

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

    您好,Whitney,

    更多问题。 Ozino提供的文档指出:“此应用报告仅适用于DSP/BIOS。”

    我已经读到:“2010年8月,DSP/BIOS被重命名为SYS/BIOS,以反映其对 DSP以外的微控制器的支持。”

    我不确定这是哪种类型的项目。

    如何了解?

    如果结果是SYS/BIOS,该怎么办? 是否有另一个应用说明涵盖了这一点?

    谢谢!

    戴夫

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

    您正在使用C2000Ware示例作为起点,对吗? 我们的C2000Ware示例都不使用任何RTOS,因此您只需按照该文档的非BIOS部分操作即可。

    您在项目中使用的是哪一个链接器命令文件? 它是否用于闪存配置,并在闪存入口点放置代码启动部分? 您的项目中是否有F2806X_CodeStartBranch.asm?

    您的项目中"ramfuns"中是否有代码? 在尝试调用任何ramfcs函数之前,您是否在代码中调用memcpy以将ramfuncts从Flash复制到RAM?

    主板上的启动引脚是如何配置的?

    Whitney

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

    您好,Whitney,

    链接器命令文件为2.8069万_RAM_lnk.cmd -文件中未提及闪存。 是否有应该加载的相应闪存链接程序命令文件? 如果是,我在哪里可以找到它, 我应该删除RAM link cmd文件吗?

    F2806X_CodeStartBranch.asm已存在,并且是项目的一部分。

    2.8069万_RAM_LINK.cmd文件中引用了ramfuncts,如下所示:

    ramfuncs        :> RAMM0,     页=0

    F2806x_sysctrl.c中还有以下内容:

    // *重要*
    // 如果从闪存运行,请从 闪存复制“ramfuncs”部分
    // 到RAM,然后调用InitSysCtrl()。 这可防止MCU抛出
    // 调用delay_US()时出现异常。
    //
    #pragma code_section (InitFlash,"ramfuncs");

    而一些实际代码- F2806x_usDelay.asm -是从ramfuncs运行的。

    我还没有实施memcpy来在闪存和RAM之间移动代码。

    我已经在文档SPRA958L中看到了示例,今天将尝试一下。

    我不知道主板上的启动引脚是如何配置的。 我只是希望它不涉及硬件更改。

    我已获得应用手册spraca2a.pdf“TMS320F28x引导功能和配置”。

    还没有读过很多,但似乎是在处理启动引脚。 这是一个好的来源吗?

    是否有其他建议可以顺利进行? 这是一个相对简单的程序,只是使用SLIP协议的串行通信,

    所以我认为我不需要太花哨,将实际操作代码的部分放入RAM或类似的任何内容。

    我最终会将它与电机驱动程序代码(特别是InstaSpin)合并,因此可能有理由进行这种优化。

    谢谢!

    戴夫

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

    尝试导入我前面提到的flash_f2.8069万示例。 它应该包含一个Flash cmd文件和一个memcpy,您可以将其用作示例。

    您使用的是自己的主板还是我们的EVM之一? 我们的controlCARD和LaunchPad通常有一组开关来更改启动模式,有关这些开关的信息可在这些板的用户指南中找到。spraca2应该是引导模式选择引脚如何工作和引导ROM流的好来源。 F2806x TRM中还有一个引导ROM章节,其中可能包含一些特定于设备的附加信息。

    Whitney

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

    您好,Whitney,

    我设计了一个定制板,主要基于DRV8301-HC-EVM。 很遗憾,我没有包括SW1;当时我看不到它的使用。 由于我拥有的所有主板都将从闪存中运行,我只需将相应的针脚High (高)或Low (低)与蓝色导线绑定即可。 然后在下一个主板旋转中加入这些更改。 在评估板上,GPIO34和TDO (GPIO37)可以连接为高或低,具体取决于交换机的状态。 TDO是否以某种方式充当双重负荷的启动销?

    显然,F2.8069万具有以下引导模式:

    0.并行启动
    1.科战靴
    2.等待启动
    3.获取引导/闪存

    3 (两个GPIO均为高)是我想要的设置吗? Ozino向我指出的文件说要配置'跳转至闪存'模式,这一点没有特别提到,即使在扩展的启动模式列表中也是如此(如果使用4个启动引脚可用)。

    谢谢!

    戴夫

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

    是的,您已经知道了。 将两个GPIO设置为高应使您处于"Get"引导模式,该模式将充当闪存引导,直到您对设备OTP进行编程以告知它不是这样。

    Whitney

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

    感谢Whitney!

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

    您好,Whitney,

     我从头到尾都看了文档"从内部闪存运行应用程序...",并实施了(我认为)适用于我的情况的所有内容。

    在Code Composer中,如果我转至Run --> Load并选择Example_2806xScib_FFDLB,我将得到与以往相同的响应,就像我处于调试模式一样。 它加载程序并运行,但当我关闭并重新打开电源时,没有任何反应。

    如果我转至“运行”-->“加载”-->“选择要加载的程序”,并尝试以这种方式加载Example_2806xScib_FDLB.out文件,Code Composer会告诉我:

    "加载程序错误

    检测到多个可调试内核"

    我想我仍然错过了一些东西。 我是否应该针对特定的"核心"? 如果是,如何?

    这是否与默认启动引脚是GPIO34和GPIO37而GPIO37也是TDO这一事实相关?

    我是否应该选择引脚70 (GPIO37/TDO)以外的GPIO引脚?

    谢谢!

    戴夫

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

    您可以像调试一样加载.out,然后断开调试器的连接,设置引导引脚,然后关闭电源再打开以查看它是否运行。

    如果要连接到设备以查看其在代码中的卡滞位置,则需要以不会导致调试器重置的方式执行此操作,以便保留调试状态。 一种方法是设置调试配置,如 本视频所示。 如果这似乎不起作用,您也可以为您的设备创建一个新的CCXML文件,但对其进行编辑,使其不会使用我在 该主题中显示的凝胶文件。

    我不确定是什么会导致"多个可调试核心"问题。 连接到设备并加载代码时,请确保仅在“调试”面板中选择了C28x行,而不是同时选择了C28x和CLA。

    Whitney

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

    您好,Whitney,

    我尝试加载.out,如上面您的答复的第一行所述。 它的行为与以往一样。 调试器调用激发时运行-尝试独立运行时不运行。 我将立即尝试其他建议。

    是否可以始终将两个套管针脚连接到高位(通过电阻器)?

    我是否应该为启动引脚选择引脚70 (GPIO37)以外的一些GPIO引脚,因为它也是TDO?

    谢谢!

    戴夫

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

    Dave,您好!

    惠特尼将在几天内不在办公室。 同时,我可以尝试帮助您或与有能力的人建立联系。

    我正在查看此处的主题。 回答您的一些问题。

    是否406.544万是否可以通过电阻器将两个启动引脚都捆绑在高位

    通常是的。 只要上拉电阻不"太强",一旦您的应用接管,它就不会干扰引脚的功能。 您的主板中使用的电阻值是多少?

    109.5955万builde-release-version-of-code/4065440#4065440"]我2.8069万我是否406.544万是否应该406.544万应该选择引脚70 (GPIO37)以外的引脚来启动,因为它也是TDO?

    F2.8069万数据表中有一条注释,提到GPIO37/TDO不能用于引导模式选择*如果*连接了调试探测器。 您是否尝试在调试探头完全断开的情况下启动主板?

    </s>406.45万

    如果我转至“运行”-->“加载”-->“选择要加载的程序”,并尝试以这种方式加载Example_2806xScib_FDLB.out文件,Code Composer会告诉我:

    "加载程序错误

    检测到多个可调试内核"

    我想我仍然错过了一些东西。 我是否应该针对特定的"核心"? 如果是,如何?

    [/引述]

    有关此主题的E2E帖子位于 :https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/83.8505万/ccs-tms320fE-2E 2.8069万 m load-program-error-And -no-show-of-value-in-expression-in-debug-in-CCS-9-01

    请问您为什么要使用“运行->加载->选择要加载的程序”方法?

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

    您好,Gus,

    感谢您的回复。 我希望Whitney的假期过得愉快!

    2000builde-release-version-of-code/4065592#4065592"]只要109.5955万只要上2.8069万上拉406.5592万拉电406.5592万电阻器不会"太强",它就不会干扰您的引脚功能。 您在主板中使用的电阻值是多少?[/QUOT]

    我试了一个3.3k,但意识到我已经将TDO引脚低绑在一个3.3k中,作为原始设计的一部分。 这导致引脚处的电压达到1.7伏左右。 所以我把它改成了560欧姆。 现在我看到的是2.8V电压,应该被视为“高”电压。

    109.5955万builde-release-version-of-code/4065592#4065592"]您2.8069万您是否406.5592万是否尝试406.5592万尝试过在完全断开调试探头的情况下启动主板?

    在阅读您的回复后,刚刚尝试过。 似乎没有什么区别。 但一旦我完成了编写,我将尝试重新加载程序,然后删除调试器(XDS110),然后启动。

    2.8069万builde-release-version-of-code/4065592#4065592"]请问406.5592万请问为什么406.5592万为什么要使用运行->加载->选择程序方法?

    我只是在尝试一切。

    谢谢!

    戴夫

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

    Dave,

    跟进问题,您如何使用主板上的TRSTn引脚? 当探头未连接时,应使用电阻器向下拉,以禁用调试逻辑。

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

    您好,Gus,

    以下是重置ckt的屏幕截图:

    如果可以,我可以删除下拉式。

    谢谢!

    戴夫

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

    您好,Gus,

    我尝试取下上拉。 没有XDS110调试探头,它甚至无法连接(它回到那里并立即连接)。 于是我尝试像往常一样加载程序(使用小的'BUG'图标),停止调试器,切断电源,将*TRST连接到数字接地,然后重新接通电源。 这可能会确保未启用调试逻辑。 如果没有调试器,我仍然无法执行任何操作。

    谢谢!

    戴夫

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

    Dave,

    尝试406.6053万尝试删除该拉杆。 没有XDS110调试探测器,甚至无法连接[/QUOT]

    在此测试中,您删除了R51,并将R22下拉菜单保留在? 这不应该阻止调试探测器的工作。 这很奇怪。 请注意,您不想将TRST直接连接到GND,因为调试探头会主动驱动该引脚。

    109.5955万builde-release-version-of-code/4066053#4066053"]如果2.8069万如果没有406.6053万没有调试406.6053万调试器,我仍然无法从这件事中获得任何操作。

    我猜您是否验证过您的代码实际上是从内部闪存运行的? 您可以查看地图文件,查看是否正在填充闪存地址,也可以使用CCS停止代码,并通过查看PC (CPU寄存器)或反汇编窗口(查看>反汇编)查看设备运行的地址。

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

    您好,Gus,

    是-我拆下了上拉,并将下拉留在回路中。 无法连接后,我将拉拔器放回。 连接调试探头时,我没有将*TRST直接连接到接地。 我使用XDS110将代码加载到微上,停止调试,关闭所有功能,断开调试器,用临时的夹线跳线将*TRST引脚接地,然后重新接通电源。 看起来应该这样做。

    F280692000builde-release-version-of-code/4065592#4065592]F28069数据109.5955万数据表2.8069万表中406.5592万中有406.5592万有注2.8069万注释提到如果选择gPIO37/TDO启动模式时不能连接,则不能使用gIO37*调试。 您是否尝试在调试探头完全断开的情况下启动主板?[/QUOT]

    如果未连接调试探测器,如何验证代码是否正在从内部闪存运行,查看地图文件或停止代码? 是否应该启动它,然后连接调试器? 热插拔是否可取? 我是否应该继续并将启动引脚从GPIO37更改为其他引脚? 虽然它似乎被选为默认值,但使用起来应该是安全的。

    在主动调试时,我可以看到电机控制板和LCD之间的通信。 我可以停止调试并保持调试器连接, 它仍按我的预期运行。 我甚至可以断开XDS110,一切正常。 但在我重启电源后,没有通信。 似乎不知道从哪里开始。

    谢谢!

    戴夫

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

    Dave,

    TRST/JTAG:感谢您的澄清。 调试探测器无法与已卸下的上拉式探测器通信,这仍然毫无意义。 如果您可以分享更多原理图,特别是JTAG设计,我们可以进一步了解。 在设计中为TRSTn销添加了上拉和下拉两个引脚,这有点奇怪。 我们的数据表和EVM仅要求使用下拉电阻器。

    闪存启动:请允许我解释一下。 在编译/链接过程中生成MAP文件。 它是存储在与可执行文件(.ut)相同的项目目录中的文件。 不需要调试探测器访问,您可以使用任何文本编辑器或CCS直接从PC打开此文件。 MAP文件将告诉我们如何在MCU的内存中分配您的代码。 如果闪存部分为空(即使用= 0),则我们将知道您的代码未链接到闪存,并将解释闪存启动在开机时失败的原因,即闪存中没有代码!

    或者,您可以使用CCS和DEBUG探测器显示代码。 在方便的时候停止执行。 然后使用CCS检查程序计数器(PC),或使用CCS拆卸窗口查看执行代码的地址。 您可以检查该地址是否为闪存地址。 调试探测器始终保持连接。

    以下是几个视频供您参考:

    https://www.youtube.com/watch?v=uLHVtBjWSUQ

    https://www.youtube.com/watch?v=LwxwJjq2IEg 

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

    您好,Gus,

    我观看了上面Whitney链接的视频。 进入调试配置,选择"启用实时模式"和"仅加载符号"。 我运行了dbugger并检查了程序计数器(在0x3F402C处停止,而闪存从0x3E8000 到0x3F7FF8)。 它肯定是从闪存运行的,所以至少是有效的。 我的主板按预期与LCD主板通信。 但是,关闭电源后重启的结果与之前相同。

    稍后我会将该示意图发送给您...

    谢谢!

    戴夫

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

    Dave,您好!

    感谢您通过私人信息分享原理图。 我正在跟进 一位更熟悉此设备的同事,了解后续步骤。 我会尽快回复你。

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

    好的,谢谢Gus。

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

    Dave,

    如上所述,输入main()后立即修改代码以捕获操作,并连续切换可以使用范围监控的GPIO。  将 代码加载到TI EVM的闪存中,并在闪存启动中启动EVM。 如果代码正确启动,则您的硬件可能存在问题。

    根据Whitney之前的建议,您还可以导入 FLASH_f2.8069万项目并首先在TI EVM上运行,以验证其是否可以启动。 然后尝试在您的硬件上运行它。

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

    您好,Gus,

    我已经尝试了你上面第一段中的建议。

    我在main()的开头加入了以下内容:

      ASM (" EALLOW");
      gpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0;//将GPIO12设置为GPIO
      gpioCtrlRegs.GPADIR.bit.GPIO12 = 1;//将GPIO12设置为输出
      ASM (" EDIS");
      对于(;;)
      {
          ASM (" EALLOW");
          GpioDataRegs.GPATOGLE.bit.GPIO12 = 1;//将GPIO12设置为每次遇到此行时切换
          ASM (" EDIS");
          DELAY _US (1万);
      }

    我已将代码加载到我的DRV8301-HC-EVM评估板上的闪存中。

    如果我只是使用调试按钮,它会加载,但"运行"按钮不可用,并且我看到以下错误:

    C28xx:闪存编程器:警告:配置的器件(TMS320F2.8069万)与检测到的器件不匹配()。   闪存   编程操作可能会受到影响。 请考虑修改目标配置文件。
    C28xx:CPU重置失败:(错误-1041 @ 0x0)调试探测器报告错误。 确认调试探测器配置和连接,重置调试探测器,然后重试此操作。 (仿真软件包9.3 .0.0.0058万)
    C28xx:GEL:调用OnPreFileLoaded()时出错:重置失败:retcode=-1
    C28xx:CPU重置失败:(错误-1140 @ 0x0)与设备的调试连接丢失。 重置设备,然后重试此操作。 如果错误仍然存在,请确认配置,关闭电路板电源后重启,和/或尝试更可靠的JTAG设置(例如,Lower TCLK)。 (仿真软件包9.3 .0.0.0058万)
    C28xx:闪存操作期间发生错误:CPU重置错误。 错误代码-1
    C28xx:CPU重置失败:(错误-1138 @ 0x0)设备拒绝允许调试模式。 关闭并重新打开主板。 如果错误仍然存在,请确认配置和/或尝试更可靠的JTAG设置(例如,Lower TCLK)。 (仿真软件包9.3 .0.0.0058万)
    C28xx:闪存操作期间发生错误:CPU重置错误。 错误代码-1

    第一个看起来很有趣。 它告诉我微型不是F2.8069万。 虽然这可能不是真的,一般来说,因为它是F2.8069万家族的成员,但严格地说,这是真的,因为它是F2.8069万M。

    我将查找专门适用于M变体的命令文件。

    当我完成的更多手动过程时

       启动目标配置

       选择CPU和连接

       运行-->加载符号,

    "0x3FF75B (未定义符号)" 出现在所选CPU下,并出现一个选项卡,其中显示以下消息:

         在地址“0x3ff75b”处中断,没有可用的调试信息,或在程序代码之外。

    如果在此之后我先充电,然后尝试运行程序,中断点将无法识别,暂停会产生与上述相同的“地址中断”消息,因此我无法调试该问题。

    谢谢!

    戴夫

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

    您好,Gus,

    我确实找到了TMS320F2.8069万M的cmd文件,实际上是两个:

    f2.8069万M.cmd和

    f2.8069万M_ram_Lnk.cmd。

    这显然不是问题(见上一篇文章)。

    我单独尝试了每种方法,结果与以前相同(这是EVM的结果)。

    但是,问题似乎与硬件无关。

    症状略有不同,但EVM也存在类似的问题。

    Debug探测器是一个显著的差异。 DRV8301-HC-EVM内置了XDS100v2。

    有一个JTAG端口,但我无法使用它与XDS110连接(我想在*TRST线路上进行下拉)。

    这就是现在的情况。 我将于12:30到3:00开会。 也许我们可以在这之后再谈。

    谢谢!

    戴夫

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

    您好,Gus,

    已尝试运行flash_f2.8069万项目,但编译器不断抛出一个无法指定的错误。 在子例程InitEPwmTimer中,第305行的左侧有一个错误标记。 我想我可以评论那一行,但错误标记仍然存在-在被评论的那一行! 我可以对子例程中的所有行进行注释。 错误在InitEPwmTimer中移动,直到删除整个子例程。 然后,错误标记将移至下一个函数-中断服务例程"epwm1_timer_isr"。 非常奇怪的行为。

    戴夫

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

    Dave,

    您可能拥有 DRV8301-69M-Kit,其中包括 TMDSCNCD2.8069万MISO控制卡。 您可以仔细检查controlCARD上的标签以确保正确。 该控制卡不支持通过套件基板进行JTAG访问,您只能通过controlCARD上的USB端口连接到该控制卡。 这就是XDS110无法连接的原因。 值得注意的是,controlCARD内置了XDS100v1 (而不是v2)。  

    关于命令文件,如果您查看 FLASH_f2.8069万示例项目,您将看到它包括F2.8069万.cmd文件。 在该命令文件中,您可以看到它在闪存中放置了.text之类的部分,并且它还包括ramfuns部分,该部分被加载到闪存中,然后被复制到RAM中。 我建议您 将此项目导入CCS并在TI套件上运行。

     C:\ti\c2000Ware_4_01_00_00\device_support\f2806x\examples\c28\flash_f28069</s>2806 2.8069万

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

    您好,Gus,

    [quote userid="1.3605万" url="~ë/support/pectros/c2000-pmspicers-group/c2000/f/c2000-pectroper-forum/1095955/tms320f28069-how-2000-builde-release-version-of-code/4069517#4069517">2000builde-release-version-of-code/4069517#4069517">关于109.5955万关于命令28069命令文件406.9517万文件,406.9517万,如果您查看 flash_f2.8069万示例项目,您将看到F2.8069万。 在该命令文件中,您可以看到它在闪存中放置了.text之类的部分,并且它还包括ramfuns部分,该部分被加载到闪存中,然后被复制到RAM中。 我建议您 将此项目导入CCS并在TI套件上运行。[/QUOT]

    这就是我所做的,但编译器不断发出一个错误(其描述为空白),该错误会四处移动,甚至会标记注释行(请参阅上一篇文章)。

    谢谢!

    戴夫

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

    您好,Gus,

    [quote userid="1.3605万" url="~ë/support/pectros/c2000-pmspicers-group/c2000/f/c2000-pectroper-forum/1095955/tms320f28069-how-2000-builde-release-version-of-code/4069517#4069517">2000builde-release-version-of-code/4069517#4069517">关于109.5955万关于命令28069命令文件406.9517万文件,406.9517万,如果您查看 flash_f2.8069万示例项目,您将看到F2.8069万。 在该命令文件中,您可以看到它在闪存中放置了.text之类的部分,并且它还包括ramfuns部分,该部分被加载到闪存中,然后被复制到RAM中。 我建议您 将此项目导入CCS并在TI套件上运行。[/QUOT]

    这就是我所做的,但编译器不断发出一个错误(其描述为空白),该错误会四处移动,甚至会标记注释行(请参阅上一篇文章)。

    奇怪的是,如果我在 InitEPwmTimer中使用EALLOW和EDIS,而不是ASM (" EALLOW"),它将突出显示这些错误,神秘错误消失。

    我很确定我在flash_f2.8069万示例项目中没有做任何更改,但您能否向我发送您的版本的副本? 我会看看这是否在这里汇编。

    谢谢!

    戴夫

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

    Dave,

    这些问题是很奇怪的。 我不太确定可能是什么问题。 这可能有助于发送您看到的错误的屏幕截图。  

    我在这里列出了导入和生成项目所需的步骤。 注意我正在使用11.1 (帮助>关于)

    1.文件>切换工作空间>其他

    2.创建新工作空间"Dave_e2e"并点击启动

    3.文件>导入>Code Composer Studio>CCS项目

    4.向下导航至 C:\ti\c2000\C2000Ware_4_01_00\device_support\f2806x\examples\c28\flash_f28069</s>2000 28062.8069万

    5.点击“选择文件夹”并选择“Example_2806xFlash”,选中“将项目复制到工作空间”按钮。

    6. project>Build Project & project build Fine (没有关于缺少库的链接程序警告,但我认为我们现在可以忽略该警告)。

    在步骤5中,在工作区中“复制”项目非常重要。 如果以前没有这样做,并且对项目中的源文件进行了任何更改,则这些更改是在C2000ware文件夹中进行的。 任何时候重新导入项目,这些更改仍将存在。 如果您修改了源文件并进行了任何更改,我建议您重新安装C2000ware以恢复原始文件。

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

    您好,Gus,

    发送407.0198万发送您所看到的错误的屏幕截图可能会有所帮助。  [/引述]

    上面显示的原始错误。

    注意错误标记为第318行(我必须删除大量空白才能获得良好的屏幕截图,但子例程与原始例程相同。

    注释掉几乎所有内容,错误标记移动,但仍保留在子例程中,标记注释。

    删除整个子例程,错误标记向下移至下一个函数- epwm1_timer_isr。

    我将按照您的建议切换工作区。 看看这是否有帮助。

    谢谢!

    戴夫

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

    您好,Gus,

    已尝试新工作区-相同错误。 看起来我必须重新安装重新安装C2000ware

    戴夫

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

    您好,Gus,

    我重新安装了C2000Ware。 现在我根本无法连接。

    下面是从目标配置测试连接时发生的情况:

         [开始:德州仪器(TI) XDS100v1 USB调试探头_0]

         执行以下命令:

         %ccs_base%/common/uscif/dbgjtag -f %boarddatafile -RV -o -f inform,logfile=yes -S pathlength -S完整性

         [结果]


         ——— [打印主板配置路径名]------------------

         C:\Users\dreagan\AppData\Local\TEXASI~1\
             CCS\ccs1031\0\BrdDat testBoard.dat

         ——— [打印reset-command软件日志文件]------------------

         该实用程序选择了100或510类产品。
         该实用程序将加载适配器'jioserdesusb.dll'。

         软打开控制器时发生错误。

         ——— [出现错误,此实用程序已中止]---------------

         此错误由TI的USCIF驱动程序或实用程序生成。

         值为'-151'(0xffffff69)。
         标题为'SC_ERR_FTDI_OPEN。

         解释如下:
         连接过程中使用的FTDI驱动器功能之一
         返回错误状态或错误。 原因可能是一个或
         更多信息:没有插入XDS100,XDS100序列号无效,
         XDS100 EEPROM空白,FTDI驱动程序缺失,USB电缆故障。
         使用'commen/uscif'中的xds100serial命令行实用程序
         用于验证XDS100是否可以定位的文件夹。

         [结束:Texas Instruments XDS100v1 USB调试探头_0]

    注:我指定了XDS100v1,但v2也是如此。

    每一次改进尝试都让事情变得越来越糟...

    戴夫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    i重新407.0513万重新安装了C2000Ware。 现在我根本无法连接。[/QUOT]

    示例代码构建是否正常? 或者您仍然看到奇怪的编译器问题吗?

    BTW,在错误四处移动时。 我不会过分强调这一点,除非您每次都要重新生成代码以查看错误是否会移动。

    您在这里连接到什么?

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

    顺便说一句,整个程序都充满了错误,所以我也不能编译。 没有包含文件(如头等)的路径。 对于旧版本的项目,如果我在Properties --> Build --> C2000 Compiler (属性-->构建--> C2000编译器)下查看,编译器可以在一个完整的路径列表中查找包括的内容。 在Properties --> Build下的新版本中,没有任何内容,甚至没有C2000 Compiler副标题。

    谢谢!

    戴夫

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

    是的-我看到它在每次构建后移动的时候。

    正在尝试连接到评估板。

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

    连接问题是我的问题。 我的工作台上有评估板和XDS110调试器,并且选择了错误的电缆来连接到计算机。 抱歉,我只是慢慢地陷入疯狂

    戴夫

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

    我可以添加这些路径。 这只是一种痛苦,尤其是当它们之前被包括在其中时...

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

    Dave,

    我真的很抱歉您遇到了这些问题。 我不知道这里会发生什么。 没有生成选项毫无意义。 请打开一个新的论坛帖子,指出您无法从C2000ware构建或加载flash_f2.8069万示例。 更熟悉该软件的人应该能够为您提供帮助。 让我们先关注如何解决问题,然后再继续从闪存启动代码。

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

    我尝试将项目导入到我的工作区中,并收到以下消息:

         项目'Example_2806xFlash'导入失败,因为其编译器定义不可用。
         请在导入此项目之前安装C2000 v 21.6 编译器:
         请参阅'Help > Install New Software'(帮助>安装新软件)并选择'Code Generation Tools Updates'(代码生成工具更新)以检查是否存在这种情况
         编译器可通过CCS更新获得。
         —访问CCS应用程序中心获取最新的编译器支持。
         或下载并安装编译器[http://software-dl.ti.com/codegen/non-esd/downloads],
         然后通过‘首选项> CCS >构建>编译器’将其注册到CCS

    我可以获得尽可能多的代码生成工具更新,但列表非常庞大。 不确定要安装或更新哪个。

    您建议使用哪种论坛?

    谢谢!

    戴夫

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

    列表中有一个C2800 v 21.6 0,但正如消息所示,没有一个C2000 21.6 v。

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

    当我发布一个新问题时,我是否有办法将今天的帖子包括在内,但不能让谁回答这个漫长的沟通链中的问题?

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

    没关系。 我刚刚发布了新的问题,并对我们讨论的内容进行了简要总结。

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

    您好,Gus,

    KI的帮助下,他又要求乔治·莫克进行权衡。 他找出了明显的"编译器问题"。 (当然)我做了一件愚蠢的事。 有一次,我试图将通信代码和电机控制代码合并到一个程序中。 这需要使用头文件F2806x_Device.h和cpu.h 一些定义在它们之间重复,因此我在F2806x_Device.h文件中对它们进行了注释。 在flash_f2.8069万示例中,cpu.h显然未被使用,因此在 F2806x_Device.h中注释掉这些行会导致EALLOW,EDIS等未定义。 为什么显示的错误指向似乎与这些命令无关的代码(或注释),我不知道。

    无论如何,我要将flash_f2.8069万示例加载到DRV8301-69M-Kit中。 我遇到的问题与以前差不多-它编译,加载并从闪存运行,只要调试器存在。 我可以停止调试器-仍在运行(即  TMDSCNCD2.8069万MISO控制卡上的LED3正在闪烁),然后拔下调试探测器-仍在运行,然后关闭电源再打开-未运行。 插入debug探测器并重新加载代码,所有操作都将从Flash运行。

    刚刚注意到,如果我执行上述所有操作,最后一步是关闭电源再打开,然后插入调试探头,则LED3将再次开始闪烁。 所以我认为这可能与*TRST相关,或者可能是两个启动模式选择必须高的信号(GPIO34和GPIO37)。

    如果我停止调试器,关闭电源,将SW1的两个开关都切换到关闭位置,然后打开电源,LED3将持续亮起,这意味着GPIO34一直处于低电平状态-这并不奇怪,因为它在该开关位置处于低电平状态, 但是,如果程序正在运行,则应切换该信号。 下拉式为3.3k。 似乎不会使GPIO不堪重负。

    如果我错过了一些东西,那么这也是我一直错过的东西。

    谢谢!

    戴夫

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

    好的-让它在EVM上运行。 必须打开SW1的两个开关(在控制卡上),关闭SW3的两个开关- SW2都"不在乎"。 我看到的唯一关于更改开关位置的参考是在FLASH_f2.8069万示例代码的开头。 它说

    "//!   -将硬件跳线设置为引导至闪存(将位置1和2置于
    //!     控制卡上的SW2至打开位置)"

    这是完全错误的。

    因此,在我的主板上,我将尝试以下操作:

    将GPIO34和GPIO37 High通过3.3k Ω 电阻器连接。

    Tie *TRST Low -尝试3.3k。 如果不起作用,请尝试10公里。 如果这不起作用(根据我的经验,调试器无法连接),我想我必须在其中放置一个开关,它将高度用于编程/调试,然后低度用于从闪存运行。

    将程序加载到闪存中。

    关闭电源并拔下调试探头。

    打开电源,它应该会运行。

    如果我忘记了什么,请告诉我...

    谢谢!

    戴夫