在SmartSnippets中使用“-D”Make标志自动版本控制

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
Merigh
离线
最后看到:9个月1个星期前
加入:2020-08-25 20:51
在SmartSnippets中使用“-D”Make标志自动版本控制

你好,

我正在尝试实现一些自动版本控制,这样我就不必手动检查我是否保持了软件版本的更新。为了做到这一点,我想我应该动态地设置一个带有当前日期和时间的预处理器宏。

在SmartSnippets中,我可以进入设置,C/ c++ Build->Cross ARM C Compiler-> Preprocessor设置,然后定义符号(- d)添加我想要的。我的确切语法是:BLACKORCA_SW_VERSION="\"C$(date +"%Y.% M .%d.%H.%M")\"" with the intention that "date"调用shell命令来获取当前日期,并随后按我想要的方式进行格式化。我还想要“C”前缀。

我已经在本地用gcc测试了这个语法,它工作得很好。当我试图绕过SmartSnippets并从终端手动调用“make”(调用正确的交叉编译器而不是gcc)和从项目构建文件夹时,我可以看到这个输出正确地解析为当前日期和时间。但是,当我经过SmartSnippets和构建配置,宏定义是正确(没有编译器错误),但当我flash董事会(我有一个开发板和一个定制的板),宏最终被解决“C”,剩下的字符串不出现。

我知道这是一个超级特定的请求,但如果宏为我在本地使用gcc时正确解析,当使用arm-none-eabi-gcc而手动从终端调用make时,那么可能有一些SmartSnippets/Eclipse相关的东西,我需要帮助。

任何建议吗?如果有更简单的方法来实现这种自动版本控制,请务必告诉我。谢谢。

仅仅是

设备:
PM_Dialog
离线
最后看到:17小时53分钟前
工作人员
加入:2018-02-08 11:03
嗨Merigh,

嗨Merigh,

谢谢你在网上提出的问题。让我查一下,然后再回复你。

谢谢,PM_Dialog

Merigh
离线
最后看到:9个月1个星期前
加入:2020-08-25 20:51
你好再次,

你好再次,

另一个选项可能是使用智能片段项目设置中的预构建步骤。目前,这个字段是由“生成链接器脚本”命令填充的。是否有简单的方法添加预构建步骤?还是简单地在小框中添加文本?然后,我可以修改我的sw_version.h文件没有问题。我认为。

谢谢你的帮助,

Merigh
离线
最后看到:9个月1个星期前
加入:2020-08-25 20:51
另一个更新,

另一个更新,

在预构建步骤中添加原始文本效果非常好。现在我有另一个相关的问题:

是否Dialog的SUOTA 1.1规范要求版本字符串是16个字符长?举个例子,我能改成18岁吗?这是因为我想CYYYY.MM.DD.HH.mm格式。

谢谢,米