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/CCSTUDIO-MSP:CCS-MSP 编译器问题

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/956163/ccs-ccstudio-msp-ccs-msp-compiler-problem

器件型号:CCSTUDIO-MSP

工具/软件:Code Composer Studio

大家好、
我最近切换到了 CCS 10.1.1.00004、现在遇到了一个无法解决的问题。
我可以通过一个最小的 CCS 管理示例来重复该问题。 请参阅下面的内容。

在标记的行上、数组地址丢失。 数组地址保存在寄存器中。 
执行后、寄存器包含一个 Wong 值。 我的旧 GCC 编译器做得对、它使用 RAM、此时没有寄存器。 可能我做了一些错误。 有人能不能让它尝试一下、也可以尝试一下
建议? 优化完全关闭、编译器为 TI v20.2.3.LTS、 CPU 为 MSP430F2274。 非常感谢。 #include /** * main.c */ static void test_list (unsigned char * data、unsigned int len) { unsigned long ul_id; UL_id =(无符号长整型)(数据[0]); UL_id+=((unsigned long)(数据[1])<<8);//<<后面的数组地址错误!! UL_id+=((无符号长整型)(数据[2])<<16); UL_id+=((无符号长整型)(数据[3])<<24); } void test (空测试) { unsigned char buffer [8]={0、1、2、3、4、5、6、7}; test_list (buffer、8); } int main (void) { WDTCTL = WDTPW | WDTHOLD;//在 (1){时停止看门狗计时器 test(); } 返回0; }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请准确地显示编译器看到的编译选项。  请复制并粘贴文本、不要使用屏幕截图。

    [报价用户="Robert Tyrakowski"]在标记的行中,数组地址丢失。

    我不确定你的意思。  您如何知道阵列地址丢失?  您看了什么?  计算结果是否正确输入 ul_id

    谢谢、此致、

    乔治

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

    您好、George、

    ul_id 的结果在结尾是错误的 我用调试器检查了它、然后看到了

    添加指令之前、数据的正确地址在 R12中。 之后

    第二个添加指令、R12包含错误的值。 那么、其余部分

    ADD 命令出错、DU 错误、R12中的数据地址错误。

    希望这能更好地解释我的问题。

    此致

    Robert

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

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

    ul_id 的值仅为半完成、但到目前为止0x0100是正确的。 完成后会出现什么情况?

    在第二个屏幕截图中、指向数据[]的指针位于 R15中。 我不知道您为什么要查看 R12。  

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

    感谢你的帮助。

    您说得对、该示例工作正常。 我被误导了、因为调试器使用 R12来显示

    阵列、但如果寄存器发生更改、则会显示错误区域。 因此、该示例并未真正反映出来

    我的最终计划中的基本问题。 它们的 ul_id 结果最终不正确。 似乎我可能有问题

    RAM 和/或堆栈大小。

    再次感谢

x 出现错误。请重试或与管理员联系。