如何在IAR中通过Watch窗口观察局部变量的值

2020-03-31来源: eefocus关键字:IAR  Watch窗口  局部变量

最近在用430开发一款产品,在软件调试的时候发现Watch窗口中无法观察局部变量的值,总是显示,下面通过一个简答的例子说明一下现象:


#include "msp430g2553.h"


/* Global variable */

unsigned char ReceiveGlobal;


unsigned char addxy(unsigned char x,unsigned char y)

{

  unsigned char z;

  z = x+y;

  return z;

}


void main()

{

  /* Local variable */

  unsigned char Receive0;

  static unsigned char Receive1;

  volatile unsigned char Receive2;


  Receive0 = addxy(0,1);

  Receive1 = addxy(1,2);

  Receive2 = addxy(3,4);

  ReceiveGlobal = addxy(5,6);


  while(1);

}


在while(1)处设一断点,在Debug模式下通过Watch窗口观察变量:
这里写图片描述
现在回过头去看IAR中的”Options — c/c++ compiler — Optimization[ˌɔptimaiˈzeiʃən] — Level” 选项:
这里写图片描述
 Level的缺省值为Low,当我把Level选为None之后,即不执行任何优化时,全局变量、静态局部变量、局部变量的值都可以看到,如下图所示。
 这里写图片描述
 当我把优化等级选为Midium或者High之后,全局变量、静态局部变量、局部变量的值都不可见了。
 这里写图片描述
 结论:要想观察局部变量的值,调试的时候可以把优化等级设为None.


补充几个知识点:
1.堆栈(stack)——由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。
2.静态存储区(static)—— 全局变量和静态变量的存储是放在一块的。初始化的全局变量和静态变量在一块区域;未初始化的全局变量和静态变量在相邻的另一块区域。程序结束后由系统释放。

关键字:IAR  Watch窗口  局部变量 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic492981.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:MSP430使用指南32 -> SAC智能模拟组合
下一篇:MSP430使用指南5 -> ICC中断控制器

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8 IAR新建寄存器工程
.2.3.4.添加头文件目录转化为相对目录5.设置输出文件目录6.设置仿真工具
发表于 2020-04-27
STM8 IAR新建寄存器工程
MSP432笔记--序
之前总念叨着,TI大法好,于是在学C51的同时,开始研究TI的低功耗单片机MSP430,从G2到F6系列,做过一些简单的项目,完成实验室的一些基本要求还是绰绰有余。半年之后,也就是15年前半年,TI出了其32位超低功耗单片机MSP432,官网上说LAUNCHPAD是限量版的黑色,于是便和队友下了订单,两天后,从德州寄到大连。然后虽然是东西到手了,但是丝毫没有时间和精力去学,因为考试周+暑期的电赛培训占去了大部分时间,于是一直吃灰到去年年底。某天心血来潮,把板子连上电脑,按照官方的文档配置IAR环境,写下第一个432程序1 #include "msp432p401r"2 3 int main
发表于 2020-04-25
STM8新建IAR工程
1、准备标准库函数文件,官方的标准库函数为stsw-stm8069,解压后如下图:2、新建一个文件夹,本例子命名为stm8-project,新建四个子文件夹,分别命名为APP、Readme、USER、STM8S_StdPerph_Driver:3、从库函数例程以下目录拷贝文件inc和src两个文件夹以及内容至STM8S_StdPerph_Driver目录。4、从库函数例程以下目录拷贝文件main.c、stm8s_conf.h、stm8s_it.c 、stm8s_it.h到USER目录。5、在Readme目录下新建一个文本文件,命名为readme.txt,这个主要用来记录开发进度:6、打开IAR,新建一个工作空间7、新建工程8、选择
发表于 2020-04-23
STM8新建IAR工程
IAR创建工程步骤详记
IAR Systems集嵌入式系统的设计、开发和测试一体,是当下比较热门的一款开发工具。本篇以Cortex-M0系列芯片的工程创建为例,将逐步讲解新工程的创建跟配置。工程创建打开IDE添加工作空间File→New→Workspace创建新的工程Project→Create New Project工程类型选择Tool chain - 工具链,默认ARMProject templates - 工程模板,有asm、C++、C等模板可选,在新建的工程中将会添加对应模板的main文件,如果工程文件要自己编写的话默认选择Empty Project,新建一个空的工程选择工程保存路径及工程名工程配置右键工作空间工程名→Options芯片选择
发表于 2020-04-23
IAR创建工程步骤详记
IAR头文件包含路径设置
IAR头文件包含路径设置 这个文件如果是IAR自带的,不需要设置。 如果不是IAR自带的,最简单的办法:和.c文件放在一个目录下,不需要设置。 如果不在同一个目录下,就需要设置, 举个例子 工程上单击右键,选择Option,打开工程设置窗口(如下图)选择C/C++ compiler,然后再选择Preprocessor,最后在下面的空格处写上相应的路径,路径的格式在后面有专门介绍。如下图:我的设置:工程文件在 E:S3C2440YS2440_IAR头文件在   E:S3C2440YS2440_IARlib则在设置窗口填入:$PROJ_DIR$lib
发表于 2020-04-23
IAR头文件包含路径设置
IAR建立工程文件路径设置
发表于 2020-04-23
IAR建立工程文件路径设置
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved