0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

企业级操作之STM32项目版本管理方法

撞上电子 2023-11-11 08:00 次阅读

MCU开发过程中,有时候需要软件的迭代,比如从V1.9升级到V1.10,或者从V23.09.23升级到V23.09.24,我们常常通过手动改动字符串或者数组来实现这个功能,从现在开始,我们会使用Keil的内置宏__DATE__和__TIME__,通过这2个宏,每次程序编译完成,烧录到MCU之后,MCU都能够准确打印出该固件的编译时间。

printf("(版本/编译时间: %s,%s)\r\n", __DATE__,__TIME__);

60fbfac2-8025-11ee-9788-92fbcf53809c.png


上图中编译时间是18:21:14,但是串口打印的时间却是18:21:23。但是我们发现电脑的时间何编译的时间还是有一点点区别的,原因是,编译之后,代码还要下载,还要运行,这个也是需要时间的,所以产生了误差。但如果你发现打印的时间不准确,是较早前的时间,比如很明显相差1分钟以上,或者你认为这个时间不是真正编译的时间,那么需要注意:按照Keil的编译逻辑,默认是不编译未修改过的源文件,只链接。说详细一点点就是:例如这两条打印语句的位置,是在int main(void)函数中,且main函数在main.c文件中,假如本次修改代码,未修改main.c文件,那么Keil是不会重新编译main.c文件的,也就不会将编译时的__DATE__和__TIME__编译进去。也可以通过以下设置,使得main.c文件,无论是否修改,每次编译时都会重新编译它:

610983ea-8025-11ee-9788-92fbcf53809c.png

610dbb68-8025-11ee-9788-92fbcf53809c.png

当然每次都编译main.c,并非是最好的代码风格,可以把版本号打印提炼成一个函数,并单独使用一个.c文件进行实现,并将这个.c文件按照以上方法设置。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16023

    浏览量

    343710
  • STM32
    +关注

    关注

    2240

    文章

    10675

    浏览量

    348868
  • keil
    +关注

    关注

    68

    文章

    1196

    浏览量

    165334
收藏 人收藏

    评论

    相关推荐

    keil编译STM32H745I-DISCO项目很慢是什么原因造成的?

    最近用keil试着编译H745 discovery 包里面的项目,发现M7/M4项目都超级慢,一个文件基本上半分钟编译完。keil版本是最新的5.31, 以前单独编译F103,F407都很块的。 各位有没遇到这个问题,请问有没解
    发表于 04-10 06:25

    江波龙进军企业级存储,万事俱备坚定高端之路

    国内存储行业龙头企业江波龙经过二十多年的耕耘,已经成为面向消费电子、嵌入式、工业级、车规级存储的佼佼者,并转型为半导体存储品牌企业。就在2023年底江波龙的企业级存储产品开始大批量出货,进军
    的头像 发表于 03-25 14:19 734次阅读

    原来安装的KEIL可以用103系列单片机,为何打开32G431项目找不到芯片?

    原来安装的KEIL 可以用103系列单片机,为何打开32G431项目找不到芯片
    发表于 03-11 06:48

    江波龙企业级存储正式量产一周年,交出亮眼“成绩单”

    自2023年1月江波龙首次发布企业级存储产品FORESEEORCA4836系列NVMeSSD与FORESEEUNCIA3836系列SATA3.2SSD以来,企业级存储产品于过去的一年中,在技术研发
    的头像 发表于 02-19 12:56 220次阅读
    江波龙<b class='flag-5'>企业级</b>存储正式量产一周年,交出亮眼“成绩单”

    CCES加载ADSP-21479项目时,找不到头文件怎么解决?

    我第一次接触CCES,加载ADSP-21479项目时候。找不到头文件、我软件是在官网下载的、是不是要下载license许可,才能加载头文件、如果需要license许可。那我又该去哪里获取到、谢谢解答。
    发表于 01-12 07:38

    企业选择项目管理系统应该注意什么?

    彩虹PDM系统是一款全面的项目管理软件,具备强大的功能和灵活的配置性能,支持项目全周期管理,包括项目计划、任务
    的头像 发表于 11-16 18:05 193次阅读
    <b class='flag-5'>企业</b>选择<b class='flag-5'>项目</b><b class='flag-5'>管理</b>系统应该注意什么?

    企业级生成式AI应用,如何克服“幻觉”问题

    然而,企业级 AI 应用与个人 AI 应用需求之间存在巨大差异,对技术本身的要求也不在一个量级。仅拿当下生成式 AI 应用最让人诟病的“AI 幻觉”问题来说,放在企业级生产环境,对此几乎是“零容忍”。
    的头像 发表于 09-21 16:00 453次阅读

    如何设计一款好的企业级SSD电源管理方案?Qorvo专家有话讲

    AI大模型、数据中心、云存储等数字化领域的建设浪潮带动了企业级SSD(eSSD)市场的新增需求。 根据Yole Group最新报告,2022年全球SSD出货量约3.52亿块,其中企业级SSD出货量
    的头像 发表于 09-14 12:15 423次阅读
    如何设计一款好的<b class='flag-5'>企业级</b>SSD电源<b class='flag-5'>管理</b>方案?Qorvo专家有话讲

    芯讯通入选全国“质量月”苏浙皖赣沪先进质量管理方法50佳

    活动是由上海市、江苏省、浙江省、安徽省、江西省“四省一市”市场监管局共同主办,旨在进一步加强苏浙皖赣沪区域质量合作,推广先进质量管理方法,进而推动区域经济高质量发展。该活动代表了华东地区企业质量管理的先进水平。 一同入
    的头像 发表于 09-13 19:15 444次阅读
    芯讯通入选全国“质量月”苏浙皖赣沪先进质量<b class='flag-5'>管理方法</b>50佳

    uC/OS-II内存管理方法详解

    ucos内存管理方法十分小巧,实时性好,非常值得借鉴。
    的头像 发表于 09-11 15:32 661次阅读
    uC/OS-II内存<b class='flag-5'>管理方法</b>详解

    如何获得MA35D1项目在RTT - Studio研究?

    如何获得MA35D1项目 在RTT - Studio 研究?
    发表于 09-07 08:19

    使用MDK构建Mbed操作系统项目

    、RTOS以及传感器和I/O设备的驱动程序。 Med OS本身并不以CMSIS包的形式提供,但有自己的配置和依赖管理系统。 本应用笔记展示了如何通过将项目从med在线编译器迁移到MDK来开始使用MDK-Community版本(或
    发表于 08-25 07:01

    中软国际发布基于openEuler企业级服务器操作系统,成功中标中国移动操作系统迁移技术服务项目

    中心鲲鹏全栈解决方案兼容性认证。凭借国产操作系统领域深厚的技术积累、丰富的应用落地案例及高品质的服务,公司 成功中标中国移动“云能力中心2023-2024年省专公司操作系统迁移技术服务项目”,在国产化信创业务领域实现持续突破 。
    的头像 发表于 07-25 19:05 438次阅读

    模具图纸管理系统_企业模具图纸管理系统

    企业模具图纸管理系统 选择彩虹图纸管理系统 模具图纸管理系统是一种用于管理和存储模具图纸的软件系统。该系统可以帮助
    发表于 06-14 11:13

    有没有一种方法可以在“附加板管理器 URL”中指定旧版本?

    总而言之, 我有一个在 ESP8266 上使用 painlessMesh 的项目。 已经工作了好几个月了。 不幸的是,最新版本的 8266 内核导致 painlessMesh 编译错误。 有没有一种方法可以在“附加板
    发表于 05-08 08:25