2021-09-07 STLINK程序调试方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行过去也就是逐行执行,不进去但是执行,比如整个函数当一步执行完
执行出来是函数内部出来,虽然函数内部执行到一半,但是用了这就直接执行完函数内部其他步骤并返回出来
挂起是让正在执行的程序停下来,比如在while循环里,挂起后黄色光标在哪就是程序执行到哪
在这里插入图片描述

在这里插入图片描述
黄色-执行到哪 是即将执行该句 但并未执行
绿色-光标

在这里插入图片描述
上图是从main调用了delay,所以堆栈顺序也是这样

在这里插入图片描述
上图中是各窗口在程序上面都有

如果添加函数进watch窗口,那么value显示函数的入口地址
可以选中后拖进watch

在这里插入图片描述
上图中是右键选十六进制显示

在这里插入图片描述
优化选项最好 选level0 也就是不优化 因为如果优化等级高,比如不调用的函数编译的时候就不编译了,或者debug时有些变量值在watch窗口里不显示,显示not in scope这就是和优化有关,当然也可能是变量没用到
在这里插入图片描述

上图可以查看一些寄存器的值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上三张图中,最好也设置好后两项,然后keil窗口最大化在右下角可以显示时间。然后可以设置断点,查看执行时间

在这里插入图片描述
上图中,如果不知道数组的地址,可以将其拖入watch窗口,数组名对应的就是数组地址

在这里插入图片描述
设置好时钟和优化,可参考查看执行时间那里设置,就可以进行上述的中断执行信息查询。可以让程序一直运行,然后看触发中断的情况

在这里插入图片描述
上图中必须是全局变量,设置圈出来的两个,断点会停留在下一行代码,因为读或写要完成才会停,虽停在下一行但是下一行并未执行

在这里插入图片描述
在这里插入图片描述
上面两张图,例子中一次中断接收一个字符,完成一次完整的中断服务函数,因为设置了断点,虽然电脑还在发后面的ELLO但是CPU在第一个字母H的中断服务函数内断点停止并不能响应后面的中断,所以不可以接收完整HELLO。还有个例子就是USB握手,A传给B,B一定时间内回复A完成握手,但是调试时候B停在了断点无法完成握手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值