xieguangye 发表于 2011-7-12 14:23:32

IAR-代码模板建立与代码编辑技巧

IAR-代码模板建立与代码编辑技巧
作者:谢 光 业
时间:2011-7-12
QQ: 28638123
一、代码模板建立
代码模板有利于快速输入代码,提高编程效率;有利于快速完成程序的整体统一风格。
在IAR中可以Code Templates来显示代码模板的建立与应用。
以下是Step by Step:
1.        打开模板库
菜单路径:Edit -> Code Templates -> Edit Templates
<left>http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657044MEEPZ7.jpg
菜单路径1 (原文件名:7.jpg) </left>

执行该菜单打开以下文件
<left>http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657045YF5PEZ.jpg
模板库 (原文件名:8.jpg) </left>

定义代码模板的语法是:模板<template name> ,<field> [=默认值] <field> ... ...
模板组成元素:模板名称,参数名称和参数的默认值,参数默认值可以省略
格式符号:(>)、引号(””)、逗号(,)、(&)、空格符。
        模板名称定义时使用(>)格式符组织多层级模板子菜单结构。
        模板名称,参数名称和参数的默认值在引号(“”)内定义,使用单字母(无空格符隔开)则可以省略引号,即引号(””)只有在模板名称,参数名称和参数的默认值包含空格符时候才必须用
        参数与模板名称,各个参数之间以逗号(,)区分定义。
        使用(&)定义其后第1个ASCII字符为快捷键<letter>,可以定义在模板名称,参数名称的任意位置。
在模板名称中同一层级菜单应避免出现重复快捷键,在模板菜单选择界面下直接使用<letter>访问各个菜单。例如模板定义:#TEMPLATE &Function>&Function,….. 按(F)(F)即可。
<left>http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657044MEEPZ7.jpg
菜单路径1 (原文件名:7.jpg) </left>

参数名称定义,也应避免出现重复快捷键,在模板参数输入界面下使用Alt + <letter>在各个参数间跳转。例如模板定义:#TEMPLATE &Function>&Function,"Function &name","Input &parameter","Out &parameter",&Description=--,&Created="$DATE$, by Xie Guangye"
在模板参数输入界面下,可以使用ALT+D访问,将跳转到Description参数设置点。
<left>http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657046UOH8AJ.jpg
模板使用界面 (原文件名:9.jpg) </left>

        给参数设定默认值时候我们可以使用等号(=)格式符。参数默认值可以包含非ASCII字符


2.        自定义一个函数模板。
如下:
#TEMPLATE &Function>&Function,"Function &name","Input &para;meter","Out &para;meter",&Description=--,&Created="$DATE$, by Xie Guangye"
/***********************************************************************************************************
* 函数名称: %1()
* 输入参数: %2
* 输出参数: %3
*
* 功    能: %4
*
* 作    者: %5
************************************************************************************************************/
void %1(void)
{
%c
}
该模板使用界面:
<left>http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657046UOH8AJ.jpg
模板使用界面 (原文件名:9.jpg) </left>

首先为代码模板的语法部分,其次是模板的内容。
其中#TEMPLATE为模板定义字;&Function>&Function模板在使用时候显示于菜单中的各层级名称;其后为各个参数项的定义,以逗号(,)区分。
对比模板内容和使用界面我们可以看到,各个参数以(&)定义,在模板内容中各个参数以%1开始依次到%n表示,%c为插入函数时候光标位置。

3.        模板的使用
在代码文件中,鼠标选择在需要插入代码模板的位置。
菜单路径:Edit -> Code Templates -> Insert Templates
<left>http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657044MEEPZ7.jpg
菜单路径1 (原文件名:7.jpg) </left>

或者使用快捷键CTRL+SHIFT+SPACE

在使用界面中输入自己设置的参数
<left>http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657046UOH8AJ.jpg
模板使用界面 (原文件名:9.jpg) </left>


插入的模板化的代码为:
/*******************************************************************************
* 函数名称: Uart_Int()
* 输入参数: 无
* 输出参数: 无
*
* 功    能: 串口初始化
*
* 作    者: 2011-7-12, by Xie Guangye
********************************************************************************/
void Uart_Int(void)
{
       
}

4.        同理,我们可以建立switch模板,MAIN函数模板,中断函数模板,文件注释模板等等。

