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.803万:GUI编写器出现问题

Guru**** 2539500 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/659085/ccs-tms320f28030-problem-with-gui-composer

部件号:TMS320F2.803万

工具/软件:Code Composer Studio

您好,  

我想在GUI Composer Studio上运行代码时查看变量,我可以执行 https://dev.ti.com/gc/designer/help/Tutorials/xds/index.html中提到的所有步骤。

那么,您能否告诉我,在运行代码时,我可以做些什么来简单地查看全局变量的值,而不是在CCS中查看变量。 是否有文本框或其他内容。 我已经完成了手册,但它不是很有帮助。

我当前正在使用简单代码将全局变量值切换为0和1。 但问题是,每当我尝试将LED中的值与全局变量绑定时,就没有变量列表。 当我尝试绑定值时,我只得到3个选项,即在选择my_XDS后自动加载程序,类名,ID。

所以,您可以帮助解决这两个问题。

谢谢!

此致

Sagar

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

    Sagar,

    在创建GUI Composer项目并选择XDS作为传输时,是否可以指定程序文件?

    例如,您是否能够填写此屏幕:

    如果没有,您可以在此处返回这些设置:

    此致,

    John

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

    我现在可以将小部件与我的变量绑定。 上传.out文件后,我无法连接到目标设备。

    现在,我的问题是,在我选择“导出到CCS桌面视图”后,我无法从我的CCS桌面运行它。 我已经粘贴到CCSDesktopInstallRoot/Ccsv7/eclipse/dropinse-gc中。

    您能告诉我如何从桌面版本运行GUI吗?

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

    您好,Sagar:

    上传.out文件并绑定小部件后,您是否能够在在线版本中预览应用程序?

    导出CCS Desktop应用程序时,该应用程序的工作方式与CCS中的任何其他视图类似,即它基于调试视图中选定核心的读/写存储器。 那么,在您的情况下,当您将应用程序放入CCS时,您是否没有看到这种体验?

    如果不想使用CCS,也可以将应用程序导出为独立应用程序。 下载运行时并将应用程序安装到运行时中。 导出对话框中应有关于运行时的说明,以及在独立模式下安装应用程序所需的说明。

    此致,
    Patrick

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

    您好,Patrick:

    我会尝试将其用作独立应用程序,如果遇到任何困难,我会通知您。
    我还有一个关于以下代码的问题。 我只需打开和关闭LED小部件。 (LED_state与LED小部件绑定)。
    我看到它只运行一次,即只要我单击“播放”,它就会打开和关闭一次。它不会无限运行。 我可以在CCS中看到观察表达式的预期结果,但在GUI中只能看到一次。 请帮帮我。

    代码:

    Int 16 LED_state = 0;
    同时(1)

    LED_状态= 1;
    DELAY _US ((50万));
    LED_state = 0;
    DELAY _US ((50万));
    }


    谢谢
    此致
    Sagar Shah

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否可以附加我可以在dev.ti.com/ide上使用的项目以生成.out文件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../Example_5F00_2803xGpioToggle.zip

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

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

    是否有任何更新?

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

    您好,Sagar:

    请查看此帖子  

    Patrick

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

    感谢您的回复! 我无法在代码编写器项目中找到TargetConnect()或Gel文件。 您能帮我找到该文件/子例程吗?

    谢谢
    Sagar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您正在运行独立的GUI Composer应用程序,则Gel文件将位于中
    <user folder>\AppData\Local\Texas Instruments \TICspeedAgent\loader\CCS_base\emulation \gGE\

    在CCS中,Gel文件位于:<CCS安装目录>\ccsv7\CCS_base\emulation \gel
    在活动的调试会话中,从CCS中最容易找到已加载的gel文件。 只需转至工具菜单并选择"Gel Files"(Gel文件)

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

    正如您在gel文件的目标配置中提到的PC地址,我将其更改为gel文件。
    但是它不起作用。 我从我的while (1)循环中看到它,并从初始化开始执行代码。

    还有其他办法吗? 我希望在我的截止日期即将到来时尽快完成!


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

    总之,发生的事情是:
    GUI Composer对设备进行编程
    GUI Composer在完成编程后断开与设备的连接
    设备将立即运行
    GUI Composer随后将连接到设备,因为您已选择XDS作为从设备读取数据的传输机制
    -此连接导致重置
    设备重置后,通常设置为从闪存运行。

    您是否正在将程序置于闪存或RAM中?

    我在F2.8069万M上设置了一些测试方法。 我使用CCS用快速的“盲”程序对闪存进行编程。 然后设置GUI Composer以显示慢速Blinky程序中LED的状态,此程序被配置为在ram中运行。 启动GUI编辑器时,我可以看到它加载我的程序,我看到LED缓慢闪烁。 然后,我看到GUI Composer断开连接,然后我看到LED快速闪烁,因为设备正在从闪存运行程序。

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

    从您的附加项目中,我可以看到它正在将程序放入RAM中。  右键单击项目中的链接程序命令文件,然后选择从生成中排除。  将附加的链接程序命令文件添加到项目中。  我附上了2,因为主题行引用了2.803万,但所附项目使用的是2.8035万,所以选择与您的设备相匹配的项目。

    e2e.ti.com/.../F2.803万.cmd

    e2e.ti.com/.../F2.8035万.cmd

    执行此操作后,请重建项目,然后在GUI Composer中确保进入属性并重新上载.out文件。

    此致,

    John

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

    感谢您让我了解后面发生的事情。 是的,我以前是在RAM中构建的。 因此我更换了链接器文件,现在我成功地启动并运行了GUI编写器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很棒!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果要运行配置为闪存的CCS项目,是否应附加上述附加文件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sagar,

    我不知道你的意思是什么。

    如果您使用提供的.cmd i重建了CCS项目,那么当您在CCS中启动调试器时,它会将该程序写入闪存。 基本上,CCS和GUI Composer使用的云代理都可以查看程序,并根据地址了解需要将哪些代码放置在RAM或闪存中,并且能够对闪存进行编程。

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

    在2.8035万的原始代码(我没有共享)中,我使用Delay_US(1000)函数。 所以我必须将DSP2803x_usDelay.asm中的.sect 'ramfunc"更改为".text",因为它给了我运行时错误(在代码编辑器工作室中),因为它不能加载到闪存中。
    执行此操作后,我的代码的行为再次相同,您的建议在此不起作用。 (我可以观看表达并查看值)

    那么我该怎么做呢? GUI编写器是否总是那么麻烦?
    由于我还有几天的最后期限,因此我需要寻求快速建议。

    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题在于加载闪存加载程序dll时启动了重置。

    如果您使用的是delay_US函数,那么我们需要从RAM中执行此操作,或者您需要在运行时将该部分从闪存复制到RAM中。

    可能有一个更简单的解决方案。
    如果我看一下F2.8069万的凝胶初始化文件

    此文件位于:
    C:\Users\<您的用户名>\AppData\Local\Texas Instruments:TICspeedAgent\loader\CCS_base\emulation \gel


    OnReset()函数如下所示(F2.803万的函数看起来相同):
    OnReset (内部错误代码)

    IF (Gel_IsInRealtimeMode())/* If in Real-time-mode */

    }
    ELSE /*将设备置于C28x模式*/

    C28x_Mode();
    }
    解锁_CSM();
    Device_Cal();

    //在复位时取消所需引导模式的注释:
    // emu引导SARAM(); /*设置EMU引导变量-引导至SARAM */
    // emm_boot_flash(); /*设置EMU引导变量-引导至闪存*/
    }


    如果我取消注释此行:
    EMU_BOOT_SARAM(); /*设置EMU引导变量-引导至SARAM */

    然后,在重置后,应用程序将从RAM中运行。 默认情况下,它似乎在重置后从闪存运行。 我不是C2000器件的专家。


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

    您提到的解决方案我曾尝试取消评论,但它不起作用。 是否有桌面版本可以代替云运行?

    那么,您是否希望我执行其他操作来运行GUI?

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

    另外,我想补充一点,它在不使用DELAY _US()的情况下工作正常,当我使用RAM运行它时。

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

    sagar shah54 说:
    另外,我想补充一点,它在不使用delay_US()的情况下工作正常,而且当我使用RAM运行它时。

    这是否意味着如果您将GEL更改为从RAM启动,只要您不使用DELAY _US(),它就能工作,或者您是否意味着即使不对行进行注释,它也能从RAM启动,因为没有使用long ad delay_US()?  如果前者对我没有意义,我会找一位C2000专家。

    如果不使用云版本,这是可能的。  您可以将GUI导出到独立应用程序以在桌面上运行,也可以将其作为在CCS内部使用的视图。  作为独立应用程序导出仍会出现相同的问题。  如果您将其导出为内部CCS的视图,则可以使用CCS加载程序,然后打开该视图,这样可以避免出现问题。

    John

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

     我的意思是,即使不对RAM中的行进行注释,它也可以工作,因为AD DELAY _US()不使用。 因此,如果我  使用delay_US()并使用flash.cmd文件,问题就会开始。 因此,您提到的解决方案不起作用。 是否曾尝试使用带有delay_US()函数的闪存文件在2.8035万中使用GUI编写器?  

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

    如果您没有注释掉该行,它将从Flash执行。 我怀疑您在闪存中有一个不使用DELAY _US()的程序副本,您看到的是执行的程序,而不是RAM中的程序。 我在RAM和闪存中放置了不同的程序,我可以清楚地区分它们,以便我知道实际执行的是哪一个。

    可以在运行时将delay_US()从闪存复制到RAM,如以下线程所述:
    e2e.ti.com/.../209.962万

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

    我已将delay_US()函数更改为.text,这样代码就能在CCS上很好地运行,我可以看到变量。 但当我再次使用GUI时,它不起作用!

    是否曾尝试使用带Delay_US()函数的闪存文件在2.8035万中使用GUI编写器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Sagar,

    sagar shah54 说:
    我已将delay_US()函数更改为.text,因此代码在CCS上运行良好,我可以查看变量

    因此您改变了:

        .def _DSP28x_usDelay

        .sect "ramfuncs"

    至:

        .def _DSP28x_usDelay

        .sect ".text"

    文本放置在何处?  即.cmd文件中的行是什么样子的

      文本       :> RAML0_L3, 页= 0

    或类似的内容?

      文本       :> FLASHA, 第= 0页

    如果要将其放在闪存中,则需要将其复制到应用程序的RAM中。  您不想将其放在.text中,因为您只想将相关代码复制到RAM中,因此请将其保留在ramfunc中。

    C2000Ware中有一些示例项目,说明如何在运行时复制ramfunc部分。  只需看看Example_F2.8035万_Flash。  您仍有代码进入ramfunc,ramfunc部分被放在闪存中进行加载,但在运行时它被复制到RAM。

    在该设备上,如果它在CCS中工作,请不要假定它将在GUI Composer中工作。  请注意,如果程序被置于RAM中,CCS仍将正常工作。  使用CCS时,不会出现导致设备从闪存开始执行的额外重置。  该问题特定于GUI Composer。

    John

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

     是的,我确实更改 了.def _DSP28x_usDelay

       .sect "ramfuncs"

    至:

       .def _DSP28x_usDelay

       .sect ".text"。

    在Cmd文件中,它在屏幕剪辑中显示的内容如下:

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

    只是让您知道,我们仍在关注此问题。 F2.8035万的其他人将设置此功能。 我一直在使用F2.8069万。 请注意,我认为您不想将.sect "ramfuncs"更改为.sect ".text"。 如果执行此操作,则应用程序代码中的memcpy命令将无法找到它以在运行时将其复制到RAM。

    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,谢谢。 我将在使用F2.8035万后等待响应。 谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Sagar,

    我修改了您的代码,使它在F2.8035万上从Flash中工作。

    正如John前面提到的, DELAY函数需要从RAM运行,因此它被放在一个单独的部分,然后在运行时从Flash复制到RAM。 这不是自动完成的,而是用户需要通过调用memcpy来完成的操作。 我建议您看看 FLASH_F2.8035万示例,并仔细阅读源代码中的注释,这些注释告诉您何时以及为什么应该复制本节。  

    我已将memcpy与其他一些小更新一起添加到您的源文件中,并在下面附加了更新的项目。 我能够将变量LED_STATUS绑定到GUI Composer LED小部件并查看其状态。 请尝试一下,并告知我们这是否解决了您所看到的问题。

    e2e.ti.com/.../Example_5F00_2803xGpioToggle_5F00_sagar.zip

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

    我尝试运行您修改的代码,但无法使LED指示灯亮起和熄灭。 (我有blink led状态变量绑定到led)。
    我怀疑重置可能会发生某些情况。

    因此,我仍不确定在采纳这些建议后如何运行。 如果有其他解决办法,请告诉我。

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

    Sagar,

    我验证了它在我的F2.8035万实验者的套件上可以正常工作,所以我不知道为什么它不适合您。

    我将在下面附加一个简短的视频,其中显示了我的GUI Composer项目设置。 它设置为从我之前附加的项目中加载.out文件。 有一个LED小部件和数字框小部件,它们都绑定到变量LED_state。  

    我不确定您是否仍在使用John之前建议的一些修改过的凝胶文件。 如果是这样,请尝试将它们还原回来。 在运行我的项目时,我没有对任何gel文件进行任何修改。  

    e2e.ti.com/.../guicomposer.mp4