IAR工作环境配置

本文介绍了IAR工作环境的基本配置步骤,包括新建项目、配置字体颜色、设置快捷键及代码模板等内容,帮助初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IAR工作环境配置

第一次使用IAR,不是很习惯其显示界面风格和编程风格,略作更改。

  • 新建项目
  • 工程模板
  • 字体颜色配置
  • 快捷键
  • 代码模板

新建项目

  1. 创建新的项目Project->Create New Project选择编译器,创建空的工程
  2. 选择项目文件保存位置,保存.ewp 文件
  3. 添加工程文件:在窗口左侧的Workspace 中右击项目名,选择Options
  4. 选择芯片型号 General Options->Target
  5. 配置输出文件 General Options->Output Converter 勾选 Generate additional output
    Output format 选择 Intel exended ,然后勾选Override default
  6. 仿真设置 General Options->DebuggerDriver

工程模板

  • 添加文件夹:在项目名上面右击,选择Add->add group ,在跳出的对话框中键入文件夹名称
  • 添加文件:在文件夹上面右击,选择Add->add files ,这里文件可以多选
  • 创建新文件:快捷键Ctrl+N ,编辑新建文件后保存为相应的文件后缀即可
  • 添加头文件目录:右击项目名,选择Options ,在C/C++ Compiler->Preprocessor 添加如图路径头文件路径
    5.点击保存,保存.eww 文件
    文件目录

    字体颜色配置

    配置均在Tools->Options 下完成

  • 显示行号:Editor 勾选Show line number

  • Tab缩进数:EditorIndent size 设置为4
  • 启动时装载旧工程:Project 勾选Reload last workspace at setup
  • 显示更多信息:Messages*Show build messages为All
  • 显示自定义的数据类型:将自定义数据类型编辑为一个文本文件,在Editor->Setup files 勾选Use custom keyword file并添加文件文件路径进去
int32_t
s32
int16_t
s16
int8_t
s8
uint32_t
u32
uint16_t
u16
uint8_t
u8
  • 配置颜色:Editor->Color and Fonts,编辑器配色方案见仁见智,自己习惯就好
名称颜色字体说明
defaultblacknormal普通文本
C keywordpurplenormalint if
Stringdark rednormal“a”
charblackbold‘a’
preprocessorbluenormalinclude
numbernavynormal123
C++commentolivenormal//a
commentgreennormal/*a*/
user keywordbluenormal用户自定义的数据类型

快捷键

版本之间快捷键可能会不同或与其他软件冲突,用户使用前需先查看
CTRL+SHIFT+SPACE 模版使用(包括if、for、class等);//新版本Ctrl+alt+V
CTRL+B 括号匹配 选择括号内的多行代码;
CTRL+T 自动缩进,格式化选中代码,格式设置在TOOLS->OPTIONS->EDITER->Auto Indent->CONFIGS;
CTRL+K 快注释,屏蔽选中的代码;
CTRL+SHIFT+K 取消快注释,取消屏蔽选中的代码;

代码模板

这是个人认为IAR很好的一个地方,创建好合适的模板后就可以随时调用,方便快捷
Edit->code templates->edit template 会打开一个文本文件,用户可以按照其说明的方式进行配置。我自己的模板使用与ST代码风格

################################################################################
##
## This is an example file for defining your own code templates.
##
## The syntax for defining a code ################################################################################
##
## This is an example file for defining your own code templates.
##
## The syntax for defining a code template is:
## #TEMPLATE <template name>,<field>[=default value], <field>...
##
## The template name, the fields and their default values should be defined 
## within quotes if they contain non-alphanumeric characters.
## Use "&" in front of a letter in the template name to make the letter become 
## a shortcut, which means that you can use ALT+<letter> to select the template 
## or jump to the field in the dialog box.
## Use ">" in the template to organize the template names in submenus.
##
################################################################################
#TEMPLATE "&Notes>&HEAD",&Name="$PROJ_FNAME$","&File Name"="$FILE_FNAME$",&Description,&Version,&Created="by $USER_NAME$",&date="$DATE$",&Path="$PROJ_DIR$",
/**
  ******************************************************************************
  * Copyright (c) 2017 $USER_NAME$.
  * All right reserved
  *
  * 项目名称:%1
  * 文件名称:%2
  * 当前版本:V%4  $CONFIG_NAME$
  * 作    者:%5
  * 完成日期:%6
  * 项目路径:%7
  ******************************************************************************
  * 摘    要:%3
  *
  *
  *
  * 历史信息:%c
  ******************************************************************************
  */
#TEMPLATE "&Notes>&INC","&File Name"
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __%1_H
#define __%1_H
/* Includes ------------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Exported macros -----------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */
%c
#endif /* __%1_H */
/************************ (C) COPYRIGHT $USER_NAME$ *************END OF FILE****/
#TEMPLATE "&Notes>&SRC"
/* Includes ------------------------------------------------------------------*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/* Public functions ----------------------------------------------------------*/
%c
/************************ (C) COPYRIGHT $USER_NAME$ *************END OF FILE****/
#TEMPLATE "&Statement>&If"
if( %c )
{

}
#TEMPLATE "&Statement>&Else"
else if( %c )
{
}
#TEMPLATE "&Statement>&While"
while( %c )
{

}
#TEMPLATE "&Statement>&Do-while"
do
{

}while( %c );
#TEMPLATE &Statement>&For,"&End Value"=10,&Variable=i
for(int %2 = 0; %2 < %1; %2++)
{
  %c
}
#TEMPLATE "&Statement>&Switch"
switch( %c )
{
    case 0:
        break;
    default:
        break;
}
#TEMPLATE "&Statement>S&truct","&Struct Name"="name","&Member Type","&Member Name"
Struct %1
{
    %2 %3;
    %c
};
#TEMPLATE "&Statement>E&num","&Enum Name"="name","&Member Name"
Enum %1{%2,%c};
#TEMPLATE &Function>&Define,"&Function name"="Function1","&Input Param","&Input Param introduce","&Return Paramtype"="void","&Input Param introduce",&Description=--,&Created="by $USER_NAME$ $DATE$"
/**
  * 摘    要: %6
  * 输入参数: %2  %3
  * 返回参数: %4  %5 
  */ 
%4 %1(%2) 
{ 
    %c 
}
#TEMPLATE &Function>D&eclare,"&Function name"="Function1","&Input Param","&Input Param introduce","&Return Paramtype"="void","&Input Param introduce",&Description=--,&Created="by $USER_NAME$ $DATE$"
/**
  * 摘    要: %6
  * 输入参数: %2  %3
  * 返回参数: %4  %5 
  */ 
%4 %1(%2);
#TEMPLATE &Function>&Main,&Description=--,&Created="$DATE$, by $USER_NAME$"
/* Includes ------------------------------------------------------------------*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/**
  * 摘    要: %1
  * 输入参数: None
  * 返回参数: None
  */
void main(void)
{
  /* Initialize configuration ------------------------------------------*/
    %c
  /* Infinite loop -----------------------------------------------------*/
    while(1)
    {

    }
}
/************************ (C) COPYRIGHT $USER_NAME$ *************END OF FILE****/
 is:
## #TEMPLATE <template name>,<field>[=default value], <field>...
##
## The template name, the fields and their default values should be defined 
## within quotes if they contain non-alphanumeric characters.
## Use "&" in front of a letter in the template name to make the letter become 
## a shortcut, which means that you can use ALT+<letter> to select the template 
## or jump to the field in the dialog box.
## Use ">" in the template to organize the template names in submenus.
##
################################################################################
#TEMPLATE "&Notes>&HEAD",&Name="$PROJ_FNAME$","&File Name"="$FILE_FNAME$",&Description,&Version,&Created="by $USER_NAME$",&date="$DATE$",&Path="$PROJ_DIR$",
/*******************************************************************************
* Copyright (c) 2017 $USER_NAME$.
* All right reserved
*
* 项目名称:%1
*
* 文件名称:%2
* 摘    要:%3
*
*
* 当前版本:V%4 $CONFIG_NAME$
* 作    者:%5
* 完成日期:%6
* 项目路径:%7
*
* 历史信息:%c
*******************************************************************************/
#TEMPLATE "&Statement>&If"
if( %c )
{

}
#TEMPLATE "&Statement>&Else"
else if( %c )
{
}
#TEMPLATE "&Statement>&While"
while( %c )
{

}
#TEMPLATE "&Statement>&Do-while"
do
{

}while( %c );
#TEMPLATE &Statement>&For,"&End Value"=10,&Variable=i
for(int %2 = 0; %2 < %1; %2++)
{
  %c
}
#TEMPLATE "&Statement>&Switch"
switch( %c )
{
    case 0:
        break;
    default:
        break;
}
#TEMPLATE "&Statement>S&truct","&Struct Name"="name","&Member Type","&Member Name"
Struct %1
{
    %2 %3;
    %c
};
#TEMPLATE "&Statement>E&num","&Enum Name"="name","&Member Name"
Enum %1{%2,%c};
#TEMPLATE "&Statement>ifn&def","&File Name"
#ifndef __%1_H
#define __%1_H
%c
#endif
#TEMPLATE &Function>&Define,"&Function name"="Function1","&Input Param","&Return Paramtype"="void" ,&Description=--,&Created="by $USER_NAME$",Date="$DATE$"
/**********************************************函数定义***************************************************** 
* 函数名称: %3 %1(%2) 
* 输入参数: %2 
* 返回参数: %3  
* 功    能: %4  
* 作    者: %5
* 日    期: %6
************************************************************************************************************/ 
%3 %1(%2) 
{ 
%c 
}
#TEMPLATE &Function>D&eclare,"&Function name"="Function1","&Input Param","&Return Paramtype"="void" ,&Description=--,&Created="by $USER_NAME$",Date="$DATE$"
/**********************************************函数定义***************************************************** 
* 函数名称: %3 %1(%2) 
* 输入参数: %2 
* 返回参数: %3  
* 功    能: %4  
* 作    者: %5
* 日    期: %6
************************************************************************************************************/ 
%3 %1(%2);
#TEMPLATE &Function>&Main,&name=Main,&Description=--,&Created="$DATE$, by $USER_NAME$"
/***********************************************************************************************************
* 函数名称: main()
* 功    能: %2
*
* 作    者: %3
************************************************************************************************************/
void main(void)
{
    %c
    while(1)
    {
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值