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

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

你好,

我正在尝试实现一些自动版本,这样我就不必手动检查我是否跟上了我的软件版本。为此,我认为我应该动态地设置一个带有当前日期和时间的预处理器宏。

在SmartSnippets,我可以去设置,C/ c++ Build->交叉ARM C编译器->预处理器设置,然后定义符号(- d)添加我想要的。我在这里的确切语法是:BLACKORCA_SW_VERSION="\"C$(date +"%Y.% M .%d.%H.%M")\"",意图是"date"调用shell命令来获取当前日期,随后按我想要的方式格式化。我还想要"C"前缀。

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

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

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

仅仅是

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

嗨Merigh,

谢谢你的在线问题。让我查一下,然后给你答复。

谢谢,PM_Dialog

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

你好再次,

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

谢谢你的帮助,

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

另一个更新,

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

Dialog的SUOTA 1.1规范要求版本字符串为16个字符长吗?或者我能把它改成18个吗?那是因为我想要CYYYY.MM.DD.HH.mm格式。

谢谢,米