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/LAUNCHXL-F2.8069万M:调试问题

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

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/628811/ccs-launchxl-f28069m-problem-with-debug

部件号:LAUNCHTXL-F2.8069万M
主题中讨论的其他部件:C2000WARE

工具/软件:Code Composer Studio

尊敬的各位

   我现在开始使用F6调试一个应用程序。

调试从正确的点开始,但接下来将随机跳过整个程序。 我觉得和主板的沟通还可以,因为它会清除闪存。  

全局变量的值正确。 但是局部变量(到main函数)没有,因为程序跳转并且没有将正确的值放在它们上

你能对此提供线索吗? 或者一些我可以阅读的文档?

谢谢

Luis Gonçalves ó n

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    0x1873f (未定义符号)
    没有"0x1873fb"的可用源

    请参阅上面显示的消息
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我对"没有定义符号"没有任何问题。 现在,尽管执行顺序不正确(这是正常的-也许是通过编译器的优化),它仍执行一个指令"int fg=1;",并且"fg"在表中显示63
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    再次,"未定义符号"

    我禁用了优化。 现在程序直接运行。  

    但变量不会在手表中实际化(即使刷新时也是如此)

    似乎是指向内存中位置的错误指针。 但该程序的编码很好

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

    I DISABLED optimization (禁用优化)。 现在程序直接运行。  [/引述]

    如果您希望获得更好的调试体验,最好禁用优化。 否则,调试体验就不像优化器可能移动指令那样简单。  

    如果不查看代码或有关您的环境的更多详细信息,我就无法判断表达式视图中的变量值为何不正确。 您可以通过在CCS中打开“取消汇编”视图(以及“寄存器”和“内存”视图),进一步调试该组件,并在逐步执行汇编指令时,仔细观察代码是否/在何处可能执行错误。

    您还在使用哪个版本的CCS? CCSv7是最新版本,建议尽可能使用最新版本。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在编译时查看这些消息。 映射文件没有这些地址

    警告:正在将数据写入自动生成的文件Allied1.T10
    警告:07e0000h的Allied1.out (.text)部分落在未配置的内存中
    (跳过)
    警告:07e0878h的Allied1.out (.cinit)部分落在未配置的内存中
    (跳过)
    警告:07e0a0ch的区域Allied1.out (.econst)在未配置的内存中
    (跳过)
    警告:07d0000h处的Allied1.out (ramfuns)部分落在未配置的内存中
    (跳过)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有关 这些警告消息的原因,请参阅此帖子。

    此外,将来请针对新的不相关问题发布新帖子,以便每个主题的讨论可以保持独立和相关。 这样,搜索论坛的用户可以更轻松地快速找到问题的答案。

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

    但发布" 2017年9月29日上午10:44 "
    再次,"未定义符号"

    我禁用了优化。 现在程序直接运行。

    但变量不会在手表中实际化(即使刷新时也是如此)

    似乎是指向内存中位置的错误指针。 但该程序的编码很好

    上述问题仍然没有解决
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    堆栈 100万 0000005万 0000.03万 未初始化
    0万50 000003005万00300</s>0.03万 —孔——

    xxxxxx.map文件具有上述条目。 程序开始初始化堆栈时,或者必须在此处执行某些操作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    再次,"未定义符号"[/QUOT]

    此消息出现在什么位置? 加载代码或单击“调试”按钮后,是否在main()处暂停? 运行后暂挂代码时是否看到此消息?  它是否随消息报告地址? 不管出于什么原因,地址可能在保留的内存空间内,这就是它找不到任何源/符号的原因。 这可能是由于编码问题,甚至是硬件问题。 您可以尝试使用断点或逐步浏览代码并进一步调试。

    您也没有提到您正在使用的CCS版本。

    关于变量,您是否尝试调试值不正确的原因? 可能堆栈空间不足。 您可以尝试在项目的链接程序设置中增加堆栈大小,看看这是否有帮助。  

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

    感谢您提供线索

    在F2.8069万.CMD文件中做了一些工作后,我将所有程序部分放在第0页,将所有数据部分放在第1页

    未解出程序(甚至增加堆栈大小)

    当我加载要闪存的程序时,屏幕上打印了以下行

    C28xx:正在写入闪存@地址0x003f7ff6,长度0x0.0002万 (第0页)
    C28xx:写入闪存@地址0x003e8000长度0x0万efb (第0页)
    C28xx:写入闪存@地址0x003f0b7a,长度0x0.0231万 (第0页)

    长度太小,无法适合程序。  

    映射文件具有此条目".text   0003  003f0000  00000b79"。 显示.text未写入FLASHA_B

    地图文件中的其他条目  

    FLASHA_B 003f0000 00007f80 00000daa000000daa 0.0071万d6 RWIX

    有“daa”占用,但在以上行中以“C28xx:.........”开头不出现 "

    我的版本:CCS 7.3 ,C2000ware 1.00 .02,编译器17.6 .0

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

    "daa"占用,但在以上行中以"C28xx:..........开头不显示 "[/报价]

    在对F2.8069万.cmd文件进行更改之前,代码的所有部分是否都已正确编程? 您是否尝试过使用F2.8069万M.cmd

    对于Flash编程的这个问题,如果你可以分享你的项目,我可以试着看看我能否在我的最后重现这个问题。我没有F2.8069万M Launchpad,但是有F2.8069万实验器套件,所以可以试试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我使用的是F2.8069万M.cmd,而不是F2.8069万.cmd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此问题已脱机解决。  

    程序无法正常运行的根本原因是main()例程被放置在"ramfuncs"部分(加载到Flash并从RAM运行)。 将其更改为从闪存运行后,问题已解决。