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.

[参考译文] MSP430F6749A:Code Composer Studio 12在"Disassembly"视图中显示错误的 MSP430助记符

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1483212/msp430f6749a-code-composer-studio-12-showing-incorrect-msp430-mnemonics-in-disassembly-view

器件型号:MSP430F6749A
Thread 中讨论的其他器件:CCStudio

工具与软件:

Code Composer Studio v12.8.1.00005

版本:12.8.0.202407141830
构建 ID:N202407141830

编译器版本:TI v20.2.5.LTS [TI v21.6.0.LTS]

"Disassembly"视图似乎显示了错误的指令助记符、例如

_c_int00_noargs():
00c600: 0081 .word 0x0081
00c602: 5DC0 13B2 ADD.B R13,0xd9b6
111 if(_system_pre_init() != 0)
00c606: F6E8 930C AND.B @R6,0x930c(R8)
00c60a: 2402 JEQ ($C$L2)
114 _auto_init();
00c60c: 13B2 .word 0x13B2
00c60e: CFB8 430C BIC.W @R15+,0x430c(R8)
123 main(0);
00c612: 13B2 .word 0x13B2
00c614: D36C BIS.B #2,R12
125 exit(1);
00c616: 431C MOV.W #1,R12
00c618: 13B3 .word 0x13B3
00c61a: 1EF0 .word 0x1EF0

"Disassembly"视图中显示的上述代码来自 boot.c 为什么"0081"不显示为"MOVA __STACK_END、SP"? 应将下一行"5DC0 13B2"解码为"CALLA #_SYSTEM_PRE_INIT"。 依此类推。

似乎唯一解码的正确指令是"00c616:431C MOV.W #1.R12"

反汇编为何如此不同?

是否有任何设置可能导致此错误显示?

谢谢。

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

    反汇编器似乎没有获得有关这是 MSP430 CPUx 型号代码的消息。 在基本 MSP430上、0x0081不是有效的操作码、因此它显示为常量。 从那里走下坡路。

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

    好的、那么如何将消息发送到我正在使用 CPUx 型号的反汇编器?

    谢谢!

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

    我使用的是 GNU 工具、而不是 CCS、因此无法提供帮助。 但在我看来、CSS 使用了与 GNU 相同的.elf 文件格式。 该文件包含这些信息。 或者至少对于 GNU 是这样。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ /usr/ti/gcc/bin/msp430-elf-readelf -A a.out
    Attribute Section: mspabi
    File Attributes
    Tag_ISA: MSP430X
    Tag_Code_Model: Large
    Tag_Data_Model: Large
    Attribute Section: gnu
    File Attributes
    Tag_GNU_MSP430_Data_Region: Lower Region Only
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    好的、我从 TI 的网站安装了 msp430-gcc、并在 CCS 链接器输出文件中获得了以下内容:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    C:\...>msp430-elf-readelf.exe -A a.out
    ...
    Attribute Section: mspabi
    File Attributes
    Tag_ISA: MSP430X
    Tag_Code_Model: Large
    Tag_Data_Model: Large
    <unknown tag 10>: 1 (0x1)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    输出文件是否正确。 在检测 CPU 变体时、CCS 组件查看器中可能存在一些错误?

    谢谢。

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

    由于您有 GNU 工具、您可以使用 msp430-elf-objdump 来反汇编您的代码。 S 选项将源代码(如果它尚未被剥离)与输出交叉。

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

    感谢您的建议。 CCS 还提供了工作正常的命令行反汇编器 dis430.exe。 由于我使用 CCS GUI、因此 GUI 中的 CCS 反汇编查看器能够按预期运行会更加方便。

    我想最后的办法就是卸载/重新安装 CCS 并重新创建项目。。

    我希望 CCS 团队了解这一问题。

    再次感谢 David。

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

    您好!

    您可以开始新主题帖、然后将 CCStudio 作为器件型号、 然后 CCS 团队将研究该线程。

    此致、
    Cash Hao