IAR使用调试详解

目录

1 IAR功能介绍

1.1 File文件菜单

1.2 Edit编辑菜单

1.3 View视图菜单

1.4 Projcet工程菜单

1.5Debug调试菜单

1.6 Disassembly反汇编菜单

1.7 Simulator下载调试工具

1.8 Tools工具菜单

1.9 Window窗口菜单

1.10 Help帮助菜单

2 IAR设置

2.1 插入/编辑模板

2.2 完型语句

2.3 自动缩进

3 编译和调试

3.1 编译

3.2 不同仿真调试器差异

3.3 调试

3.4 仿真进行调试

3.5 调试窗口介绍


1 IAR功能介绍

1.1 File文件菜单

文件菜单是比较常见的菜单,主要包含对文件的新建、打开、关闭、打印等一些常见的操作,在编辑和调试模式下完全一样。

图片

  • New:新建文件/工作空间 Ctrl + N
  • Open:打开文件/工作空间 Ctrl + O
  • Close:关闭文件
  • Save Workspace:保存工作空间
  • Save Workspace As:另存工作空间
  • Close Workspace:关闭工作空间
  • Save:保存文件 Ctrl + S
  • Save As:另存文件
  • Save All:保存所有文件/工作空间
  • Page Setup:打印页面设置
  • Print:打印 Ctrl + P
  • Recent Files:最近打开文件
  • Recent Workspaces:最近打开工作空间
  • Exit:退出软件

1.2 Edit编辑菜单

这个菜单在编辑和调试模式下也相同,在编辑的时候使用较多,这个菜单下面大部分内容和工具栏按钮一样。

图片

  • Undo:撤销编辑 Ctrl + Z
  • Redo:恢复编辑 Ctrl + Y
  • Cut:剪切 Ctrl + X
  • Copy:复制 Ctrl + C
  • Paste:粘贴 Ctrl + V
  • Select All:全选 Ctrl + A
  • Find and Replace>Find:查找 Ctrl + F

        Find and Replace>Find Next:查找下一目标 F3

        Find and Replace>Find Previous:查找上一目标 Shift + F3

        Find and Replace>Find Next (Selected) :在选中对象里查找下一目标 Ctrl + F3

        Find and Replace>Find Previous (Selected):在选中对象里查找上一目标 Ctrl + Shift + F3

        Find and Replace>Replace:替换 Ctrl + H

        Find and Replace>Find in Files:在对话框中指定条件查找

        Find and Replace>Replace in Files:在对话框中指定条件替换

        Find and Replace>Incremental Search:在对话框中查找字符 Ctrl + I

  • Navigate>Go To:前往行列 Ctrl + G

        Navigate>Toggle Bookmark:标记/取消书签 Ctrl + F2

        Navigate>Previous Bookmark:跳转到上一个书签 Shift + F2

        Navigate>Next Bookmark:跳转到下一个书签 F2

        Navigate>Navigate Backward:跳转到上一步 Alt + 左箭头

        Navigate>Navigate Forward:跳转到下一步 Alt + 右箭头

        Navigate>Go to Definition:跳转到定义 F12

  • Code Templates>Insert Template:插入模板 Ctrl + Alt + V

        Code Templates>Edit Templates:编辑模板

  • Next Error/Tag:显示下一错误/目标 F4
  • Previous Error/Tag:显示上一错误/目标 Shift + F4
  • Complete Word:完型语句 Ctrl + Alt + 空格
  • Complete Code:完型类/结构体代码 Ctrl + 空格
  • Parameter Hint:参数提示 Ctrl + Shift + 空格
  • Match Brackets:括号匹配
  • Toggle All Folds:折叠/打开当面编辑代码 Ctrl + Alt + F
  • Auto Indent:自动缩进(对齐) Ctrl + T
  • Block Comment:块注释 Ctrl + K
  • Block Uncomment:块取消注释 Ctrl + Shift + K
  • Toggle Breakpoint:添加/取消断点 F9
  • Enable/Disable Breakpoint:使能/失能断点 Ctrl + F9

1.3 View视图菜单

这个菜单的意思就是打开或关闭视图窗口,比如我们的工作空间窗口不见了,就可以通过该菜单打开。由于在调试模式下增加了一些视图窗口,所以在两种模式下存在一些差异。

