常见问答

常见问答

在Keil开发环境的调试模式(Debug Mode)下,为什么查看的变量会显示“not in scope”?  日期:2015-11-02

当在调试模式中产生中断时,要查看变量内容值,但是在watch window中却显示“not in scope”,如下图所示:

这是因为编译器在优化之后,会将变量存储在R1等寄存器中,而watch window仅能够从内部存储器中取值,所以会显示“not in scope”。

 

解决方法有3种:

  1. 将变量设置成全局变量。
  2. 将变量设置成volatile型。
  3. 将”Options for Target…”中”C/C++”的”Optimization “设置成”Level 0 (-O0)”,如下图所示:

产品: 微控制器 ,Arm Cortex-M0 微控制器 ,M051 系列 ,M0518 系列 ,M0519 系列 ,Mini51 系列 ,Nano100 / 102 系列 ,Nano110 / 112 LCD 系列 ,Nano120 USB 系列 ,Nano130 USB+LCD 系列 ,NUC029 系列 ,NUC100 / 200 系列 ,NUC120 / 122 / 123 / 220 USB 系列 ,NUC130 / 230 CAN 系列 ,NUC131/NUC1311 CAN 系列 ,NUC140 / 240 USB+CAN 系列 ,Arm Cortex-M4 微控制器 ,M451 Base 系列 ,M451M 系列 ,M452 USB 系列 ,M453 CAN 系列 ,NUC442 / 472 系列 ,NUC505 系列
应用:
功能: Software and Tools,Development-Environment,Keil