汽车电子学习笔记 --- IAR

  1. 官网
  2. 命令行编译
    1.  \common\bin 路径添加到系统环境变量path中
    2. IarBuild xxx.ewp Debug ---- xxx.ewp为IAR工程名称,Debug 为xxx.ewp文件中configuration的name
    3. 编译输出所有的编译信息:IarBuild XXX.ewp -build Debug -log all,编译信息生成到log文件:IarBuild XXX.ewp - build Debug -log all > filename.log
    4. 清除编译生成文件:IarBuild XXX.ewp - clean Debug - log all
    5. rebuild,整编修改的文件:IarBuild XXX.ewp -make Debug -log all
    6. 多核编译:arBuild XXX.ewp -build Debug -parallel 8 -log all  (8核编译)
  3. 工程类文件
    • eww文件:工作空间文件,新建工作空间时生成,可以一个空间添加多个工程
    • ewp文件: 工程文件,每个project工程的信息都包含在此文件里
    • ewd文件: 工程配置文件,主要是debug相关配置
    • ewt文件: 工程配置文件,主要是工程静态代码分析c-start / c-run 配置文件,如果不配置静态代码分析此文件可以删除
    • dep文件: 工程依赖信息文件
  4. IDE 设置
    1. Tab size:  Tools -> Options -> Editor :
    2. 多核编译
    3. 设置调试时更新变量和memory的周期时间
    4. 编译生成文件夹路径及生成文件格式设置
      • 生成文件夹路径:IDE上方菜单project -> option -> General option
      • 文件格式:project -> option -> output converter,可以选择最终生成文件的格式为s19、hex、bin等格式。 若勾选Override default可修改默认生成文件名。
    5. 生成map文件:生成文件输出路径output list目录如果没有生成map文件,需要在project -> option -> Linker -> list中勾选Generate linker map file
    6. Flash 地址设置link icf文件:
    7. 编译头文件路径添加:
      • 绝对路径更改为prj dir环境路径:添加文件路径浏览按键点击进入如下窗口,选择文件夹后为绝对路径,需呀再点击山角形按键选择第二行相对路径
    8. 工程prj 宏定义配置:
    9. 生成文件checksum 校验及填充:
    10. 编译警告忽略:如果需要忽略编译信息的警告,可以在option -> c/c++ Compiler -> Diagnostics中添加编译信息中警告前的序列号,如 定义了函数/变量没调用会出现Pe177和Pe150警告,可以把Pe177,Pe150加入,逗号隔开,再次编译就不会再产生此类警告。  
  5. IAR 新建工程
    IAR for ARM系列教程(一)_新建软件工程详细过程_strongerHuang-CSDN博客_iar    IAR for ARM系列教程(一)_新建软件工程详细过程
  6. #pragma 命令
    1. #pragma message("XXXX") :编译器编译到添加处,在Build窗口输出XXXX信息,需要build窗口右键勾选message项。
    2. 变量放在自定义的section中:
      • 方法一:把所有要放在指定段中的变量包含在以#pragma default_variable_attributes = @ "XXX_section" 开头,以 #pragma default_variable_attributes =        结尾的字段中间。(XXX_section为icf文件中定义的段名称)
      • 方法二: 使用location关键字, 如#pragma location="XXX_section" 定义一行,把变量定义放在紧接着的下行中。
    3. 变量放在指定的绝对地址中:
              #pragma location =0x20000040
               static UINT16 XXX_var;           //(变量不能被初始化赋值)
      等同于:
                 static UINT16 XXX_var @0x20000040;
    4.  优化等级设置:  #pragma optimize= none  //none, low, medium, high
  7. __root : 限定的函数和变量在即是没有被任何函数引用的情况下,它依然存在于目标代码中而不会被优化掉.
    __root static UINT8 XXXX_var @address;
  8. 查看ROM、RAM使用情况
    查看编译生成的map文件, 在文件最后显示如图所示:
    其中readonly code memory 表示code所占空间,readonly data memory为常量所占空间,ROM空间使用情况为此两个的和。readwrite data memory为变量数据即RAM空间使用情况。
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值