jicheng0622

【经验笔记】小技巧之定制自己的IAR代码模板

0
阅读(8840)

    四月份最后一天,本来打算出去逛逛的,结果还是有事耽搁了,过个假期真不容易来,哈哈,所以还是抽个空补上一篇吧~

    前天在阿莫论坛上逛了逛,发现了个好东西(其实算是一种技巧吧),这里给大家分享一下。由于是在人家的基础上做了些理解性的改进,所以就不敢加上【原创】两字了,作为一种【经验笔记】收藏起来吧,另外在本文最后也会给出原帖地址,尊重一下人家劳动~

    现在真是IAR越用越顺手,也日益觉着IAR的确很强大,有点爱不释手的赶脚,所以目前还是老老实实的用着IAR吧。本篇博客就IAR自带的代码模板编辑功能做个简单的介绍(可能刚上手的没注意到过),并且在此基础上给出了一些实用性的应用,个人觉着还是挺不错的,至于能不能用的着,那就看自己了,哈哈,今儿废话不多说了,下面直接进入正题了:

1.首先我们先看看IAR自带的"if"和"for"模板,点击菜单栏Edit->Code Templates->Insert Templates,然后选择如下图所示:

(1)建立"if"模板

(2)建立“for”模板

2.怎么样,看到上面的实例是不是引起了些许兴致来,哈哈,如果是你自己定制这些个模板估计会给我们很大的成就感吧,下面就带大家尝尝鲜:

(1)点击Edit->Code Templates->Edit Templates,打开定制文件(CodeTemplates.ENU.txt),会看到系统自带的已经定制好的"if"和“for”模板的代码(即实现了上面所示的功能代码),如下图所示

(2)从上图看到的是一堆命令,估计好些个人会立刻产生一种高深和无力感(这种感觉往往影响了自己继续探知下去的动力),之所以有这种感觉是因为我们没有接触过没了解过,但等你深入去了解去探究的时候,一切就会豁然开朗了,其实这是好些初踏进技术门槛的初手们常常会出现的陋习,造成对一些深层次的东西浅尝则止,进步缓慢(呵呵,这里就多啰嗦了几句,有则改之无则加勉)。回归正题,上图具体的命令所代表的含义是什么呢,其实可以从该txt文件开头出的英文注释头了解一番,如下图:

呵呵,看到E文的说明估计有些E文不好的同志该头疼了,下面翻译过来是这样的:

定义模板的语法是 #TEMPLATE <template name> ,<field> [=默认值] <field> ...;

模板名称,参数名称和参数的默认值在引号(“”)内定义,使用单字母(无空格符隔开)则可以省略引号,即引号(””)只有在模板名称,参数名称和参数的默认值包含空格符时候才必须用;

参数与模板名称,各个参数之间以逗号(,)区分定义; 

使用(&)定义其后第1个ASCII字符为快捷键<letter>,可以定义在模板名称,参数名称的任意位置;

模板名称定义时使用(>)格式符组织多层级模板子菜单结构。

主要用的格式符包括:(>)、引号(””)、逗号(,)、(&)、空格符。

(3)呼。。。其实解释命令格式之类的是个很累的活,可能大家都会觉着还是直接上例程对比着来领悟的快,呵呵,所以下面就直接上例子了,在“for”模板之后添加如下代码:

 

#TEMPLATE &Function>&Function,"Routine &name","&Description","&Notes"
/********************************************************************************
**Routine: %1
**Description: %2
**Notes: %3
 ********************************************************************************/
void %1(void)
{
  %c
}
保存之后,点击Edit->Code Templates->Insert Templates,弹出如下图:
注意:代码内容中首先为代码模板的语法部分,其次是模板的内容,其中#TEMPLATE为模板定义字;&Function>&Function模板在使用时候显示于菜单中的各层级名称;其后为各个参数项的定义,以逗号(,)区分。对比模板内容和使用界面我们可以看到,各个参数以(&)定义,在模板内容中各个参数以%1开始依次到%n表示,%c为插入函数时候光标位置。
 
    代码模板定制就这么简单,为了方便开发你可以根据语法自由定制一些常用的模板,起到事半功倍的效果,怎么样,心动不如行动啊,赶紧试试吧,呼呼。。。未完待续~
 
    此为我获益的源地址链接,说的比我详细,呵呵,有耐心的可以仔细瞅瞅了http://www.ourdev.cn/forum.php?mod=viewthread&tid=4871665&highlight=IAR%2B%E6%A8%A1%E6%9D%BF