diff --git a/IAR/IAR.md b/IAR/IAR.md index e9162a9..65d46ec 100644 --- a/IAR/IAR.md +++ b/IAR/IAR.md @@ -4,214 +4,216 @@ ## 工程操作 -- **各类型文件含义** +### **各类型文件含义** - | 文件后缀 | 其意义 | - | :-------: | :----------------------------------------------------------: | - | `.eww` | 工作空间文件,包含多个项目的索引信息 | - | `.ewp` | 项目文件,包含项目的设置和配置 | - | `.ewd` | 调试配置文件,用于调试设置 | - | `.ewt` | (嵌入式工作台模板文件) 用于存储工程或文件的模板配置,方便快速创建具有相同设置的新项目。 | - | `.c` | 源代码文件,包含C语言代码 | - | `.h` | 头文件,包含函数声明和宏定义 | - | `.s/.asm` | 汇编文件 | - | `.map` | 单片机地址映射文件 | - | `.hex` | 烧录到芯片的十六进制文件 | +| 文件后缀 | 其意义 | +| :-------: | :----------------------------------------------------------: | +| `.eww` | 工作空间文件,包含多个项目的索引信息 | +| `.ewp` | 项目文件,包含项目的设置和配置 | +| `.ewd` | 调试配置文件,用于调试设置 | +| `.ewt` | (嵌入式工作台模板文件) 用于存储工程或文件的模板配置,方便快速创建具有相同设置的新项目。 | +| `.c` | 源代码文件,包含C语言代码 | +| `.h` | 头文件,包含函数声明和宏定义 | +| `.s/.asm` | 汇编文件 | +| `.map` | 单片机地址映射文件 | +| `.hex` | 烧录到芯片的十六进制文件 | - -- **新建/打开工作区** - - 新建工作区 +### **新建/打开工作区** - ![image-20250709093244205](./pictures/image-20250709093244205.png) +#### 新建工作区 - - **打开工作区** +![image-20250709093244205](./pictures/image-20250709093244205.png) - ![image-20250709093728548](./pictures/image-20250709093728548.png) +#### **打开工作区** -- **新建/打开工程** +![image-20250709093728548](./pictures/image-20250709093728548.png) - - 新建工程 +### **新建/打开工程** - ![image-20250709093806148](./pictures/image-20250709093806148.png) +#### 新建工程 - - **打开工程** +![image-20250709093806148](./pictures/image-20250709093806148.png) - ![image-20250709093908974](./pictures/image-20250709093908974.png) +#### **打开工程** -- **工作区导入/添加工程** +![image-20250709093908974](./pictures/image-20250709093908974.png) - ![image-20250709094027152](./pictures/image-20250709094027152.png) +### **工作区导入/添加工程** -- **新建分组** +![image-20250709094027152](./pictures/image-20250709094027152.png) - ![image-20250709094122539](./pictures/image-20250709094122539.png) +### **新建分组** -- **新建/打开文件** +![image-20250709094122539](./pictures/image-20250709094122539.png) - - 新建文件 +### **新建/打开文件** - ![image-20250709094340738](./pictures/image-20250709094340738.png) +#### 新建文件 - - 打开文件 +![image-20250709094340738](./pictures/image-20250709094340738.png) - ![image-20250709094428732](./pictures/image-20250709094428732.png) +#### 打开文件 -- **工程目录与文件目录的关系** +![image-20250709094428732](./pictures/image-20250709094428732.png) - - 工程目录主要负责项目配置和构建控制,而文件目录则是源代码的物理存储位置。两者通过工程文件中的引用关系连接起来,形成完整的开发环境结构。 +### **工程目录与文件目录的关系** + +- 工程目录主要负责项目配置和构建控制,而文件目录则是源代码的物理存储位置。两者通过工程文件中的引用关系连接起来,形成完整的开发环境结构。 ## 工程配置 -- **设备配置** +### **设备配置** + +#### 选择芯片型号 - - 选择芯片型号 +![image-20250709095356988](./pictures/image-20250709095356988.png) - ![image-20250709095356988](./pictures/image-20250709095356988.png) +![image-20250709095422368](./pictures/image-20250709095422368.png) - ![image-20250709095422368](./pictures/image-20250709095422368.png) - -- **编译配置** +### **编译配置** - - 优化等级 +#### 优化等级 - ![image-20250709095459265](./pictures/image-20250709095459265.png) +![image-20250709095459265](./pictures/image-20250709095459265.png) - - 硬件浮点 +#### 硬件浮点 - ![image-20250709095532506](./pictures/image-20250709095532506.png) +![image-20250709095532506](./pictures/image-20250709095532506.png) - - 预处理 +#### 预处理 - ![image-20250709100328867](./pictures/image-20250709100328867.png) +![image-20250709100328867](./pictures/image-20250709100328867.png) - - 链接文件(.icf链接脚本控制内存分配(Flash/ROM、RAM 布局)关键硬件相关文件) +#### 链接文件 - ![image-20250709095718033](./pictures/image-20250709095718033.png) +(.icf链接脚本控制内存分配(Flash/ROM、RAM 布局)关键硬件相关文件) - - 文件路径配置 +![image-20250709095718033](./pictures/image-20250709095718033.png) - ![image-20250709095759245](./pictures/image-20250709095759245.png) +### 文件路径配置 - - 输出文件路径 +![image-20250709095759245](./pictures/image-20250709095759245.png) - ![image-20250709100111787](./pictures/image-20250709100111787.png) +### 输出文件路径 - - 输出文件配置 +![image-20250709100111787](./pictures/image-20250709100111787.png) - ![image-20250709100429885](./pictures/image-20250709100429885.png) +### 输出文件配置 -- 调试器配置 +![image-20250709100429885](./pictures/image-20250709100429885.png) - ![image-20250709100507410](./pictures/image-20250709100507410.png) +### 调试器配置 -- 库相关配置 +![image-20250709100507410](./pictures/image-20250709100507410.png) - ![image-20250709100552114](./pictures/image-20250709100552114.png) +### 库相关配置 -- 静态库的封装 +![image-20250709100552114](./pictures/image-20250709100552114.png) - 1. ![image-20250709185406199](./pictures/image-20250709185406199.png) +### 静态库的封装 - 2. ![image-20250709185505451](./pictures/image-20250709185505451.png) +1. ![image-20250709185406199](./pictures/image-20250709185406199.png) - 3. ![image-20250709185622450](./pictures/image-20250709185622450.png) +2. ![image-20250709185505451](./pictures/image-20250709185505451.png) - 4. 屏蔽不用编译的文件 +3. ![image-20250709185622450](./pictures/image-20250709185622450.png) - ![image-20250709185744113](./pictures/image-20250709185744113.png) +4. 屏蔽不用编译的文件 - ![image-20250709185833195](./pictures/image-20250709185833195.png) + ![image-20250709185744113](./pictures/image-20250709185744113.png) - 5. 编译 + ![image-20250709185833195](./pictures/image-20250709185833195.png) -- 静态库的调用 +5. 编译 - 1. ![image-20250709185922441](./pictures/image-20250709185922441.png) - 2. ![image-20250709190002503](./pictures/image-20250709190002503.png) - 3. 将之前的.c文件删除 - 4. 编译执行 +### 静态库的调用 + +1. ![image-20250709185922441](./pictures/image-20250709185922441.png) +2. ![image-20250709190002503](./pictures/image-20250709190002503.png) +3. 将之前的.c文件删除 +4. 编译执行 ## 工程调试 -- 断点 +### 断点 + +#### 设置断点 + +设置断点(点击代码行左侧,出现红色圆圈) + +#### 禁用断点 + +禁用断点(右键红色圆圈,Enable/disable) + +#### 启用断点 - - 设置断点 +启用断点(右键红色圆圈,Enable/disable) - 设置断点(点击代码行左侧,出现红色圆圈) +#### 删除断点 - - 禁用断点 +删除断点(再次点击代码行左侧,红色圆圈消失) - 禁用断点(右键红色圆圈,Enable/disable) +#### 条件断点 - - 启用断点 +条件断点(可以设置一个条件,当条件满足时,断点生效) - 启用断点(右键红色圆圈,Enable/disable) +![image-20250709104442792](./pictures/image-20250709104442792.png) - - 删除断点 +### 监控信息 - 删除断点(再次点击代码行左侧,红色圆圈消失) +![image-20250709101836850](./pictures/image-20250709101836850.png) - - 条件断点 +#### 寄存器信息 - 条件断点(可以设置一个条件,当条件满足时,断点生效) +![image-20250709105019076](./pictures/image-20250709105019076.png) - ![image-20250709104442792](./pictures/image-20250709104442792.png) +#### 内存信息 -- 监控信息 +![image-20250709105314139](./pictures/image-20250709105314139.png) - ![image-20250709101836850](./pictures/image-20250709101836850.png) +#### 栈信息 -- 寄存器信息 +![image-20250709105420224](./pictures/image-20250709105420224.png) - ![image-20250709105019076](./pictures/image-20250709105019076.png) +#### 汇编信息 -- 内存信息 +![image-20250709105851015](./pictures/image-20250709105851015.png) - ![image-20250709105314139](./pictures/image-20250709105314139.png) +#### 调用堆栈信息 -- 栈信息 +调用堆栈窗口通常在IDE(如Visual Studio)中提供,它展示了函数调用的顺序列表。 - ![image-20250709105420224](./pictures/image-20250709105420224.png) +![image-20250709190439295](./pictures/image-20250709190439295.png) -- 汇编信息 +### 单步调试 - ![image-20250709105851015](./pictures/image-20250709105851015.png) +#### 逐过程 -- 调用堆栈信息 +![image-20250709191214143](./pictures/image-20250709191214143.png) - 调用堆栈窗口通常在IDE(如Visual Studio)中提供,它展示了函数调用的顺序列表。 +#### 逐语句 - ![image-20250709190439295](./pictures/image-20250709190439295.png) +![image-20250709191149273](./pictures/image-20250709191149273.png) -- 单步调试 +#### 复位 - - 逐过程 +![image-20250709103631255](./pictures/image-20250709103631255.png) - ![image-20250709191214143](./pictures/image-20250709191214143.png) +#### 跳出 - - 逐语句 +![image-20250709191239821](./pictures/image-20250709191239821.png) - ![image-20250709191149273](./pictures/image-20250709191149273.png) +## IAR 调试常用操作对照表(含英文缩写、快捷键和含义) - - 复位 - - ![image-20250709103631255](./pictures/image-20250709103631255.png) - - - 跳出 - - ![image-20250709191239821](./pictures/image-20250709191239821.png) - - ## IAR 调试常用操作对照表(含英文缩写、快捷键和含义) - - | 中文名称 | 英文名称 | 缩写/简称 | 快捷键 | 含义说明 | - | -------- | --------- | ------------------ | -------------- | ------------------------------------------------------------ | - | 逐语句 | Step Into | `StepIn` 或 `SI` | `F11` | 执行当前语句,若为函数调用,则进入函数内部逐句调试。 | - | 逐过程 | Step Over | `StepOver` 或 `SO` | `F10` | 执行当前语句,若为函数调用,则跳过函数体,直接执行下一行。 | - | 跳出 | Step Out | `StepOut` 或 `SR` | `Shift + F11` | 执行当前函数剩余代码并跳出,返回到调用该函数的位置。 | - | 复位 | Reset | `Reset` | *无默认快捷键* | 让 MCU 从复位向量重新启动程序执行(从 `main()` 或初始化开始)。 | +| 中文名称 | 英文名称 | 缩写/简称 | 快捷键 | 含义说明 | +| -------- | --------- | ------------------ | -------------- | ------------------------------------------------------------ | +| 逐语句 | Step Into | `StepIn` 或 `SI` | `F11` | 执行当前语句,若为函数调用,则进入函数内部逐句调试。 | +| 逐过程 | Step Over | `StepOver` 或 `SO` | `F10` | 执行当前语句,若为函数调用,则跳过函数体,直接执行下一行。 | +| 跳出 | Step Out | `StepOut` 或 `SR` | `Shift + F11` | 执行当前函数剩余代码并跳出,返回到调用该函数的位置。 | +| 复位 | Reset | `Reset` | *无默认快捷键* | 让 MCU 从复位向量重新启动程序执行(从 `main()` 或初始化开始)。 | [**参考文献**](https://blog.csdn.net/ideal121/article/details/118675124?fromshare=blogdetail&sharetype=blogdetail&sharerId=118675124&sharerefer=PC&sharesource=2301_81415726&sharefrom=from_link) \ No newline at end of file diff --git a/Library/Library.md b/Library/Library.md index 2b3300d..928cd87 100644 --- a/Library/Library.md +++ b/Library/Library.md @@ -48,6 +48,8 @@ - 在代码中语句加载lib调用 使用`#pragma comment(lib, "creat_static_lib.lib")`指令 + + ## 动态库 #### 动态库的基本概念 diff --git a/SourceInSight/SourceInSight.md b/SourceInSight/SourceInSight.md index 790b3eb..06f954e 100644 --- a/SourceInSight/SourceInSight.md +++ b/SourceInSight/SourceInSight.md @@ -140,4 +140,12 @@ - **适用场景**: - 快速跳转函数/变量定义 - **缺点**: - - 搜不到未同步的符号(需手动同步) \ No newline at end of file + - 搜不到未同步的符号(需手动同步) + +## 同步滚动 + +![image-20250712181925371](./pictures/image-20250712181925371.png) + +## 改字体 + +![image-20250712182757921](./pictures/image-20250712182757921.png) \ No newline at end of file diff --git a/SourceInSight/pictures/image-20250712181925371.png b/SourceInSight/pictures/image-20250712181925371.png new file mode 100644 index 0000000..3ff3b47 Binary files /dev/null and b/SourceInSight/pictures/image-20250712181925371.png differ diff --git a/SourceInSight/pictures/image-20250712182757921.png b/SourceInSight/pictures/image-20250712182757921.png new file mode 100644 index 0000000..9074010 Binary files /dev/null and b/SourceInSight/pictures/image-20250712182757921.png differ