IAR工作环境配置

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)
    {
    }
}

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
IAR是一种广泛应用的嵌入式系统开发工具,ARM是一种常用的嵌入式处理器架构,IAR ARM集成开发环境(IDE)为开发者提供了便捷的编译、调试和部署工具。 学习IAR ARM集成开发环境涉及以下几个方面: 首先,了解IAR ARM IDE的基本概念和工作原理。IDE是一种软件工具,用于帮助开发者编写、调试和测试代码。要学习IAR ARM IDE,首先需要了解其应用场景、支持的功能以及基本的操作方法。 其次,掌握IAR ARM IDE的安装和设置。在学习之前,需要从IAR官网下载并安装该软件。安装完成后,可以根据需要进行一些基本的设置,例如选择编译器版本、配置开发板和外设等。 然后,学习使用IAR ARM IDE进行代码编写和调试。IDE提供了一个集成的开发环境,包括代码编辑器、编译器、调试器等。通过学习如何在IDE中创建项目、编写代码、编译和调试程序,可以提高开发效率。 此外,了解如何利用IAR ARM IDE进行性能优化和调试。IDE提供了一些优化和调试工具,例如代码剖析器、内存检查器、性能分析器等,可以帮助开发者在开发过程中找出性能瓶颈和代码错误。 最后,研究IAR ARM IDE的扩展和定制。IDE通常支持插件和自定义设置,可以根据需要添加新的功能或调整现有设置,以提高开发效率和适应特定的开发需求。 总之,学习IAR ARM集成开发环境需要掌握其基本概念和工作原理,熟悉安装和设置步骤,掌握代码编写和调试技巧,了解性能优化和调试工具,并探索扩展和定制的可能性。通过系统地学习和实践,开发者可以更好地利用IAR ARM IDE进行嵌入式系统开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值