图片

  • Messages>Build:编译信息

        Messages>Find in Files:查找信息

        Messages>Tool Output:工具信息

        Messages>Debug Log:调试信息

  • Workspace:工作空间窗口
  • Source Browser>Source Browser:源码浏览器

        Source Browser>References:引用窗口

        Source Browser>Declarations:声明窗口

        Source Browser>Call Graph:调用图窗口

  • Breakpoints:查看断点窗口
  • Disassembly:反汇编窗口
  • Memory:内存窗口
  • Symbolic Memory:内存标记窗口
  • Register:寄存器窗口
  • Watch:变量/参数查看窗口
  • Locals:局部变量窗口
  • Statics:静态变量窗口
  • Auto:自动显示变量/参数窗口
  • Live Watch:实时监视窗口
  • Quick Watch:快速查看窗口
  • Call Stack:调用堆栈窗口
  • Stack:堆栈地址窗口
  • Terminal I/O:终端窗口
  • Images:图片窗口
  • Cores:内核状态窗口
  • Code Coverage:代码利用率窗口
  • Toolbars>Main:主工具栏

        Toolbars>Debug:调试工具栏

  • Status bar:状态栏

图片

1.4 Projcet工程菜单

工程菜单主要针对的是工程,在实际使用中比较常用,该菜单下面子菜单内容在编辑调试模式下略微存在一些差异。

图片

  • Add Files:添加文件
  • Add Group:添加组
  • Import File List:导入文件列表
  • Add Project Connection:添加工程链接
  • Edit Configurations:编辑配置
  • Remove:移除工作空间工程
  • Create New Project:创建新项目
  • Add Existing Project:添加已存在工程
  • Options:目标选项配置 Alt + F7
  • Version Control System:版本控制系统
  • Make:编译工程 F7
  • Compile:编译文件/组 Ctrl + F7
  • Rebuild All:重新编译
  • Clean:清除编译等中间文件
  • Batch Build:构建批处理 F8
  • C-STAT Static Analysis:静态分析
  • Stop Build:停止编译 Ctrl + Break
  • Download and Debug:下载并调试 Ctrl + D
  • Debug without Downloading:调试(不下载)
  • Attach to Running Target:附加运行目标
  • Make & Restart Debugger:编译并重新调试 Ctrl + R
  • Restart Debugger:重新调试 Ctrl + Shift + R
  • Download:下载
  • SFR Setup:SFR设置
  • Open Device Description File:打开设备描述文件
  • Save List of Registers:保存寄存器列表

1.5Debug调试菜单

这个菜单只有在调试模式下才会显示出来

图片

  • Go:全速运行 F5
  • Break:停止运行
  • Reset:复位
  • Stop Debugging:停止调试 Ctrl + Shift + D
  • Step Over:逐行运行 F10
  • Step Into:跳入运行 F11
  • Step Out:跳出运行 Shift + F11
  • Next Statement:运行到下一语句
  • Run to Cursor:运行到光标行
  • AutoSetp:自动步骤运行
  • Set Next Statement:设置下一条语句
  • C++ Exceptions:C++异常
  • Memory:内存保存/复位
  • Refresh:调试更新
  • Logging:调试日志

前面9项的内容是我们常用的菜单,全部位于工具栏里面,如下图:

图片

AutoSetp自动步骤运行,这个功能可以设定自动运行的xx模式,间隔xx时间运行,自动调试动画效果如下:

图片

1.6 Disassembly反汇编菜单

这个菜单其实很简单,就是选择反汇编的模式,总共四种,我们一般选择自动模式(默认)。

图片

1.7 Simulator下载调试工具

这个菜单的内容会随你工程配置的下载调试改变而改变,有两种类型(ST-Link和Simulator),这个菜单里面的内容使用频率较少。

图片

1.8 Tools工具菜单

这个菜单主要是针对编辑代码相关的配置,对于自定义不同风格比较实用。

图片

1.Options:工具配置选项

2.Filename Extension:文件扩展名

3.Configure Viewers:配置预览

4.Configure Custom Argument Variables:配置自定义参数变量

5.Configure Tools:配置工具

6.Project Converter:工程转换

Options工具配置选项是比较重要的一个菜单,里面包含了我们字体大小、颜色、快捷键、工程输出信息等一系列比较实用的内容。