参考来自IAR官方网页的信息:
http://www.iar.com/website1/1.0.1.0/2518/1/

二、代码编辑快捷键
除了上文提高CTRL+SHIFT+SPACE快捷键,从OUROAVR中找到CC2550介绍的几个好用的在快捷键,这些快捷键的优势在于能快速的处理多行代码。
CTRL+B               Match Brackets         括号匹配 片选择代码
CTRL+T               Auto Indent            自动缩进,格式化选中的代码,格式在TOOLS->OPTIONS->EDITER->Auto Indent->CONFIGS
CTRL+K               Block Comment         快注释,屏蔽选中的代码
CTRL+SHIFT+K       Block Uncomment 取消快注释,取消屏蔽选中的代码

点击此处下载 ourdev_657047JHHOZB.pdf(文件大小:191K) (原文件名:IAR-代码模板建立与代码编辑技巧.pdf)

CC2530 发表于 2011-7-12 15:12:54

不错。
该加个裤子。

CC2530 发表于 2011-7-12 15:50:41

我也来两个模板:
#TEMPLATE "Function Define","Function name","Input Param","Return Param" ,Description,Created="by CC2530",Date="$DATE$"
/**********************************************函数定义*****************************************************
* 函数名称: %3 %1(%2)
* 输入参数: %2
* 返回参数: %3
* 功    能: %4
* 作    者: %5
* 日    期: %6
************************************************************************************************************/
%3 %1(%2)
{
%c
}


#TEMPLATE "Function Declare","Function name","Input Param","Return Param" ,Description,Created="by CC2530",Date="$DATE$"
/***********************************************函数声明*****************************************************
* 函数名称: %3 %1(%2)
* 输入参数: %2
* 返回参数: %3
* 功    能: %4
* 作    者: %5
* 日    期: %6
************************************************************************************************************/
%3 %1(%2);

http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657064BHUZR2.JPG
(原文件名:Image0335.JPG)

xieguangye 发表于 2011-7-12 15:58:35

自己做的一些模板 注释,if..else.. ,switch ,main.c ,头文件定义

#TEMPLATE "&Notes>&HEAD",&Name,"File &Name",&Description,&Version,&Created="xie",&date="$DATE$",&Built="$TOOLKIT_DIR$"
/*******************************************************************************
* Copyright 2008 HongLian 上海仪器发展有限公司
* All right reserved
*
* 文件名称:%1
*
* 文件标识:%2
* 摘    要:%3
*
*
* 当前版本:%4
* 作    者:%5
* 完成日期:%6
* 编译环境:%7
*
* 历史信息:
*******************************************************************************/

#TEMPLATE "&Statement>&ifndef","File &Name"
#ifndef __%1_H
#define __%1_H
%c
#endif

#TEMPLATE "&Statement>&if"
if( %c )
{
}

#TEMPLATE "&Statement>&if..else.."
if( %c )
{
}
else if
{
}
else
{
    ; // no value
}

#TEMPLATE "&Statement>&switch"
switch( %c )
{
case 0:
    break;
default:
    break;
}

#TEMPLATE &Statement>&for,"&End Value"=10,&Variable=i
for(unsigned int %2 = 0; %2 < %1; %2++)
{
%c
}

#TEMPLATE &Function>&Main,&name=Main,&Description=--,&Created="$DATE$, by xie"
/***********************************************************************************************************
* 函数名称: main()
* 功    能: %2
*
* 作    者: %3
************************************************************************************************************/
void main(void)
{
    %c
    while(1)
    {
    }
}

#TEMPLATE &Function>&Function,"Function &name","Input &parameter","Out &parameter",&Description=--,&Created="$DATE$, by xie"
/***********************************************************************************************************
* 函数名称: %1()
* 输入参数: %2
* 输出参数: %3
*
* 功    能: %4
*
* 作    者: %5
************************************************************************************************************/
uint32_t %3 %1(uint32_t %2)
{
    %c
}

stely 发表于 2011-7-12 16:17:50

我是来学学习的

clingos 发表于 2011-7-12 16:37:43

说到模版,不知各位有什么好用和格式化已有代码的工具,
比如给已知的函数增加header
对已有代码进行缩进

目前一直用UltraEdit的格式化工具来美化代码。
不知有没有更好的工具!

