自动生成版本信息,重新编译指定文件,一键编译IAR工程同时生成hex,bin,out文件

Posted mrsandstorm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动生成版本信息,重新编译指定文件,一键编译IAR工程同时生成hex,bin,out文件相关的知识,希望对你有一定的参考价值。

 

自动生成版本信息,重新编译指定文件,一键编译IAR工程同时生成hex,bin,out文件

平台:IAR + windows_bat

1.自动生成版本信息 目的: 脚本自动更新程序svn对应的的版本号

前提: svn需要安装command line (参考 https://jingyan.baidu.com/article/a3a3f8113f89198da2eb8aed.html

主要技术点: 具体.bat脚本主要来源于网络,文件放置在agv_dev_platform->User目录下,编译脚本将生成svnversion.h文件,文件内容仅是SVN_REVISION的一个宏,最终程序使用这个宏进行版本显示即可

配置方法: 在程序编译之前执行更新svnversion.h文件,具体操如下 IAR->右击工程options->Build Actions->Pre-build Actions

2.编译工程的同时更新编译时间,一键编译IAR工程同时生成hex,bin,out文件

目的: 在指定工程目录下Exe文件夹下生成类似“F4-20180815-180547”的文件夹,同时文件夹中包含以文件为名的bin、hex、out文件,方便版本定位和调试

前提: IAR必须配置为生成hex文件,且名字为project,具体操作如下 IAR->右击工程options->Output Converter->Output->output format选择Interl Extended hex并勾上Generate additional output IAR必须配置为生成project.out文件,具体操作如下 IAR->右击工程options->Linker->Output中填写project.out

主要技术点: 文件主要涉及到两个脚本,具体内容已经放置在project->batcmd下面,重新编译指定文件主要是删除指定文件的.O文件,一键编译主要流程为在程序编译结束之后将hex和out文件重新命名,同时移动到一个以时间戳命名的文件夹内,最后再增加一个由hex转化成bin的文件


配置方法: 在程序编译之前执行更新svnversion.h文件,具体操如下 IAR->右击工程options->Build Actions->Post-build Actions Configuration->增加命令“$PROJ_DIR$..atcmd ename.bat EWARMv8-App app-agv main_app project F4-” 命令内容根据不同的工程可能会有些许的不同,务必填写,脚本中需要其中的参数去找到固件对应的目录,每个参数分析如下

  • 命令:$PROJ_DIR$..atcmd ename.bat /* 执行重命名脚本 */
  • 参数1:EWARMv8-App/* 该名字来源于工程名,工程吗是什么填写什么 */
  • 参数2:app-agv/* 该名字来源于configurations,项目是叫什么填写什么 */
  • 参数3:main_app/* 该名字来为指定需要重新编译的文件,目前工程中F4使用main_app,F1使用main_stm32f10x_app */
  • 参数4:project/* 暂时规定为project不可以修改,其为out和bin的文件名 */
  • 参数5:F4-/* 暂时规定F4统一使用F4-,F1统一使用F1-,该参数主要为生成目的固件名字的头 */

 附件:

技术分享图片
1 @echo off
2 set src_dir=%~dp0
3 for /f "delims=" %%i in (svn info ^| findstr "Revision") do set rev=%%i
4 set rev=%rev:~10%
5 echo #define SVN_REVISION %rev% > "%src_dir%"svnversion.h
svnversion.bat
技术分享图片rename.bat

 


以上是关于自动生成版本信息,重新编译指定文件,一键编译IAR工程同时生成hex,bin,out文件的主要内容,如果未能解决你的问题,请参考以下文章

IAR编译器生成map文件中的.iar.init_table字段

IAR工程可以引用keil编译的函数库文件吗?如何引用?

关于IAR编译器破解的问题

IAR编译器

编译知识

IAR for msp430 生成txt文件时开头@1100 和@E000