搜索
bottom↓
回复: 88

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

  [复制链接]

出0入0汤圆

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

执行该菜单打开以下文件
<left>
模板库 (原文件名:8.jpg) </left>

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

&#61548;        给参数设定默认值时候我们可以使用等号(=)格式符。参数默认值可以包含非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>
模板使用界面 (原文件名:9.jpg) </left>

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

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

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

在使用界面中输入自己设置的参数
<left>
模板使用界面 (原文件名: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)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2011-7-12 15:12:54 | 显示全部楼层
不错。
该加个裤子。

出0入0汤圆

发表于 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);


(原文件名:Image0335.JPG)

出0入0汤圆

 楼主| 发表于 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
}

出0入0汤圆

发表于 2011-7-12 16:17:50 | 显示全部楼层
我是来学学习的

出0入0汤圆

发表于 2011-7-12 16:37:43 | 显示全部楼层
说到模版,不知各位有什么好用和格式化已有代码的工具,
比如给已知的函数增加header
对已有代码进行缩进

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

出0入0汤圆

发表于 2011-9-17 00:03:47 | 显示全部楼层
很好啊,学习了…

出15入9汤圆

发表于 2011-9-17 00:13:21 | 显示全部楼层
收下了,虽然本人还没有这样用过。。

出0入0汤圆

发表于 2011-10-30 23:23:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-31 08:44:58 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-10-31 09:00:53 | 显示全部楼层
6楼 用eclipse

出0入0汤圆

发表于 2011-10-31 12:10:52 | 显示全部楼层
受益匪浅啊!!

出0入0汤圆

发表于 2011-11-19 15:17:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-4-21 08:26:07 | 显示全部楼层
很好啊
头像被屏蔽

出0入0汤圆

发表于 2012-4-21 08:40:52 | 显示全部楼层
cool !

出0入0汤圆

发表于 2012-4-23 10:31:43 | 显示全部楼层
非常受用,学习了

出0入0汤圆

发表于 2012-4-23 10:51:38 | 显示全部楼层
刚开始接触IAR,学习一下。

出0入0汤圆

发表于 2012-4-23 11:20:38 | 显示全部楼层
IAR-代码模板建立与代码编辑技巧 好东西 ~正想学下用IAR呢

出0入0汤圆

发表于 2012-4-28 11:31:35 | 显示全部楼层
謝謝.好資料 .

出0入0汤圆

发表于 2012-5-8 18:46:44 | 显示全部楼层
好东西啊

出0入0汤圆

发表于 2012-5-8 18:50:42 | 显示全部楼层
学习了。。。

出0入0汤圆

发表于 2012-5-8 19:45:39 | 显示全部楼层
还以为IAR是不好用,原来是不会用而已

出0入0汤圆

发表于 2012-5-8 21:09:28 | 显示全部楼层
不错  MARK

出0入0汤圆

发表于 2012-5-30 21:28:48 | 显示全部楼层
真是好用,不得不顶。IAR+eclipse.

出0入0汤圆

发表于 2012-6-14 16:29:52 | 显示全部楼层

出0入0汤圆

发表于 2012-6-14 16:33:01 | 显示全部楼层
不错。。。。。MARK...

出0入0汤圆

发表于 2012-6-30 19:14:00 | 显示全部楼层
很好 搜藏了

出0入0汤圆

发表于 2012-6-30 22:02:56 | 显示全部楼层
MARK,受教了,谢谢~~

出0入0汤圆

发表于 2012-7-11 20:54:12 | 显示全部楼层
嘿~ 也在用这个,之前一直用VS当编辑器用,能自动完成比较好用....

出0入0汤圆

发表于 2012-7-11 21:28:51 | 显示全部楼层
IAR-代码模板建立与代码编辑技巧.pdf

居然以前没见过

出0入0汤圆

发表于 2012-8-23 23:33:29 | 显示全部楼层
支持,这种技巧经过自己整合以后非常好用。

出0入17汤圆

发表于 2012-8-24 00:00:23 | 显示全部楼层
好经验,多谢楼主!!!!!!!!

出0入0汤圆

发表于 2012-8-24 00:18:06 | 显示全部楼层
keil什么时候也还有这功能键好了

出0入0汤圆

发表于 2012-8-24 09:19:35 来自手机 | 显示全部楼层
mark        ,

出0入0汤圆

发表于 2012-8-31 17:26:37 | 显示全部楼层
mark,谢谢

出0入0汤圆

发表于 2012-8-31 17:28:01 | 显示全部楼层
请问怎么在IAR for sam8 V2中没有模板的功能呢?是否版本低了?

出0入0汤圆

发表于 2012-10-22 13:13:11 | 显示全部楼层
大家用IAR哪个版本??哪个版本稳定??

出0入0汤圆

发表于 2012-10-27 21:53:42 | 显示全部楼层
mark,谢谢

出0入0汤圆

发表于 2013-4-7 13:08:43 来自手机 | 显示全部楼层
学习一下....

出0入0汤圆

发表于 2013-10-5 19:42:06 | 显示全部楼层
好东西,mark!

出0入0汤圆

发表于 2013-10-5 22:02:16 | 显示全部楼层
哈哈,谢谢楼主分享啊!

出0入0汤圆

发表于 2013-10-6 21:06:38 | 显示全部楼层
IAR模板,mark

出0入0汤圆

发表于 2013-10-6 21:34:35 | 显示全部楼层
很好的东西,学习了

