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.

[参考译文] F28M36H33B2:GUI编写器加载了目标但不运行目标应用程序

Guru**** 2589280 points
Other Parts Discussed in Thread: F28M36H33B2

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/642357/f28m36h33b2-gui-composer-loads-target-but-does-not-run-target-application

部件号:F28M36H33B2

我正在使用基于云的GUI编写器。 如果我预览GUI,它会通过云代理和XDS 200连接到硬件,并对目标进行编程,但目标只是挂起,无法运行。 如果它在我连接之前运行,它也会在编程之后停止。 我在另一篇文章(e2e.ti.com/.../60.1175万)中看到过此问题 ,他们说是GEL文件中的重置说明导致了此问题。 我尝试执行同样的操作并删除凝胶文件中的重置,但这没有帮助。 我的凝胶文件看起来也不同,因为我使用的是不同的设备,所以我不确定我是在更换正确的东西还是由其他东西引起的? 请参阅随附的文件夹中的凝胶文件 ..... \AppData\Local\Texas Instruments \TICspeedAgent\loaders\CCS_base\emulation\gele2e.ti.com/.../f28m36h33b2_5F00_m3.gel

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

    您附加的文件已正确删除重置。 我们是否确定凝胶文件正确? 您是否检查了CCXML文件以查看它指的是哪个凝胶文件? 只是为了确认您正在将程序加载到Cortex M3内核,而不是28x内核,正确吗?

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

    是的,它与.CCXML文件中的路径"initialization scrip"所指向的文件相同。 但这是我在Desktop CCS中查看CCXML文件的时候。 如何在云GUI Comoser中检查/设置此项? 是的,我正在将其装入M3芯。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用的是该CCXML文件,则它应该与GUI Composer使用的Gel相同。 通常,我会建议在GEL文件中添加一些内容,这些内容会涉及我们可以在GUI Composer中查看的内容,但由于其他问题,可能无法正常工作。 我想你可以插入一个打开notepad.exe的g胶_System()命令或者类似的命令来确认它正在被执行。 您只需将该命令放在Gel文件的OnTargetConnect()函数中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在gel文件中添加了以下行:

    GEL_System ("开始C:\\Users......" \\test.txt")

    当我连接到桌面CCS时,它可以工作,但不能连接到云GUI撰写器。 所以我想它不能运行正确的凝胶文件。 当我只上传.out文件时,GUI Composer如何知道要加载哪个CCXML文件? 我是否还必须上载CCXML文件?

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

    我正在研究这个问题。 我安装了28M35。

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

    在这种情况下,将立即生成.CCXML。

    我可以确认您为凝胶文件指定的位置是否正确。 我尝试在那里放置g胶 系统()调用,但我没有看到输出。 我启用了日志记录,我可以确认它被调用,以便加载正确的文件。

    我注意到的一件事是,如果在结束GUI撰写器会话后“dslite.exe”没有终止,则GEL文件不会重新加载。 例如,如果您运行,然后对gel文件进行了更改并再次运行,则不会在gel文件中进行更改。 为了进行测试,我在停止GUI编写器会话后检查了任务管理器,如果dslite进程仍然存在,则会终止该进程。

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

    您是否有幸进一步了解这一问题?

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

    我不知道如何进一步处理这个问题。 我插入的用于打开记事本的行适用于CCS桌面,但不适用于云GUI,因此显然无法执行正确的Gel文件。 我仍然不理解Cloud GUI Composer如何知道在哪里可以找到正确的CCXML文件,以及扩展名是正确的Gel文件(如果是动态生成的)? 我在任务管理器中找不到程序"dslite.exe",因此我不确定该怎么办。

    而且,现在突然之间,我又遇到了另一个问题,使我无法继续处理这个问题。 当我尝试连接时,它会显示消息“System is already configured”(系统已配置),然后它会挂起。 我尝试关闭并重置所有内容,但它不断地向我发出这条消息。 因此,我可以在GEL文件再次连接之前进一步调试它的问题。 (我想这是另一个问题,我需要打开另一个线程,但实际上我已经有其他两个线程在运行,我在使用Cloud GUI Composer时遇到了不同的问题。 因此,我希望这是一个容易解决的问题,以便我能够回到最初的问题。 你知道为什么它会给我这条消息吗?)

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

    由于某种原因,GEL_System()调用与GUI Composer的工作方式不同。 通常情况下,我会尝试notepad.exe的技巧,但我尝试了它,却无法使其发挥作用。 我对提出这一建议表示歉意,它应该起作用,但我应该在提出建议之前尝试一下。 相反,我打开了一些日志记录,我可以看到加载了正确的凝胶文件。 因此,我相信您已编辑了正确的文件。

    我在F28M35板上尝试了一些程序。 现在,我只在GUI Composer仪表板中获得1个更新。 我用全局变量创建了一个简单的变量,其值不断变化。 但是,GUI只显示一次该值,然后不再更新。 在CCS中,我看到它不断变化。 我将添加一些代码来闪烁LED,以便我可以确定它是否正常运行。

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

    阿尔伯特

    现在我可以确切地看到您所看到的内容。  (由于我有打字错误,所以编辑了此行,因此它说不是现在)

    我将程序更新为闪烁LED指示灯,以便查看它是否正在运行。 我还将把它放在闪存中。

    启动GUI Composer。 程序正在运行时,我看到LED闪烁,它再次闪烁程序,闪烁一会。 然后它再次连接,程序停止运行。

    如果我在CCS中执行类似的顺序。 启动调试器(它连接并编程闪存,在main()处停止),如果运行它工作正常。 如果我断开连接,它仍在运行。 当我连接它时,它会挂起。 我已经在Gel文件的OnTargetConnect()函数中注释了每一行,但连接时它仍然挂起。 这是导致问题的原因。 我想我们可以做一些事情,让OnTargetConnect()加载程序并运行。 我会看看是否有人能弄清楚为什么设备在连接时停止。

    此致,
    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以让程序运行,也可以让GUI Composer连接,但我无法让它连接和运行。

    加载程序后,当GUI Composer在加载后断开连接时,它将运行几秒钟。 但是,一旦GUI Composer再次连接,程序就会停止。 我可以通过在OnTargetConnect()函数中加入一个GEL_Run()来让它再次运行该程序,但这会阻止GUI Composer正确连接,从而导致GUI无法获得更新。 我尝试过对Gel文件进行许多不同的修改,但没有成功地获得我们所需的状态。

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

    阿尔伯特

    如果您仍有兴趣获得此功能,我有一个解决方案。

    这个问题一直困扰着我,因为我无法弄清楚到底发生了什么。 基本上,发生的情况是,负责闪存的组件在加载时发出重置。 使用GUI编写器时,实际上会在组件在不同阶段加载和卸载时导致多次重置。

    所以我所做的就是清除Gel文件中的几乎所有内容。 这可能没有必要,但我一直在尝试这种方法,以至于我的文件处于该状态。

    然后,在OnReset()函数中,我添加了如下所示的行:
    PC = 0x0.0201万BA4;

    基本上,重置后,它将程序计数器设置为_c_int00的地址
    我无法在此处使用符号,因为符号可能未加载,所以我使用CCS确定地址,然后输入该地址。

    现在GUI编写器正在为我工作。



    我们将就重置的原因以及是否应删除进行更多讨论。

    此致,
    John

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

    您好,John

    感谢您的回复。 是的,我仍然希望这项工作能正常进行。 我当时外出度假,但现在回来了,将尝试您的建议。  

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

    您需要使用CCS来确定c_int00的地址是您的应用程序的地址,然后调整Gel文件中的行以匹配该地址。 这是一种痛苦,因为当你重建你的程序时它可以改变,但诀窍对我有效。

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

    你好,Johns

    我已经实施了您关于使用pc=c_init00修改gel文件的建议。 这似乎解决了重置问题。 这是设备特定问题还是GUI编写器问题。 它是否会被修复?  

    现在,当我连接到GUI编写器并加载程序时,目标应用程序将继续运行,并且我可以看到正在更新的GUI上的值。 但是,这些值完全是随机的,没有意义。 就好像GUI构件链接到了错误的变量。 我不确定这是否是一个单独的问题,以及是否需要为其打开另一个线程? 似乎在我在Gel文件中执行PC解决方法之前就发生了这种情况。 唯一的区别是,这些值现在正在更新,尽管这是错误的,因为目标不再重置,我现在只注意到了。 当我将同一GUI导出到CCS Desktop View时,它工作正常,因此GUI本身没有任何问题。

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

    该问题是特定于设备的,但仍然是一个错误。 执行刷新的组件是dll。 此dll是特定于设备/系列的。 当C2000一个加载时,它将重置器件。 在CCS中,这不是问题,因为序列是正常的,因为我们在加载dll后加载程序,所以重置不重要。 使用GUI编写器时,顺序不同,稍后重新加载dll,这会导致在加载程序后重置。

    我在另一位用户使用C2000器件时再次遇到了同样的问题。 在他们的情况下,他们正在将程序加载到RAM中,但在重置后,设备被设置为从闪存引导,因此会执行错误的程序。 解决方法是我在gel文件中看到了一些注释掉的行:

    // emu引导SARAM();
    // emm_boot_flash();

    我取消了对第一个的注释,然后它会在重置后从RAM启动。 很遗憾,我在GEL文件中看不到您正在使用的设备的等效功能。

    加载dll时,有一个错误跟踪功能正在消除该重置。 这将得到解决。

    我已经看了一段时间了。
    当您在GUI中获取更新时,听起来好像设备正在运行。
    您是否知道程序是否正常工作? 想知道程序的操作是否发生故障。
    程序是从RAM运行还是从闪存运行?

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

    它是从RAM运行的(我加载了RAM .out文件)。 当我现在加载Flash .out文件时,它正在工作。 这似乎是问题所在。 奇怪的是,我在gel文件中使用的_c_init00地址是我在CCS中加载RAM符号时得到的值。 这就是为什么我将RAM .out文件加载到GUI编辑器中的原因。 然后我尝试加载Flash .out文件并使用 从CCS加载Flash符号中获得的_c_init00地址值,但它不起作用。 然后,我尝试了带有Flash .out文件的RAM符号中的_c_init00地址,结果成功了。 所以我只需要从Flash运行。 但是,您的解决方法现在可以正常工作,谢谢。 在哪里可以按照错误修复来查看它何时修复?

    此致

    阿尔伯特  

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

    阿尔伯特

    错误ID是 GC-1133。  当您在CCS论坛中时,右侧应该有一个错误跟踪链接,可用于检查状态。

    此致,

    John