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/MSP430F5437A:CCS 9.2、使用 GEL 文件从.out 文件添加符号

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/887345/ccs-msp430f5437a-ccs-9-2-add-symbols-from-out-file-using-gel-file

器件型号:MSP430F5437A

工具/软件:Code Composer Studio

您好!

当我启动固件的调试会话时、我希望自动添加位于同一工程文件夹中的引导加载程序中的符号。
   CCS_Project/
      Boololoader/bin/bootloader.out

我已经了解可以使用 GEL 文件来完成它。 是这样吗?

1) 1)将 GEL 文件添加到工程根(CCS_Project)中名为 GEL 的文件夹
2)启动调试会话(break @ main)、然后打开"Tools->GEL Files"菜单。
3) 3)添加了 GEL 文件
4) 4)重新加载 GEL 文件
错误:MSP430:GEL:加载文件'C:\abc\def\ccs_Project\Bootloader\my_GEL_file.gel'时出错:第3行:字符不匹配:'EOF'

GEL 文件的内容是

startup()
{    
   GEL_SymbolAdd ($(GEL_file_dir)/bin/Bootloader.out);


即使这样做也不会住在这里。 每次都必须添加它。 这是因为它不能正常执行吗?

GEL 文件有什么问题、如何自动加载?

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

    您好!

    [引用 user="Jerker Dahlblom"]   GEL_SymbolAdd ($(GEL_file_dir)/bin/Bootloader.out);

    缺少一个引号字符。 它应该是:

    GEL_SymbolAdd ("$(GEL_file_dir)/bin/Bootloader.out);

    要自动加载 GEL 文件、请在 CCXML 文件中将 GEL 文件指定为启动 GEL 文件

    谢谢

    Ki

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

    谢谢! 取得进展。

    现在 GEL 文件会自动加载、但不会自动执行。 我必须通过"GEL File"->"Reload "窗口手动执行此操作、然后它会添加符号。

    以下是 targetconfig 文件和 GEL 文件(pl-151.gel)中更改的屏幕截图。 我必须退出 GEL 文件中的斜杠才能使其正常工作。

    一个奇怪的观察结果是、当我在 main 处拆分并转至"Tools"->"GEL Files"时、"GEL Files"窗口会显示(在之前的调试会话中明确关闭它之后)。 下次我启动调试会话并在同一个位置中断时、此窗口不显示、而是显示"内存映射"。

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

    Jerker Dahlblom 说:
    现在 GEL 文件会自动加载、但不会自动执行。 我必须通过"GEL File"->"Reload "窗口手动执行此操作、然后添加符号。

    情况不应如此。 应在加载 GEL 文件时执行 starting()函数中的任何 GEL 操作。 这是我看到的行为。 请尝试在函数中添加 GEL_TextOut 调用、以确认 GEL 文件自动加载时会运行启动函数。  

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

    是的、它可以打印输出。 但我在内存浏览器中看不到任何符号。 它们仅在通过"GEL Files"窗口重新加载该文件后出现。

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

    您能否尝试改用模块视图来检查符号是否首次加载?

    http://dev.ti.com/tirex/explore/node?a=VLyFKFf__3.6.2&node=APVIzRhtpuf-7AMAb9iu3w__FUz-xrs__LATEST&r=VLyFKFf__LATEST

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

    已选中!

    模块窗口在开始时仅显示固件的*。out。 在"GEL Files"窗口中进行"Reload "后、引导加载程序的*。out 会显示在"Module"窗口中。 因此、它与存储器浏览器中显示的符号完全相同。

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

    这很奇怪。 我似乎无法再现这种行为。

    请参阅随附的视频。 我假设这与您所做的类似。 请注意、当我首次加载 GEL 文件时、如何加载其他符号。

    /cfs-file/__key/communityserver-discussions-components-files/81/startup_5F00_gel.zip

    您是否也在做同样的事情、除了这些符号不会第一次加载?

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

    >您是否也在执行相同的操作,只是第一次没有加载符号?

    完全正确!

    现在我自动加载文件、它会显示在"GEL Files"下、但我必须从同一窗口执行"Reload "才能正常工作。

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

    [引用 user="Jerker Dahlblom"]现在,我自动加载了文件,它会显示在"GEL Files"下,但我必须从同一个窗口执行“重新加载”才能正常工作。

    有趣的是、我观察到了以下行为。 当我将 GEL 文件作为启动 GEL 文件添加到 CCXML 文件时、我会看到与您一样的问题。 如果我没有将其作为启动 GEL 文件、并且第一次手动加载 GEL 文件、则所有文件都可以工作(如我的视频中所示)。

    如果我理解正确、这两个选项都不适合您。 是这样吗?

    加载符号调用肯定会有一些问题。 我需要进一步调查。

    谢谢

    Ki

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

    >如果我理解正确,则两个选项都不适合您。 是这样吗?

    正确、很高兴您能部分重现此内容。 非常感谢!

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

    谢谢。 我对此问题提出了很大的要求。 您可以通过以下链接来跟踪它:

    https://sir.ext.ti.com/jira/browse/EXT_EP-9747

    谢谢

    Ki

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

    经过进一步分析、确定了根本原因是什么、这是预期行为。

    基本上、所发生的是以下序列:

    启动项目调试会话

    2.在 GEL 函数中调用启动。

    引导加载程序的符号会添加到符号表中

    4.目标已连接  

    5.加载项目的程序。 这将清除之前加载的任何符号、然后刷写目标并加载该程序的符号。

    这解释了我们看到的行为、以及为什么重新加载 GEL 将起作用。

    对于无工程调试会话、不会出现此问题。  

    如果在调试器启动后手动加载 GEL 文件、也不会发生这种情况。

    Ki