图片

Configure Tools配置工具可以增加一些相关的命令,有点类似于Keil目标配置选项中User里面用户添加命令。

Project Converter工程转换这个对于同时在Keil和IAR两个工具上开发的人比较实用,可以直接从Keil工程转换为IAR工程。操作很简单,找到需要转换的Keil工程,直接转换就是了,如下图:

图片

1.9 Window窗口菜单

这个菜单需要和View视图菜单区分开来,主要针对的是编辑窗口。

图片

1.Close Tab:关闭选项卡(关闭选中的一个窗口) Ctrl + F4

2.Close Window:关闭窗口(关闭所有窗口)

3.Split:拆分窗口

4.New Vertical Editor Window:新建垂直编辑窗口

5.New Horizontal Editor Window:新建水平编辑窗口

6.Move Tabs to Previous Window:移动标签之后的窗口

7.Move Tabs to Previous Window:移动标签之前的窗口

8.Close All Tabs Except Active:关闭除了活跃的所有选项卡

9.Close All Tabs to the Right of Active:关闭活跃窗口右边所有标签

10.Close All Editor Tabs:关闭所有编辑选项卡

Split拆分窗口就是将一个窗口拆分为上下左右四个窗口,如下图:

图片

New Vertical Editor Window新建垂直编辑窗口New Horizontal Editor Window新建水平编辑窗口类似,只是一个是左右,一个是上下。新建垂直编辑窗口如下图:

图片

1.10 Help帮助菜单

这个菜单里面内容比较实用哦,我写的大部分内容都是参考这里面的,其实主要的也就是所谓的帮助文档。

图片

Content内容、Index索引、Search搜索是对应帮助文档里面的内容,如下如:

图片

Lincense Manager许可证管理,注册的时候就是这里。

2 IAR设置

2.1 插入/编辑模板

经常使用同样一段代码,就可以使用这个功能。IAR默认只有if、for这两个模板,我们可以自己添加(编辑)模板,比如添加一个while模板,点击“编辑模板”菜单就可以进入编辑状态,编辑的语法很简单,可以参考自带模板。插入/编辑模板动画效果:

图片

2.2 完型语句

小学时学习过完型填空,这里相当于就是那个意思,也就是将单词补全。比如完整的代码为USART_Initializes,而实际只需要输入USA字母就可以补全。完型语句动画效果:

图片

2.3 自动缩进

这个功能比较实用,在你代码比较凌乱(也就是不对其的情况),使用该功能就可使代码自动对齐。自动缩进动画效果:

图片

3 编译和调试

3.1 编译

1)单独编译Compile,快捷键Ctrl+F7 2)全局编译Make,快捷键F7

在这里插入图片描述

3.2 不同仿真调试器差异

上面主菜单中有一个Simulatoe菜单选项,其实这个菜单是根据你工程配置的仿真调试器改变而改变的。如在仿真、J-Link、ST-Link下的区别:

图片

3.3 调试

点击Download and Debug,快捷键Ctrl+D

注意:需要在Debugger——Driver选择Simulator模拟,或者用ST-Link连接设备,如果使用ST-Link则开启调试就会烧录程序

在这里插入图片描述

各窗口的含义如下:

序号名称功能
调试断点按钮打开调试界面和设置断点
调试控制按钮可以跳转调试点
Registers寄存器视图
Disassembly程序执行栈
Watch可以查看全局变量值
Memory显示内存情况

3.4 仿真进行调试

常用的调试操作是Debug——Step Over(F10)逐过程、Step Into(F11)逐条执行程序指令、Go(F5)直接把程序执行到最后。在工具栏上也有调试可以直接使用,此程序的调试过程与结果如下:

  • Go:全速运行 F5
  • Break:停止运行
  • Reset:复位
  • Stop Debugging:停止调试 Ctrl + Shift + D
  • Step Over:逐行运行 F10
  • Step Into:跳入运行 F11
  • Step Out:跳出运行 Shift + F11
  • Next Statement:运行到下一语句
  • Run to Cursor:运行到光标行

3.5 调试窗口介绍

View这个菜单的意思就是打开(已关闭的)视图窗口,比如常用的工作空间窗口被不小心关闭了,就可以通过该菜单打开。由于在调试模式下增加了一些视图窗口,所以在编辑模式和调试模式下存在一些差异。