出0入0汤圆

发表于 2013-10-8 15:11:27 | 显示全部楼层
真心好用 ,谢谢分享

出0入0汤圆

发表于 2013-10-8 15:22:09 | 显示全部楼层
markmarkmark

出0入0汤圆

发表于 2013-10-17 13:01:27 | 显示全部楼层
酷                                 

出0入0汤圆

发表于 2013-10-17 17:16:56 | 显示全部楼层
第一次看到受用IAR的代码模板

出0入0汤圆

发表于 2013-10-20 22:12:21 | 显示全部楼层
好帖!!!

出0入0汤圆

发表于 2013-11-6 17:29:37 | 显示全部楼层
mark,好帖子,挖挖坟,嘎嘎

出0入0汤圆

发表于 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$ ,其他的变量如何查找?
谢谢!

出0入0汤圆

发表于 2014-3-22 18:03:45 | 显示全部楼层
挺实用的,平时还真没注意。

出0入0汤圆

发表于 2014-3-25 19:03:36 | 显示全部楼层
学习了~谢谢~

出0入0汤圆

发表于 2014-4-1 23:20:19 | 显示全部楼层
记号,收藏

出0入0汤圆

发表于 2014-4-2 08:16:57 | 显示全部楼层
好文章..........ds

出0入0汤圆

发表于 2014-4-2 09:19:41 | 显示全部楼层
真是好贴 必须收藏

出0入0汤圆

发表于 2014-4-2 14:14:42 | 显示全部楼层
好东西啊

出0入0汤圆

发表于 2014-7-25 14:45:49 | 显示全部楼层
这个好用!

出0入0汤圆

发表于 2014-8-23 23:49:59 | 显示全部楼层
这个好,顶顶

出0入0汤圆

发表于 2014-9-15 12:17:59 | 显示全部楼层
好东西.谢谢!!!

出0入0汤圆

发表于 2014-10-1 11:56:18 | 显示全部楼层
必须收藏一下,回去用这个就方便了

出0入0汤圆

发表于 2014-10-1 12:28:15 | 显示全部楼层
收藏一下,以后学习用.

出0入0汤圆

发表于 2014-11-6 15:48:37 | 显示全部楼层
IAR有列模式编辑吗?比如现在有五行代码,我想在五行代码前同时加上 extern 。有什么快捷方法?

出0入0汤圆

发表于 2014-11-6 16:03:46 | 显示全部楼层
IAR编辑 可以这么SMART

出140入115汤圆

发表于 2014-11-6 16:04:48 | 显示全部楼层
谢谢楼主分享

出0入0汤圆

发表于 2014-11-6 17:21:09 | 显示全部楼层
这么好的东西应该顶一下啊

出0入0汤圆

发表于 2014-11-6 18:27:12 | 显示全部楼层
我等IAR死忠

出0入0汤圆

发表于 2014-11-6 19:02:58 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2014-11-6 20:05:38 | 显示全部楼层
感谢分享 好东西

出0入0汤圆

发表于 2014-11-6 20:39:05 | 显示全部楼层
mark.......

出0入0汤圆

发表于 2014-11-6 21:27:44 | 显示全部楼层
感谢分享 好东西

出0入0汤圆

发表于 2014-11-6 21:43:58 | 显示全部楼层
学到了新东西,谢谢!

出0入0汤圆

发表于 2014-11-6 21:45:19 | 显示全部楼层
IAR竟然如此方便,我就没必要Eclipse+IAR了

出0入0汤圆

发表于 2014-11-11 16:43:40 | 显示全部楼层
有了这个写代码就可以很方便了~

出0入0汤圆

发表于 2014-11-11 17:34:46 | 显示全部楼层
mark一下,有空看看

出0入0汤圆

发表于 2015-1-23 23:10:55 | 显示全部楼层
学习了!!!

出0入0汤圆

发表于 2015-1-25 21:35:29 | 显示全部楼层
很实用的功能,不知道iar 的eclipse插件是否支持该功能

出140入115汤圆

发表于 2015-1-26 08:53:49 | 显示全部楼层
谢谢,这个不错!

出0入0汤圆

发表于 2015-1-28 04:26:29 | 显示全部楼层
谢谢楼主!

出0入0汤圆

发表于 2015-2-13 23:14:24 | 显示全部楼层
很好的资料,谢谢楼主!

出0入0汤圆

发表于 2015-6-13 20:57:27 | 显示全部楼层
居然有这么好的功能,原来一直手动的

出0入0汤圆

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

出0入0汤圆

发表于 2015-9-29 14:04:50 | 显示全部楼层
其他软件是否也有这样的功能呢?

出0入0汤圆

发表于 2017-6-9 22:52:33 | 显示全部楼层
不错的资料。谢谢

出0入0汤圆

发表于 2017-6-10 12:13:17 | 显示全部楼层
好贴必须顶,谢谢!!

出0入0汤圆

发表于 2017-6-29 10:24:46 | 显示全部楼层
重来没用过,感觉很方便

出0入0汤圆

发表于 2017-10-16 16:41:04 | 显示全部楼层
帖子不错,收藏了。

出0入0汤圆

发表于 2018-7-3 10:26:04 | 显示全部楼层
谢谢分享,学习学习

出0入0汤圆

发表于 2018-11-5 13:19:36 | 显示全部楼层
谢谢分享,学习学习
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 10:34

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表