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://xiahunao.cn/news/3268097.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【优秀python算法毕设】基于python时间序列模型分析气温变化趋势的设计与实现

1 绪论 1.1 研究背景与意义 在气候变化日益受到全球关注的背景下,天气气温的变化已经对人们的生活各方面都产生了影响,人们在外出时大多都会在手机上看看天气如何,根据天气的变化来决定衣物的穿着和出行的安排。[1]如今手机能提供的信息已经…

mysql中You can’t specify target table for update in FROM clause错误

mysql中You can’t specify target table for update in FROM clause错误 You cannot update a table and select directly from the same table in a subquery. mysql官网中有这句话,我们不能在一个语句中先在子查询中从某张表查出一些值,再update这张表…

项目总结:认证授权

文章目录 前言一、认证授权1.用户身份认证2.用户授权 二、业务流程1.统一认证2.单点登录3.第三方认证 二、Spring Security 认证1.Spring Security2.认证授权入门 前言 会议发布后用户通过页面进行查看。如何去记录用户的会议记录呢?要想掌握用户需要参会的情况就需…

【数据结构】栈(基于数组、链表实现 + GIF图解 + 原码)

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:数据结构 📚本系列文章为个人学…

[OJ]水位线问题,1.采用回溯法(深度优先遍历求解)2.采用广度优先遍历求解

1.深度优先遍历 使用回溯法,深度优先遍历利用栈先进后出的特点,在加水控制水量失败时, 回到最近一次可对水进行加水与否的位置1.对于给定水量k,是否在[l,r]之间, 是:是否加水(加水y,用掉x,是否在[l,r]之间)(不加水y,用掉x,是否在[l,r]之间)先尝试加水,如…

AMQP-核心概念-3

本文参考以下链接摘录翻译: https://www.rabbitmq.com/tutorials/amqp-concepts 队列(Queues) AMQP 0-9-1模型中的队列和其他消息任务队列系统中的队列非常相似:它们用于存储被应用消费的消息。队列和交换机有一些相同的属性&…

js 习题 3

文章目录 绪论12345678910 求最长公共后缀111213 最大公约数1415结语 绪论 『虽有遗憾,绝不后悔。』—— 「古剑奇谭」 1 let buf"";process.stdin.on("readable",function(){let chunkprocess.stdin.read();if(chunk){bufchunk.toString();} …

Linux下git入门操作

0.创建仓库 可以按这个配置来,.gitignore中存放了上传时忽略的文件类型后缀。 1.clone仓库 在gitee上创建好仓库,点击克隆/下载, 复制地址fyehong/Linux_notes 。 在所需的文件夹中放置仓库。比如我在文件夹lesson9下存储仓库。就在less…

MySQL练手 --- 1141. 查询近30天活跃用户数

题目链接:1141. 查询近30天活跃用户数 思路: 题目要求:统计截至 2019-07-27(包含2019-07-27),近 30 天的每日活跃用户数(当天只要有一条活动记录,即为活跃用户) 要计算…

AbutionGraph时序(流式)图数据库开发文档地址

AbutionGraph-时序(流式)图数据库,官方开发文档(API)地址: http://www.thutmose.cn

Java链接elasticsearch8.14.1

项目需求,需要实现海量数据的聚合、查询。因为职业生涯开发使用springboot微服务架构、Java开发的方式,所以,项目前期准备了elasticsearch、kibana、logstash的集群环境,作为服务端,用于数据的收集、存储;但…

『 Linux 』信号的写入与保存

文章目录 信号的发送信号的保存sigset_t 类型与信号集操作函数阻塞信号集(信号屏蔽字)操作函数未决信号集操作函数验证阻塞信号集与未决信号集 信号的发送 $ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10)…

护眼台灯哪个牌子最好?五款平价护眼台灯推荐

如今在快节奏的生活里,不管是上班族还是作为一名学生党,都离不开长时间用眼的情况。高强度的用眼自然会对眼睛伤害大。近视加重可能都还算是小问题,严重的话会出现严重的眼部健康问题,所以,拥有一款合适的护眼台灯是很…

【C++】——红黑树(手撕红黑树,彻底弄懂红黑树)

目录 前言 一 红黑树简介 二 为什么需要红黑树 三 红黑树的特性 四 红黑树的操作 4.1 变色操作 4.2 旋转操作 4.3 插入操作 4.4 红黑树插入代码实现 4.5 红黑树的删除 五 红黑树迭代器实现 总结 前言 我们之前都学过ALV树,AVL树的本质就是一颗平…

【YOLOv5/v7改进系列】引入中心化特征金字塔的EVC模块

一、导言 现有的特征金字塔方法过于关注层间特征交互而忽视了层内特征的调控。尽管有些方法尝试通过注意力机制或视觉变换器来学习紧凑的层内特征表示,但这些方法往往忽略了对密集预测任务非常重要的被忽视的角落区域。 为了解决这个问题,作者提出了CF…

力扣高频SQL 50题(基础版)第十七题

文章目录 力扣高频SQL 50题(基础版)第十七题1075. 项目员工 I题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第十七题 1075. 项目员工 I 题目说明 项目表 Project: ----------------…

uniapp引入自定义图标

目录 一、选择图标,加入购物车 二、下载到本地 三、导入项目 四、修改字体引用路径 五、开始使用 这里以扩展iconfont图标为例 官网:iconfont-阿里巴巴矢量图标库 一、选择图标,加入购物车 二、下载到本地 直接点击下载素材&#xff0…

为什么很多人在一定年龄后的肥胖无法避免

人体在营养均衡状态的时候,是不容易长胖的,且身体也远比一般人更健康些,但想要一直维持身体的这种健康均衡的状态,不仅生活上要很有规律,饮食上也要营养均衡才行。但以如今社会的快节奏生活而言,基本没有人…

Mindspore框架CRF条件随机场概率图模型实现文本序列命名实体标注|(三)双向LSTM+CRF模型构建实现

Mindspore框架CRF条件随机场概率图模型实现文本序列命名实体标注|(一)序列标注与条件随机场的关系 Mindspore框架CRF条件随机场概率图模型实现文本序列命名实体标注|(二)CRF模型构建 Mindspore框架CRF条件随机场概率图模型实现文本…

现代Java开发:使用jjwt实现JWT认证

前言 jjwt 库 是一个流行的 Java 库,用于创建和解析 JWT。我在学习spring security 的过程中看到了很多关于jwt的教程,其中最流行的就是使用jjwt实现jwt认证,但是教程之中依然使用的旧版的jjwt库,许多的类与方法已经标记弃用或者…