新版的IAR的菜单和以前老版本的排序、内容可能略有差异,但大体相同,重点看一下Watch这一类查看变量的子菜单。6个子菜单主要含义如下:

  • Watch:普通查看表达式/变量值窗口,Watch菜单下面有4个子菜单Watch1 ~4,但都是一样的,可以分别开4个窗口出来同时查看表达式/变量值。

  • Live Watch:查看实时表达式/变量值窗口,Live窗口与上面Watch窗口类似,差别在于变量须为静态(全局),变量实时更新;

  • Quick Watch:快速查看表达式/变量值窗口,快速浏览变量窗口主要结合另外一个视图菜单Macro Quicklaunch一起使用,达到精确地控制变量值。

  • Auto:自动显示表达式/变量窗口,当程序暂停在某一个地方,自动显示暂停坐在位置的表达式/变量,而不需要像Watch要手动添加。

  • Locals:局部变量窗口,这个子菜单和Atuo类似,也是自动显示,区别在于Locals是显示的局部表达式变量,而静态/全局变量不会显示。

  • Statics:静态变量窗口,该子菜单同样具有Atuo的特性,自动显示。但是它显示的内容是静态变量(静态局部、静态全局、全局变量)。

6个视图子菜单窗口的显示内容都类似,总共四个属性:

可以看到数据值显示的是16进制,可以更改为其他显示类型:

参考文章:IAR在线调试查看各种变量的不同方法-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何选择最佳的云盘检测方案?

橡胶密封圈是一种用于填塞、密封或隔离物体之间空隙的圆形零件,通常由橡胶或类似材料制成。这些密封圈通常用于工程、机械或汽车领域,以防止液体、气体或其他物质泄漏。 橡胶密封圈通常对多种化学物质具有良好的耐腐蚀性能,使其适用于各种环…

一些关于颜色的网站

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 1、中国传统色 2、网页颜色选择器 3、渐变色网站 4、多风味色卡生成 5、波浪生成 6、半透明磨砂框 色卡组合

T-CNN——利用张量 CNN 增强缺陷检测

1. 摘要 缺陷检测是制造业中一个重要而具有挑战性的问题。本研究引入了张量卷积神经网络(T-CNN),并在罗伯特-博世制造工厂生产的超声波传感器组件缺陷检测的实际应用中验证了其性能。与同类 CNN 模型相比,作者的量子启发 T-CNN 通…

【后端开发实习】Python基于Quart框架实现SSE数据传输

Python基于Quart框架实现SSE数据传输 前言SSE简介理论分析代码实现 前言 在类似Chatgpt的应用中要实现数据的流式传输,模仿实现打字机效果,SSE是不二之选。传统的Flask框架不能满足异步处理的要求,没有异步处理就很难实现实时交互的需求&…

C++客户端Qt开发——Qt窗口(对话框)

5.对话框 ①对话框介绍 对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件可以设置在对话框中。对话框通常是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。Qt常用的内置对话框有:QFiledialog…

【第四天】计算机网络知识 HTTP1.0,HTTP1.1与HTTP2.0的区别 HTTP3.0

HTTP1.0,HTTP1.1与HTTP2.0的区别 HTTP1.0 默认是短链接,可以强制开启长连接。HTTP1.1默认长连接。HTTP2.0采用多路复用。 HTTP1.0: 默认使用短链接,每次请求都需要建立一个TCP连接。它可以设置:Connection: keep-aliv…

利用OSMnx求路网最短路径并可视化(二)

书接上回,为了增加多路径的可视化效果和坐标匹配最近点来实现最短路可视化,我们使用图形化工具matplotlib结合OSMnx的绘图功能来展示整个路网图,并特别高亮显示计算出的最短路径。 多起终点最短路路径并计算距离和时间 完整代码#运行环境 P…

洛谷 P9854 [CCC 2008 J1] Body Mass Index

这题让我们计算出 BMI 值,随后判断属于哪个等级。 BMI 值计算公式: ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​。 BMI 范围 对应信息 …

【JVM基础08】——类加载器-说一下类加载的执行过程?

