keil硬件仿真时,显示变量的值错误

我用keil,调试stm32单片机,采用j-link硬件仿真,发现我单步运行时,在watch窗口看变量的值有错误,有时能够更新,有时那个值就不更新,后来,我在程序中用pr... 我用keil,调试stm32单片机,采用j-link硬件仿真,发现我单步运行时,在watch窗口看变量的值有错误,有时能够更新,有时那个值就不更新,后来,我在程序中用printf把变量的值打印出来,发现,单步调试时,变量的值明显已经变化了(有printf在串口里打印出来了),但watch窗口还是没有更新,我重新在watch窗口删除要观察的变量,再把那变量输一遍,还是没有显示更新后的值,请问这是怎么回事?
多谢flyunlimit,
我的版本是3.62的,以前用过4.0的,结果编译出来的文件太大,放不进去?,结果就不用了,

弱弱的问一下,swj模式怎么设置?是不是硬件也不一样?网上查了点资料,似乎不能用原有的j-link的调试硬件吧?

额~~~刚才发现了我的j-link不支持swj模式。。。。。。。。郁闷啊,只能用printf了
展开
 我来答
flyunlimit
2009-11-16 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2996
采纳率:33%
帮助的人:2200万
展开全部
JLINK,这个问题我没遇到,但是用STM32的SWJ模式好些,省IO口,还速度快。watch窗口里的变量即便是在片子运行期间都会跟着变化,不是实时的,有滞后,但好过JTAG模式那样停止后才更新。

我是观察16次定时器捕捉的值,存到RAM的自定义数组里。

还有一点,注意MDK的版本,最新的4.0还有问题,用3.8的很不错。3.5以后的才开始支持SWJ模式,最早几个支持STM32的版本在仿真器的驱动上是有BUG的。

ST LINK是单位的,我用过一次就甩了,上面的捕捉,只能看到数组的前8个值,后8个压根不变。
百度网友5f81806
2009-11-12 · TA获得超过1302个赞
知道小有建树答主
回答量:335
采纳率:100%
帮助的人:303万
展开全部
寄存器变量可以实时更新,内存变量只有在第一次断点看到的数据是实际的,此后不再更新。
只是看不到,内部运行当然还是有正常更新,只是看不到而已。
知道怎么处理的说下。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式