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