ljmdzyx 发表于 2011-9-17 00:03:47

很好啊,学习了…

pcwhy 发表于 2011-9-17 00:13:21

收下了,虽然本人还没有这样用过。。

fang45 发表于 2011-10-30 23:23:09

mark

MouseCat 发表于 2011-10-31 08:44:58

MARK

linyu0395 发表于 2011-10-31 09:00:53

6楼 用eclipse

yingfeng 发表于 2011-10-31 12:10:52

受益匪浅啊!!

renxupeng 发表于 2011-11-19 15:17:04

mark

badboy.tao 发表于 2012-4-21 08:26:07

很好啊{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}

armok 发表于 2012-4-21 08:40:52

cool !

ilawp 发表于 2012-4-23 10:31:43

非常受用,学习了

jyjmaster 发表于 2012-4-23 10:51:38

刚开始接触IAR,学习一下。

BILLCHIA 发表于 2012-4-23 11:20:38

IAR-代码模板建立与代码编辑技巧 好东西 ~正想学下用IAR呢

et009.tw 发表于 2012-4-28 11:31:35

謝謝.好資料 .

ppdd 发表于 2012-5-8 18:46:44

好东西啊

jordonwu 发表于 2012-5-8 18:50:42

学习了。。。

rifjft 发表于 2012-5-8 19:45:39

还以为IAR是不好用,原来是不会用而已{:loveliness:}

liuchangkui 发表于 2012-5-8 21:09:28

不错MARK

铅笔 发表于 2012-5-30 21:28:48

真是好用,不得不顶。IAR+eclipse.

Besky 发表于 2012-6-14 16:29:52

{:lol:}{:handshake:}

Excellence 发表于 2012-6-14 16:33:01

不错。。。。。MARK...

清风绝尘 发表于 2012-6-30 19:14:00

很好 搜藏了

gxhchhkd 发表于 2012-6-30 22:02:56

MARK,受教了,谢谢~~

lantian0099 发表于 2012-7-11 20:54:12

嘿~ 也在用这个,之前一直用VS当编辑器用,能自动完成比较好用....

lcptw 发表于 2012-7-11 21:28:51

IAR-代码模板建立与代码编辑技巧.pdf

居然以前没见过

Holye 发表于 2012-8-23 23:33:29

支持,这种技巧经过自己整合以后非常好用。{:tongue:}

llysc 发表于 2012-8-24 00:00:23

好经验,多谢楼主!!!!!!!!

richards 发表于 2012-8-24 00:18:06

keil什么时候也还有这功能键好了

liycobl 发表于 2012-8-24 09:19:35

mark      ,

hejiancheng 发表于 2012-8-31 17:26:37

mark,谢谢

hejiancheng 发表于 2012-8-31 17:28:01

请问怎么在IAR for sam8 V2中没有模板的功能呢?是否版本低了?

wangkangming 发表于 2012-10-22 13:13:11

大家用IAR哪个版本??哪个版本稳定??

iar520 发表于 2012-10-27 21:53:42

mark,谢谢

jz701209李 发表于 2013-4-7 13:08:43

学习一下....

xiyangzuilehdu 发表于 2013-10-5 19:42:06

好东西,mark!

zhouxiao 发表于 2013-10-5 22:02:16

哈哈,谢谢楼主分享啊!

windrarara 发表于 2013-10-6 21:06:38

IAR模板,mark

dangeranimal 发表于 2013-10-6 21:34:35

很好的东西,学习了

bmitly 发表于 2013-10-8 15:11:27

真心好用 ,谢谢分享{:smile:}

Jacky.Qiu 发表于 2013-10-8 15:22:09

markmarkmark

kekeleqy 发表于 2013-10-17 13:01:27

酷                                 

gdmgb520 发表于 2013-10-17 17:16:56

第一次看到受用IAR的代码模板

Jach_cc 发表于 2013-10-20 22:12:21

好帖!!!

345161974 发表于 2013-11-6 17:29:37

mark,好帖子,挖挖坟,嘎嘎{:lol:}

MarkTylor 发表于 2014-1-23 10:24:19

本帖最后由 MarkTylor 于 2014-1-23 10:28 编辑

请问楼主,我想在模板中插入空格,类似这样的:
#TEMPLATE "&ystatement>Comment In File mode &A"
/*! @brief
* Detail:
*
*
*/

