zoukankan      html  css  js  c++  java
  • 自动生成版本信息,重新编译指定文件,一键编译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
  • 相关阅读:
    【Jest】笔记二:Matchers匹配器
    【爬虫】如何用python+selenium网页爬虫
    【mysql-server】遇到的坑
    【puppeteer】前端自动化初探(一)
    强制360谷歌使用谷歌内核
    实时获取input输入框中的值
    什么是单页面
    如何更改Apache的根目录指向
    iphone上点击div会出现半透明灰色背景以及margin失效
    event.currentTarget和event.target的区别
  • 原文地址:https://www.cnblogs.com/mrsandstorm/p/9485972.html
Copyright © 2011-2022 走看看