MDK keil STM32 局部变量不能查看值,显示为not in scope

用MDK调试程序,查看变量时watch窗口总是和

一、方法1:优化级别改为Level 0

1 编译器把这个局部变量给优化掉了,并没有在内存中生成,把优化级别改为Level 0,重新编译。
Keil默认优化是等级3,最高优化,这时就会把一些可有可无的操作优优掉,当然也会把仿真优化,所以只需要把优化调为0,不优化,则没有有这个问题。
在这里插入图片描述
Alt

一、方法2:把变量定义为一个全局变量

对局部变量赋值后,要在后面使用该变量,keil里面才会显示出其状态
想看到局部变量的话,需要在那个变量那里打一个断点,之后按一下F10就能看到了…
局部变量想看的话,那个地方加上断点,同时避免优化问题,最好不要只声明而不使用,否则也是看不到的。

Keil μVision是常用的嵌入式开发工具之一,它支持多种微控制器平台,包括ARM等。在编程过程中,了解如何查看和分析局部变量的信息对于调试非常重要。在Keil中,你可以通过以下步骤来查看和分析程序中的局部变量: 1. **设置断点**:首先,在可能改变局部变量的代码行设置断点。这将使程序暂停执行,允许你检查变量的状态。 2. **进入调试模式**:运行你的程序,当执行到断点处时,程序会自动暂停。此时可以切换到调试模式。 3. **查看变量窗口**:在μVision的调试界面(通常在底部),有一个名为"Watch"或"Variables"的窗口。在这里,你可以输入变量的名称来查找并查看它的当前。 4. **查看堆栈**:如果局部变量是在函数调用过程中创建的,你还可以检查堆栈视图,因为局部变量存储在函数调用的堆栈帧上。 5. **使用内联汇编或内存转储**:如果你需要更深入地分析内存布局,可以使用内联汇编或者在代码中插入内存转储指令来查看变量的内存地址和实际。 6. **使用变量查看器或内存分析工具**:Keil提供了内置的变量查看器,或者你可以利用第三方插件,如MemoryView等,来辅助查看和分析变量。 相关问题: 1. Keil中的内联汇编如何帮助查看局部变量? 2. 在没有断点的情况下,如何直接查看某个时刻的局部变量? 3. Keil中是否存在内存转储命令可以直接获取变量的内存信息?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金增辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值