上面例子中,后面4个星号之前的空格会在真正使用时被消除掉,我想加上空格,该怎么操作?
再一个,这模板中有哪些变量啊?$DATE$ $USER_NAME$ ,其他的变量如何查找?
谢谢!

jiwx2011 发表于 2014-3-22 18:03:45

挺实用的,平时还真没注意。

hesperusiris 发表于 2014-3-25 19:03:36

学习了~谢谢~

zzz123456 发表于 2014-4-1 23:20:19

记号,收藏

wenunit 发表于 2014-4-2 08:16:57

好文章..........ds

mvpgpz 发表于 2014-4-2 09:19:41

真是好贴 必须收藏

brwang1983 发表于 2014-4-2 14:14:42

好东西啊

yilusuiyuan 发表于 2014-7-25 14:45:49

这个好用!

jesen_2010 发表于 2014-8-23 23:49:59

这个好,顶顶

vibrate 发表于 2014-9-15 12:17:59

好东西.谢谢!!!

lzzd0918 发表于 2014-10-1 11:56:18

必须收藏一下,回去用这个就方便了

ztxfhl 发表于 2014-10-1 12:28:15

收藏一下,以后学习用.

sup888 发表于 2014-11-6 15:48:37

IAR有列模式编辑吗?比如现在有五行代码,我想在五行代码前同时加上 extern 。有什么快捷方法?

xia2816590 发表于 2014-11-6 16:03:46

IAR编辑 可以这么SMART {:loveliness:}

yanyanyan168 发表于 2014-11-6 16:04:48

谢谢楼主分享

silence_sky 发表于 2014-11-6 17:21:09

这么好的东西应该顶一下啊

卢台长 发表于 2014-11-6 18:27:12

我等IAR死忠{:smile:}{:smile:}{:smile:}

ZYBing 发表于 2014-11-6 19:02:58

谢谢分享!

mikewang011 发表于 2014-11-6 20:05:38

感谢分享 好东西

机器人天空 发表于 2014-11-6 20:39:05

mark.......

L7科创 发表于 2014-11-6 21:27:44

感谢分享 好东西

end2000 发表于 2014-11-6 21:43:58

学到了新东西,谢谢!

LearningASM 发表于 2014-11-6 21:45:19

IAR竟然如此方便,我就没必要Eclipse+IAR了

qq303125686 发表于 2014-11-11 16:43:40

有了这个写代码就可以很方便了~

老谷 发表于 2014-11-11 17:34:46

mark一下,有空看看

1125526801 发表于 2015-1-23 23:10:55

学习了!!!

quzegang 发表于 2015-1-25 21:35:29

很实用的功能,不知道iar 的eclipse插件是否支持该功能

yanyanyan168 发表于 2015-1-26 08:53:49

谢谢,这个不错!

jie_am 发表于 2015-1-28 04:26:29

谢谢楼主!

wjshw123 发表于 2015-2-13 23:14:24

很好的资料,谢谢楼主!

starsun 发表于 2015-6-13 20:57:27

居然有这么好的功能,原来一直手动的

xylslss 发表于 2015-9-29 10:29:39

确实是个很不错的技巧。不过我在使用中遇到一个问题,不知道楼主能否解答。问题是这样的,在模板函数弹出的对话框中输入汉字的编码是随着系统的,但是本人比较喜欢用UTF-8编码格式,这样的话每次使用函数模板时带有的汉字就无法正常显示了,不知道有什么好的办法,能够使在对话框中输入的汉字也是UTF-8的编码格式。

LQS1200 发表于 2015-9-29 14:04:50

其他软件是否也有这样的功能呢?

xxzzhy 发表于 2017-6-9 22:52:33

不错的资料。谢谢

maxking 发表于 2017-6-10 12:13:17

好贴必须顶,谢谢!!

sklli 发表于 2017-6-29 10:24:46

重来没用过,感觉很方便

zhengzixin 发表于 2017-10-16 16:41:04

帖子不错,收藏了。

夕阳林中栖 发表于 2018-7-3 10:26:04

谢谢分享,学习学习

夕阳林中栖 发表于 2018-11-5 13:19:36

谢谢分享,学习学习
页: [1]
查看完整版本: IAR-代码模板建立与代码编辑技巧