# IAR相关知识点 ## 1.工程操作 - **各类型文件含义** | 工程文件(.ewp) | 包含工程的配置信息,如工程设置、文件列表和目标设置 | | ------------------------ | ------------------------------------------------------------ | | 工程选项文件(.opt) | 包含特定于目标选项的详细配置 | | .hex | 单片机可执行的十六进制文件 | | 源代码文件(.c, .cpp, .s) | 包含项目的源代码 | | 头文件(.h) | 包含源代码文件中引用的声明 | | .map | 记录了程序中各个模块、函数、变量等在内存中的具体布局信息,包括地址范围、段的大小以及引用关系等 | | 构建脚本(.bat, .sh) | 如果使用自动化构建流程,则会用到这些脚本文件 | - **新建/打开工作区** ![打开工作区](./pictures/打开工作区.png) - **新建/打开工程** 打开工程 - **工作区中导入/添加工程** ![添加工程](./pictures/添加工程.png) - **新建分组** 新建分组 - **新建/打开文件** ![新建文件](./pictures/新建文件.png) - **工程目录与文件目录的关系** - 工程目录主要负责项目配置和构建控制,而文件目录则是源代码的物理存储位置。两者通过工程文件中的引用关系连接起来,形成完整的开发环境结构。 ## 2.工程配置 - **设备配置** 设备配置 - **编译配置** - 优化等级 ​ 优化等级 - 硬件浮点 ​ 硬件浮点 - 预处理 ​ ![预处理](./pictures/预处理.png) - 链接文件 - 链接脚本控制内存分配 ​ 链接文件 - 文件路径配置 ​ ![文件路径配置](./pictures/文件路径配置.png) - 输出文件路径 ​ 输出文件路径配置 - 输出文件配置 ​ 输出文件配置 - **调试器配置** ![调试器配置](./pictures/调试器配置.png) - **库相关配置** ​ 库相关配置 - **静态库的封装** 1. 剔除不需要的文件 静态库封装 2. 选择生成静态库,最后点击编译即可。 静态库封装2 - **静态库的调用** - 将静态库文件与头文件包含进工程后引用即可。 静态库的使用 ## 工程调试 - **断点** - 设置断点 ​ 点击代码行左侧,出现红色圆圈 ​ ![设置断点](./pictures/设置断点.png) - 禁用断点 ​ 右键红色圆圈,Enable/disable ​ ![禁用断点](./pictures/禁用断点.png) - 启用断点 ​ 右键红色圆圈,Enable/disable ​ ![设置断点](./pictures/设置断点.png) - 删除断点 ​ 再次点击代码行左侧,红色圆圈消失 ​ ![删除断点](./pictures/删除断点.png) - 条件断点 ​ 可以设置一个条件,当条件满足时,断点生效![条件断点](./pictures/条件断点.png) - **监控信息** ![监控信息](./pictures/监控信息.png) - **寄存器信息** ![寄存器信息](./pictures/寄存器信息.png) - **内存信息** ![内存信息](./pictures/内存信息.png) - **栈信息** ![栈信息](./pictures/栈信息.png) - **汇编信息** ![汇编信息](./pictures/汇编信息.png) - **调用堆栈信息** ​ ![调用堆栈信息](./pictures/调用堆栈信息.png) - **单步调试** - 逐过程 ​ 跟踪执行一条C语句或汇编指令,跟踪进入C函数或者汇编语言子程序。 ​ ![逐过程](./pictures/逐过程.png) - 逐语句 ​ 单步执行一条C语句或汇编指令,不跟踪进入C函数或者汇编语言子程序。 ​ ![逐语句](./pictures/逐语句.png) - 复位 ​ ![复位](./pictures/复位.png) - 跳出 ​ 启动C函数或汇编语言子程序从当前位置开始执行,并返回到调用该函数或子程序的下一语句。 ​ ![跳出](./pictures/跳出.png)