# IAR相关知识点
## 1.工程操作
- **各类型文件含义**
| 工程文件(.ewp) | 包含工程的配置信息,如工程设置、文件列表和目标设置 |
| ------------------------ | ------------------------------------------------------------ |
| 工程选项文件(.opt) | 包含特定于目标选项的详细配置 |
| .hex | 单片机可执行的十六进制文件 |
| 源代码文件(.c, .cpp, .s) | 包含项目的源代码 |
| 头文件(.h) | 包含源代码文件中引用的声明 |
| .map | 记录了程序中各个模块、函数、变量等在内存中的具体布局信息,包括地址范围、段的大小以及引用关系等 |
| 构建脚本(.bat, .sh) | 如果使用自动化构建流程,则会用到这些脚本文件 |
- **新建/打开工作区**

- **新建/打开工程**
- **工作区中导入/添加工程**

- **新建分组**
- **新建/打开文件**

- **工程目录与文件目录的关系**
- 工程目录主要负责项目配置和构建控制,而文件目录则是源代码的物理存储位置。两者通过工程文件中的引用关系连接起来,形成完整的开发环境结构。
## 2.工程配置
- **设备配置**
- **编译配置**
- 优化等级
- 硬件浮点
- 预处理

- 链接文件
- 链接脚本控制内存分配
- 文件路径配置

- 输出文件路径
- 输出文件配置
- **调试器配置**

- **库相关配置**
- **静态库的封装**
1. 剔除不需要的文件
2. 选择生成静态库,最后点击编译即可。
- **静态库的调用**
- 将静态库文件与头文件包含进工程后引用即可。
## 工程调试
- **断点**
- 设置断点
点击代码行左侧,出现红色圆圈

- 禁用断点
右键红色圆圈,Enable/disable

- 启用断点
右键红色圆圈,Enable/disable

- 删除断点
再次点击代码行左侧,红色圆圈消失

- 条件断点
可以设置一个条件,当条件满足时,断点生效
- **监控信息** 
- **寄存器信息**

- **内存信息**

- **栈信息**

- **汇编信息**

- **调用堆栈信息**

- **单步调试**
- 逐过程
跟踪执行一条C语句或汇编指令,跟踪进入C函数或者汇编语言子程序。

- 逐语句
单步执行一条C语句或汇编指令,不跟踪进入C函数或者汇编语言子程序。

- 复位

- 跳出
启动C函数或汇编语言子程序从当前位置开始执行,并返回到调用该函数或子程序的下一语句。
