Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

10 KiB

IAR相关知识点

1.工程操作

1.1各类型文件含义

1.1.1工程核心文件
扩展名 名称 作用
.ewp IAR 工程文件 存储工程配置(编译器选项、链接器设置、包含路径等)
.ewt 嵌入式工作台模板文件 用于存储工程或文件的模板配置,方便快速创建具有相同设置的新项目。
.eww IAR 工作空间文件 管理多个工程(.ewp)的集合,方便同时打开多个关联工程
.dep 依赖文件 自动生成,记录源文件的依赖关系(如头文件引用),用于增量编译
1.1.2源代码文件
扩展名 名称 作用
.c C源文件 主程序代码
.cpp/.cxx c++源文件 c++程序代码
.h 头文件 函数声明、宏定义、类型声明
.s/.asm 汇编文件 底层硬件操作或高性能代码
.icf 链接脚本 控制内存分配(Flash/ROM、RAM 布局)关键硬件相关文件
1.1.3编译输出文件
扩展名 名称 作用
.out ELF 格式输出文件 包含调试信息的可执行文件(用于下载和调试)
.hex Intel HEX 文件 烧录到芯片的标准十六进制格式
.bin 二进制镜像 裸机烧录文件(无地址信息,需配合烧录工具指定地址)
.map 内存映射文件 详细展示代码/数据在内存中的分布(分析栈溢出、内存占用必看)
.lst 列表文件 汇编与源码混合视图(用于优化和调试)
1.1.4调试相关文件
扩展名 名称 作用
.cspybat C-SPY 批处理文件 自动化调试脚本(初始化寄存器、批量设断点)
.ddf 设备描述文件 定义芯片寄存器(用于调试器外设视图)
.board 开发板描述文件 配置板级硬件(时钟、引脚复用等)
.mac 调试宏文件 扩展调试器功能(如自定义内存填充检测)
1.1.5配置与中间文件
扩展名 名称 作用
.custom_argvars 环境变量配置 存储用户自定义环境变量(如编译路径)
.settings IDE 设置文件 保存编辑器偏好(字体、颜色方案等)
.o/.obj 目标文件 单个源文件的编译结果(链接时合并)
.d 依赖信息文件 Makefile 使用的依赖规则
1.1.6特殊工具文件
扩展名 名称 作用
.xcl XLINK 链接器配置 高级链接控制(段重命名、优化选项)
.i 预处理输出文件 展开宏和头文件后的源码(排查宏错误必备)
.sbr 浏览信息文件 用于代码导航(函数调用关系)

1.2新建/打开工作区

软件左上角File菜单内点击New workspace即可创建新的工作区,如需要打开选择Open即可。

tupian

1.3新建/打开工程

工作区新建/打开完成后,选择上方的Project,选择Create New project选择创建类型并命名和存档后完成新建工程。

打开工程选择Add。

tupian

1.4工作区中导入/添加工程

选择上方的Project,点击Add Existing Project,便可以添加项目。

1

1.5新建分组

右键项目名称,选择Add Group,新建分组

1

1.6新建/打开文件

右键项目名称,选择Add File,新建文件。

1

1.7工程目录与文件目录的关系

工程目录是文件目录的容器,通过相对路径引用文件目录中的资源。

工程目录主要负责项目配置和构建控制,而文件目录则是源代码的物理存储位置。两者通过工程文件中的引用关系连接起来,形成完整的开发环境结构。

2.工程配置

2.1设备配置

右键工程文件,选择Options,进入工程配置,选择需要的单片机设备型号。

1

3.编译配置

3.1优化等级

右键Options,选择C/C++ --> Optimizations ,进行优化等级配置。

1

3.2硬件浮点

General Options 界面,选择32bit或64bit,选择fpu功能是否开启。

1

3.3预处理

右键Options,选择C/C++ --> Preprocessor ,Defined symbols进行预处理。

1

3.4链接文件

Linker页面设置链接文件。

1

3.5文件路径位置

在Option页面C/C++设置文件路径位置,包括头文件位置。

1

3.6输出文件配置

选择Output页面,然后设置输出文件位置。

1

3.7输出文件路径

打开Option,选择General,选择output进行配置。

1

4.调试器配置

打开Option,选择Debug进行配置

1

5.库相关配置

设置库文件相关位置,同时在程序内include头文件,使用库。

选项 功能描述
none 不链接任何标准库,适合资源受限的环境。
normal 链接标准 C 库的常规版本,平衡了代码大小和运行速度。
full 链接标准 C 库的完整版本,包含所有功能和调试信息,适合调试阶段。
custom 允许用户自定义库配置,可选择性地包含或排除某些库功能,用于优化代码大小。
libc++ 链接 C++ 标准库,适用于 C++ 开发。

1

6.静态库的封装和调用

新建项目,同时设置.h和.c文件,进行内部程序的编写。注意减少外部依赖,能够直接移植调用。写完之后点击option进行设置,选择General,OutPut选择library,然后make编译生成.lib文件,使用时复制.lib文件到项目内,并在option内进行配置,然后选择Linker -- > Library,将静态库.lib文件添加,返回工程重新编译。

image-20250708144035699

image-20250709181230566

7.工程调试

7.1断点

7.1.1设置断点

左侧标红设置断点

image-20250708150820220

7.1.2禁用断点

鼠标右键点击,disable breakpoints。

image-20250708151057158

7.1.3启用断点

鼠标右键点击,disable breakpoints。

7.1.4取消断点

鼠标左键点击断点即可取消。

7.1.5条件断点

鼠标右键想要断点处,选择Edit Breakpoint,将条件写入即可。

image-20250708152500923

8.监控信息

选择view,找到watch,找到想要监视的信息,将其拖到watch窗口即可。

image-20250708152756370

9.寄存器信息

打开view的registers窗口即可查看寄存器信息。

image-20250708152951214

r0~r3 主要用于子程序间传递参数, r4~r11 主要用于保存局部变量,但在 Thumb 程序中,通常只能使用 r4~r7 来保存局部变量; r12 用作子程序间scratch 寄存器,即 ip 寄存器; r13 通常用做栈指针,即 sp; r14 寄存器又被称为连接寄存器(lr),用于保存子程序以及中断的返回地址; r15 用作程序计数器(pc),由于 ARM 采用了流水线机制,当正确读取了 PC 的值后,该值为当前指令地址加 8 个字节,即 PC 指向当前指令的下两条指令地址。

CPSR和SPSR都是程序状态寄存器,其中SPSR是用来保存中断前的CPSR中的值,以便在中断返回之后恢复处理器程序状态。s

10.内存信息

打开view的memory窗口即可查看寄存器信息

image-20250708153108132

11.栈信息

打开view的stack窗口即可查看栈信息

image-20250708153204889

12.汇编信息

打开view的disassembly窗口可以查看汇编信息

image-20250708153257586

13.调用堆栈信息

打开view的call Stack窗口可以查看堆栈信息

image-20250708153531949

14.单步调试

14.1逐过程调试

菜单栏Step over。

image-20250708153851629

14.2逐语句调试

菜单栏Step into。

14.3 复位

菜单栏Restart。

14.4跳出

菜单栏step out。