Using pre-build actions for time stamping

If necessary, you can specify pre-build and post-build actions that you want to occur before or after the build.

The Build Actions dialog box—available from the Project menu—lets you specify the actions required.
For more information about the Build Actions dialog box, see Build actions options, page 215.

Using pre-build actions for time stamping

You can use pre-build actions to embed a time stamp for the build in the resulting binary file. Follow these steps:
1 Create a dedicated time stamp file, for example, timestamp.c and add it to your project.
2 In this source file, use the preprocessor macros __TIME__ and __DATE__ to initialize a string variable.
3 Choose Project>Options>Build Actions to open the Build Actions dialog box.
4 In the Pre-build command line text field, specify for example this pre-build action:

cmd /c "del "$OBJ_DIR$\timestamp.o""

This command removes the timestamp.o object file.
Alternatively, you can use the open source command line utility touch for this purpose 
or any other suitable utility that updates the modification time of the source file. For example:

"touch $PROJ_DIR$\timestamp.c"

5 If the project is not entirely up-to-date, the next time you use the Make command,
the pre-build action will be invoked before the regular build process.
Then the regular build process must always recompile timestamp.c and
the correct timestamp will end up in the binary file.

If the project already is up-to-date, the pre-build action will not be invoked.
This means that nothing is built, and the binary file still contains the timestamp for when it was last built.

ADDING AN EXTERNAL TOOL

The following example demonstrates how to add the tool Flex to the toolchain.

Thesame procedure can be used also for other tools.
In the example, Flex takes the file myFile.lex as input. The two files myFile.c and myFile.h are generated as output.

1 Add the file you want to work with to your project, for example myFile.lex.
2 Select this file in the workspace window and choose Project>Options. Select Custom Build from the list of categories.
3 In the Filename extensions field, type the filename extension .lex. Remember to specify the leading period (.).
4 In the Command line field, type the command line for executing the external tool, for example

flex $FILE_PATH$ -o$FILE_BNAME$.c

During the build process, this command line is expanded to:

flex myFile.lex -omyFile.c

Note the usage of argument variables.

Note specifically the use of $FILE_BNAME$ which gives the base name of the input file,
in this example appended with the c extension to provide a C source file in the same directory as the input file foo.lex.

For more information about these variables, see Argument variables, page 71.

5 In the Output files field, describe the output files that are relevant for the build.
In this example, the tool Flex would generate two files—one source file and one header file.
The text in the Output files text box for these two files would look like this:

$FILE_BPATH$.c
$FILE_BPATH$.h

6 If the external tool uses any additional files during the build, these should be added in the Additional input files field, for instance:

$TOOLKIT_DIR$\inc\stdio.h

This is important, because if the dependency files change, the conditions will no longer be the same and the need for a rebuild is detected.
7 Click OK.
8 To build your application, choose Project>Make.

IAR USING PRE- AND POST-BUILD ACTIONS的更多相关文章

  1. ios添加pre和post build action

    再vs中,我们可以很方便的再build前.后执行一些脚本为我们做点什么事情.再ios中怎么搞呢,哪必然是对xcode进行操作了.再google搜索了一把,有说操作Scheme的也有说再直接再targe ...

  2. IAR EWARM Checksum Technical Note

    IELFTOOL Checksum - Basic actions EW targets: ARM, RH850, RX, SH, STM8 EW component: General issues ...

  3. Jenkins Post Build网址

    Hudson Post build taskhttps://plugins.jenkins.io/postbuild-taskThis plugin allows the user to execut ...

  4. 痞子衡嵌入式:在IAR开发环境下RT-Thread工程函数重定向失效分析

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下RT-Thread工程函数重定向失效分析. 痞子衡旧文 <在IAR下将关键函数重定向到RAM中执行的方法> ...

  5. 痞子衡嵌入式:深扒IAR启动函数流程之段初始化函数__iar_data_init3实现

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR启动函数流程里的段初始化函数__iar_data_init3实现. 本篇是 <IAR启动函数流程及其__low_level_ ...

  6. 痞子衡嵌入式:在IAR开发环境下将整个源文件代码重定向到任意RAM中的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下将整个源文件代码重定向到任意RAM中的方法. 痞子衡旧文 <在IAR下将关键函数重定向到RAM中执行的方法> ...

  7. 【STM32H7教程】第6章 STM32H7工程模板建立(IAR8)

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第6章   STM32H7工程模板建立(IAR8) 本章 ...

  8. 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(2)- KBOOT形态(ROM/Bootloader/Flashloader)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT形态. 痞子衡在前一篇文章里简介了 KBOOT架构,我们知道KBOOT是一个完善的Bootl ...

  9. Calculate CRC32 as in STM32 hardware (EWARM v.5.50 and later)

    http://supp.iar.com/Support/?note=64424&from=note+11927 BackgroundThe STM32 devices from ST Micr ...

随机推荐

  1. AFNetWorking 使用记录

    1.从一个URL  GET数据 方法1: NSURL * url = [NSURL URLWithString:@"http://www.weather.com.cn/data/sk/101 ...

  2. LR录制测试脚本

    1.录制的业务流程 2.录制脚本 3.查看脚本

  3. 查找指定目录下的文件 .xml

    pre{ line-height:1; color:#9f1d66; background-color:#cfe4e4; font-size:16px;}.sysFunc{color:#5d57ff; ...

  4. STL六大组件之——适配器代表大会

    适配器也是一种常用的设计模式: 将一个类的接口转换为另一个类的接口,使得原本因接口不兼容而不能合作的两个类可以一起运作.STL提供三种适配器:改变容器接口的容器适配器.改变迭代器接口的迭代器适配器以及 ...

  5. [转]eoe社区cocos2d-x游戏引擎知识大汇总

    [eoeAndroid 社区]特意为大家汇总了cocos2d-x知识贴,分量十足,纯正干或.从基础教程到游戏应用的开发,我们不让知识流失,我们要做知识的搬运工还有加工 师.希望大家能够一起的学习,和大 ...

  6. URAL-1987 Nested Segments 线段树简单区间覆盖

    题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1987 题意:给定n条线段,每两条线段要么满足没有公共部分,要么包含.给出m个询问,求当前 ...

  7. TintTo和TintBy

    //创建标签 ); //设置位置 helloLabel.setPosition(cc.p(,)); //添加到layer ); //改变颜色,不可reverse ,,); //移动并同时改变颜色 he ...

  8. Java ClassLoader 原理详细分析

    一.什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程 ...

  9. 通过Microsoft Azure服务设计网络架构的经验分享(转)

    原文:http://www.infoq.com/cn/articles/azure-networking-tips 本文从产品设计和架构角度分享了 Microsoft Azure 网络服务方面的使用经 ...

  10. 前端异步解决方案——mmDeferred

    Deferred是前端解决异步操作的一种编程范式,后来出现的Promise规范更是让其普适性大大提高.不过Promise规范也存在分岐.现在最流行的是Promise/A规范. Promise/A大致是 ...