目录 1- 引言:类加载的执行过程1-1 类加载的执行过程是什么?(What) 2- ⭐核心:详解类加载的执行过程(How)2-1 加载——>加载到运行时数据区2-2 验证——>类的安全性检查2-3 准备——>为类变量分配内存并设置初始值2-4 解析——>把…

Web网页端IM产品RainbowChat-Web的v7.1版已发布

一、关于RainbowChat-Web RainbowChat-Web是一套Web网页端IM系统,是RainbowChat的姊妹系统(RainbowChat是一套基于开源IM聊天框架 MobileIMSDK (Github地址) 的产品级移动端IM系统)。 ► 详细介绍:http://www.52im.net/thread-2…

每天一个设计模式之职责链模式(第一天)

特别感谢刘伟老师,看他的书我学到了很多东西,从今天开始我要开始更新啦! 在csdn个人博客来总结知识,把他们变成自己的能力。 对三,要不起,张三李四王五几个人在玩斗地主,过过过,一…

Codeforces Round 962 (Div. 3)

链接 C题&#xff1a; 思路&#xff1a; 直接暴力求每个字母的前缀和&#xff0c;对于区间l&#xff0c;r的最小操作就是区间不同数的一半&#xff0c;因为可以把一个数变成另一个不一样的数&#xff0c;一下抵消两个。 #include<bits/stdc.h> using namespace std; //…

MySQL中不等于筛选时会漏掉null值的问题

一、问题描述 MySQL中使用不等于进行筛选数据时&#xff0c;若筛选值为null&#xff0c;则该条数据不会被选中&#xff0c;如何解决该问题&#xff1f; 表示不等于的方式如下&#xff1a; ! <> not in二、案例验证 1、创建数据表 -- ---------------------------- -…

【2024最新版】Stable diffusion汉化版安装教程(附SD安装包),一键激活,永久免费!

目前广泛使用的Stable Diffusion Web UI简称(SDWebUI)是发布在开源平台Github上的一个Python项目,与通常的软件安装方法不同,这个项目并不是下载并安装即可使用的应用程序,而是需要准备执行环境,编译源码. 如果你是一个新手不会安装,现在可以直接使用一键启动包. 例如:国内的…

AI驱动的在线面试系统:技术革新与初步面试的新体验

一、引言 在数字化和智能化的时代背景下&#xff0c;人工智能&#xff08;AI&#xff09;技术正日益渗透到各行各业&#xff0c;为人们的生活和工作带来前所未有的变革。其中&#xff0c;AI驱动的在线面试系统&#xff0c;凭借其高效、便捷、公正等特性&#xff0c;逐渐成为企业…

ATF-541M4全解析(一)

目录 一、描述二、规格三、各参数最大值四、25℃下的典型值 一、描述 安华高科技 (Avago Technologies) 的 ATF-541M4 是一款高线性度、低噪声、单电源供电的E-PHEMT&#xff0c;封装在一个微型无引脚封装中。 ATF-541M4 的小尺寸和低外形使其非常适合用于混合模块和其他空间…

matplotlib 画图函数,最常用的

并排显示2个图片 import os import numpy as np from PIL import Image import matplotlib.pyplot as pltimage1 Image.open(a.png) image2 Image.open(a2.png)# Create a figure with two subplots (1 row, 2 columns) fig, axes plt.subplots(1, 2, figsize(10, 5))# Di…

【Git-驯化】一文搞懂git中rm命令的使用技巧

【Git-驯化】一文搞懂git中rm命令的使用技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&#xff1a;微信公…

git学习笔记(总结了常见命令与学习中遇到的问题和解决方法)

前言 最近学习完git&#xff0c;学习过程中也遇到了很多问题&#xff0c;这里给大家写一篇总结性的博客&#xff0c;主要大概讲述git命令和部分难点问题&#xff08;简单的知识点这里就不再重复讲解了&#xff09; 一.git概述 1.1什么是git Git是一个分布式的版本控制软件。…

【推研小灶】复旦与南大之间:一次独特的计算机保研之旅

写在前面 上午10点填完志愿等待复试通知&#xff0c;利用这段时间记录一下我简短的夏令营和预推免。今年变为线下之后&#xff0c;部分学校的入营情况、考核方式有明显变化。加上CS方向保研名额总体变多&#xff0c;形势有点小乱&#xff0c;甚至填报系统都在9.29中秋节当天&a…