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,
我的版本是3.62的,以前用过4.0的,结果编译出来的文件太大,放不进去?,结果就不用了,
弱弱的问一下,swj模式怎么设置?是不是硬件也不一样?网上查了点资料,似乎不能用原有的j-link的调试硬件吧?
额~~~刚才发现了我的j-link不支持swj模式。。。。。。。。郁闷啊,只能用printf了 展开
展开全部
JLINK,这个问题我没遇到,但是用STM32的SWJ模式好些,省IO口,还速度快。watch窗口里的变量即便是在片子运行期间都会跟着变化,不是实时的,有滞后,但好过JTAG模式那样停止后才更新。
我是观察16次定时器捕捉的值,存到RAM的自定义数组里。
还有一点,注意MDK的版本,最新的4.0还有问题,用3.8的很不错。3.5以后的才开始支持SWJ模式,最早几个支持STM32的版本在仿真器的驱动上是有BUG的。
ST LINK是单位的,我用过一次就甩了,上面的捕捉,只能看到数组的前8个值,后8个压根不变。
我是观察16次定时器捕捉的值,存到RAM的自定义数组里。
还有一点,注意MDK的版本,最新的4.0还有问题,用3.8的很不错。3.5以后的才开始支持SWJ模式,最早几个支持STM32的版本在仿真器的驱动上是有BUG的。
ST LINK是单位的,我用过一次就甩了,上面的捕捉,只能看到数组的前8个值,后8个压根不变。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询