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.

[参考译文] CODECOMPOSER:复制__TIME__和__DATE__宏时出现问题

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1524791/codecomposer-problem-copying-__time__-and-__date__-macros

部件号:CODECOMPOSER

工具/软件:

我不确定是“C"问题“问题、还是 CCS 特有的问题、

我正在尝试创建一个构建字符串、如下所示:

char build_date[20] = __DATE__;
char build_time[20] = __TIME__;
char buildinfo[40];

void generate_builddate_string(){
    int i;

    for (i=0; i < 40; i++){
        gui_buildinfo[i] = '\0';
    }
    sprintf((char*)buildinfo,"%s %s", build_date, build_time);


}

如果我在 CCS 表达式中选中 BUILD_TIME、说明这是正确的、包括最后 2 个字符是构建的秒。

如果我在 CCS 表达式中检查 buildinfo、则秒字符不正确。  其余的 buildinfo 是正确的。   

有什么建议为什么 buildinfo 的最后两个字符不正确?

(目标为 28379D)

谢谢!

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

    您好:Mark、

    您为栈和堆大小指定了哪些值? 以下文章还包含其他注意事项:

    https://dev.ti.com/tirex/explore/node?node=A__AaFzMa1WBkGexmvHoJZodg__CCSTUDIO-ACADEMY__RdkYJ-M__LATEST

    我还会将此主题提请编译器专家注意以获得进一步的建议。

    谢谢

    Ki

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

    我没有更改默认的堆和堆栈大小。  栈为 0x200、Heap 在工程设置中没有定义、因此我猜堆是一些默认设置。  我将两者都更改为 0x200、然后更改为 0x400、问题/行为保持不变。

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

    确保你有这条线附近的开始...

    #include <stdio.h>

    谢谢。此致、

    -乔治

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

    我已经有了(我只是没有粘贴文件的其余部分)。

    #include
    #include
    #include

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

    这是简单的代码。  自从 printf 函数系列中出现问题以来、已经存在很长时间了。  我不得不继续怀疑一些更高级别的细节是错误的。  如果您在没有停止的情况下直接运行该功能、则检查结果、是否有效?  如果将字符数组的位置更改为不同的存储器、这样做是否可行?

    谢谢。此致、

    -乔治

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

    字符串位于默认.bss 段中。  我将.bss 移到了自己的 RAM 块 (RAMLS4) 中。  行为无变化。  我还多次在有断点和没有断点的情况下运行工程、行为不会发生变化。


    我*DID*将该文件复制到另一个项目中、它可以在没有修改的情况下工作。  所以我同意,它看起来像在我的原始项目中发生的其他事情。

    有趣的是,它总是同样的垃圾字符,最终在 buildinfo 的最后两个字符。

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

    我尝试使用观察点来中断对字符串中这些字符的访问。 我找到了一个超出数组限制的循环、它在 buildinfo 内存区域上运行。 (由于我尚未更改硬编码值)。

    所以在这里为 others...use 观察点做一个注释!