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/MSP430FG4618:C 代码的编译不正确。

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/856492/ccs-msp430fg4618-an-incorrect-compiling-of-c-code

器件型号:MSP430FG4618
主题中讨论的其他器件:MSP-EXP430FG4618

工具/软件:Code Composer Studio

我在非常简单的代码示例中获得了错误的 C 代码编译。

如图所示。 第25行中的 C 语言代码未编译。 在反汇编中、仅出现第27行。

这是用于 MSP430FG4618的 CCS 项目(之前托管的 CCS)。 所有设置均为默认值。 它在标准 MSP-EXP430FG4618板上运行。 CCS 版本为9.2、包含所有更新。

在使用变量挥发性实验失败后、尝试优化设置。 已获得-删除第24行上的注释。 我们将得到正确的结果:

我附加了两个 C 文件进行测试。

e2e.ti.com/.../Test_5F00_1.c

 

e2e.ti.com/.../Test_5F00_2.c

 

此致、

法学家

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

    问题是 Test_1.c 中的行尾不正确。  具体而言、第24行的行结尾是错误的。  因此,从第24行开始的评论在第25行仍然有效。  这会导致忽略所有视在线25。   

    CCS 内置的文本编辑器未显示此问题。  其他几个文本编辑器也不工作、包括记事本和写字板。  但是、gvim 确实显示了问题。  在此屏幕截图中、gvim 配置为在左侧显示行号、并使用语法突出显示。   

    查看问题的更精确的方法是使用命令 cat。  此命令来自 Unix。  它在命令行转储文本文件。  我使用 cat 命令行参数-vt。  这意味着每个制表符都由^i 表示、每个回车符都由^M 表示、每个换行符都通过结束当前行并开始新行来表示。  以下是命令 cat -VT Test_1.c 的关键行的屏幕截图...

    请注意注释//按钮处理之后是如何进行回车、无换行、两个制表符、一些空格、以及 if ((Butt_S1和 Button1)等  编译器将所有这些内容视为一个长注释。  为了进行比较,下面是 Test_2.c 中相同行的屏幕截图...

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    所以您的说法应该避免在与{}指令相同的行上添加注释标记//? 我从未见过早期版本的编译器能够满足您的上述要求。 稍后我会在//和/*/之间混合注释,但请尝试将每种类型保留在单个注释行上。 接下来、我要说、编辑窗口非常窄、迫使我们避免使用空白、以便在没有缩放功能的情况下一起查看逻辑语法。

    作为3D CAD 设计人员、拖放窗口也是编辑功能的一个好补充、滚动条具有快速的飞行速度。 这是我在 Web 浏览器和 PDF 查看器中使用的主要牛肉、就像程序员忽略了快速垂直滚动移动一样。 大多数标准红外反射鼠标的螺母可通过人的手产生平滑的滚动效果。  

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

    BP101 说:
    因此,您的说法应该避免在与{}指令相同的行上添加注释标记//?

    否  在本例中、一条线路的端接错误。

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    很抱歉、我没有看到您描述的问题存在于海报代码行中

    奇怪的是、我昨天遇到了同样的问题、但这条线没有错、只有{// MyRemarks 在几个线位置。 删除了对专用行的注释、多次清理项目后、具有(>>或<<)操作的其他模块功能未正确编译、但未发布错误。

    我拔出头发数小时、试图找出 CCS9.1 (v18.12.3.LTS)出了什么问题。 只有在使用指令 int0=(int0 << 4)+(INT1 >> 4)将所有16行更改为(INT1 >> 8)并将 CTRL-Z 重新编译后、代码才会真正开始再次工作。  

    英特尔四核处理器中的编译器行为错误、该海报正确地报告了缺失的行。 我从屏幕截图中得知、海报是对的、您是错的!

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

    我知道编译器或 IDE 正在丢弃代码行、因为通过 UART 串行发送到外部世界的8个变量已移入非关联的符号地址。 这可能是一个 IDE 历史问题、因为 CTRL-Z 似乎已神奇地返回重影代码行、并修复了 CCS 编辑器内弹出的16个整数数数组。 昨天甚至几次关闭了 CCS、今天重影的仿真器代码行由 CTRL-Z 修复

    然而、它们都在编辑窗口中、但在编译的代码 hexTobin 中缺失!  

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

    尊敬的乔治:

    是的、我也可以看到您在十六进制编辑器中指出的问题。 实际上、该文件是学生实验室工作多年的准备文件。 它仅用于 Windows 系统、主要在 CCS 上进行编辑。 今年、我们在几台计算机上发生了一场大猩猩碰撞。 当我们失去这个 LF 时、我没有任何想法、但它并不是有意做到的。

    对每个人来说:是否可以采取行动 来消除这一问题?    

    非常感谢您的支持、

    此致、

    法学家