keil调试专题篇
创始人
2025-06-01 21:31:15
0

调试的前提是需要连接调试器比如STLINK。

然后点击菜单或者快捷图标均可进入调试模式。

如果前面工程配置里选择了复位调试,则进入调试后,会停在main函数头部

示意:

 

相关指令

上面一行红框内,从左到右分别是:打断点(断点最多只能打7个)、失能单个断点、失能所有断点、取消所有断点。

下面一行红框内,从左到右:

复位(Reset):对程序进行复位操作,根据烧录器不同的复位方式配置会触发不同的复位类型。

全速运行(Run):使当前程序开始正常全速运行,直到程序遇到断点时停止。

停止运行(Stop):当程序全速运行时,点击此按键可停止程序运行。点击停止时程序执行到哪了就停在哪。

单步调试(Step)F11:根据当前调试的窗口的语言,执行单条语句。如果遇到函数,则会进入函数内部。如果是在反汇编窗口中,则只执行一条汇编指令。

单步跳过调试(Step Over)F10:如果是在C语言窗口中,则是按单条语句执行,与单步调试不同的是,遇到函数不会进入函数内部,而是直接全速运行函数,并跳到下一条语句。

单步返回调试(Step Out):如果是在C语言窗口中,则是直接全速运行当前函数后面所有内容,直到函数返回上一级。

全速运行到光标所在行(Run to Cursor Line)

变量查看窗口——Watch1,Watch2

也可通过view菜单内对应子菜单选择。

Watch窗口如下:

 

通过选中一个变量,右键添加入对应的Watch窗口,可以追踪查看当前变量的变化状态。

注意,只有全局变量可以全程监视,临时变量只有在进入当前函数中才可监视到其数据,用static关键词修饰的变量无法监视。

如果当前变量没有实时更新,则需要点击"View->Periodic Window Update"将其勾选上。

在"Watch"窗口中,可以查看当前变量名称、值、数据类型,如果当前变量类型为结构体,则可以以对应的结构形式进行展开查看。

 

变量值默认是以十六进制来显示的,可以在变量名上右键,取消十六进制显示,则会以十进制进行显示。

内存查看窗口——Memory

通过"View->Memory Windows->Memory1/2/3/4"打开Memory窗口,也可以通过工具栏打开

 

在Memory窗口中输入想要查看内存的起始地址,另外右上角的锁可以把当前界面锁定下来,也就不能上下滚动了。

 

另外如果查看的是Ram的地址,那其中的数据也可以直接通过此窗口进行修改。

同样,右键可以选择以什么数据形式来显示。 

系统视窗——System Viewer Windows

可以在"Peripherals"选项栏中选择"System Viewer"系统视窗中对应的外设,选择"Core Peripherals"则是内核调试窗口。另外系统视窗也可以通过工具栏打开。

 

这个根据不同芯片会有不同的展示。

这个窗口用于查看当前单片机外设及内核寄存器的值,在调试外设底层时经常会使用到。

以GPIOA为例:

在这个窗口中可以直接修改外设寄存器的值,当然部分只读寄存器是无法修改的,有些则是需要在特定条件下才可以设置生效,具体就得看对应的芯片手册里寄存器的说明了。

调度关系窗口——Call Stack Window

可以在"View->Call Stack Window"打开此窗口,也可以在工具栏中打开。

 

这个窗口用于查看当前程序调度关系,当出现有进入硬件错误异常调试时可以快速定位到是哪里触发的异常。这个窗口的调度关系是从当前程序堆栈里获取的数据并将其图形化,所以如果当前堆栈数据被破坏,则此窗口也将无法查看调度关系。
该窗口里显示的调度关系是从下至上调用的,最上面的表示当前程序所处的函数。展开对应的函数,可以查看各层调用函数跳转之前保存的一些临时变量等信息。

寄存器窗口——Register Window

该窗口可在"View->Registers Window"处打开,也可以在工具栏打开。

 

这个窗口用于查看当前内核的相关寄存器,如汇编里常说的15个通用寄存器。当然调试中比较常用的是其中的SP、LR、PC三个寄存器。SP为当前栈的地址位置,PC为当前程序地址,LR为函数跳转前的地址,即当前函数返回的地址。

另外"Banked"中的MSP为当前程序系统主栈,PSP则为操作系统的任务栈,这两者的区别是,如果使用了操作系统,则当前任务中的所有调度关系使用的是任务栈,而类似中断这种内核的操作使用的是主栈;如果未使用操作系统,则只会使用主栈,不会使用任务栈。

 

通过"Internal"可以查看当前是处在中断还是任务中,Mode为"Thread"表示是在线程/任务中,或者是函数中(非中断),为"Handle"表示是在中断中;Privilege为"Privelege"表示当前处于特权模式。Stack为"PSP"表示当前使用的是任务栈,为"MSP"则表示使用的是主栈。

 

反汇编调试窗口——Disassembly Window

该窗口在"View->Disassembly Window"中可以打开,也可以在工具栏中打开。

 

该窗口是通过bin文件(即二进制文件)反汇编出来的汇编文件(汇编跟二进制原本就是一一对应的关系)。当设置了优化等级后,部分C语言的调试会变得困难(汇编跟C语言不是一一对应,而程序运行又是完全根据汇编来走的),此时可能需要使用汇编窗口进行调试。

函数地址表——Symbols Window

该窗口在"View->Symbols Window"中打开,也可能在工具栏打开。

可以查看当前所有程序的函数调用关系及其所在地址。 

其他窗口

命令窗口——Command Window

该窗口在"View->Command Window"中可以打开,也可能在工具栏中打开。

这个窗口可用来输入一些控制命令。  

串口调试窗口——Serial Windows

该窗口在"View->Serial Windows"中打开,也可以在工具栏打开。

暂略。

逻辑分析窗口——Analysis Windows

这个貌似只能在软件模拟仿真中使用。 

跟踪窗口——Trace Windows

 

暂略。

更多总结

直接参考:

【工具使用】Keil5软件使用-进阶调试篇_keil5调试_知识噬元兽的博客-CSDN博客

注意事项

待补充。

相关内容

热门资讯

科创板人工智能ETF(5889... 6月3日,三大指数集体低开,科技方向震荡走高。截至发稿,相关ETF方面,科创板人工智能ETF(588...
烧掉一半净利润,拼多多想培育怎... 当外部不确定性日益增加,为中小商家提供“避风港”和“助推器”,助力其度过周期波动,这种“授人以渔”的...
“苏超”霸屏,中国可以靠江苏搞... 01 经济独立,城市人格独立最近一段时间,无相君的朋友圈和微信群都被“苏超”霸屏了。几乎每天一个热搜...
【开盘】A股三大股指集体低开,... 6月3日,A股三大股指集体低开。其中,沪指跌0.22%报3340.07点,深成指跌0.34%报100...
刚刚!深交所宣布:调整→ 深交... 6月3日,深交所发布公告,根据指数编制规则,深圳证券交易所和深圳证券信息有限公司决定于2025年6月...
两宗券商“老鼠仓”曝光→ 股市... 地方证监局最新披露的罚单,让两起券商从业人员“老鼠仓”案件浮出水面,2家龙头券商中信证券、华泰证券牵...
大热IP经济难“包治百病”,明... 近日,IP经济、黄金概念股表现活跃,明牌珠宝股价涨停。5月29日,明牌珠宝发布公告称,公司股票连续两...
银河证券:港股市场情绪仍需观察... 银河证券发布港股策略研报称,港股市场情绪仍需观察关税政策走向。近期国际贸易局势反复无常,前景仍然不明...
银河证券:短期内A股市场或仍维... 银河证券发布A股策略研报称,近期板块轮动速度加快,行情震荡格局尚未改变,市场成交额未出现明显放量,仍...
哪吒汽车,注定掉队 哪吒汽车,... 定焦One(dingjiaoone)原创特约作者 | 胡锟编辑 | 魏佳从登顶新势力销量冠军,到几乎...
牛市早报|端午假期预计全社会跨... 【市场数据】截至5月30日收盘,上证综指跌0.47%,报3347.49点;科创50指数跌0.94%,...
黄酒真的雄起了? 黄酒真的雄起... 斑马消费 杨伟2025年A股酒水板块“冰火两重天”,白酒承压,啤酒失速,黄酒却异军突起!Wind 5...
一台不到600元,魅族新机大火... 对于整个手机市场来说,华米OV等国产手机的市场大战已经日渐稳定,各家手机企业都处于平淡化的状态,就在...
港股稳定币概念暴涨!刘煜辉:人... 6月2日,在港股市场上,数字货币概念股集体拉升,连连数字盘中一度上涨80%,移卡一度涨近50%,欧科...
又现百万罚单 消金合作机构管理... 北京商报讯(记者 岳品瑜 董晗萱)消费金融机构的一张新罚单,又指向合作业务管理。6月2日,北京商报记...
国际金价重返高位 炒金是否卷土... 6月2日,国际金价重返3300美元/盎司高位,截至北京商报记者发稿,金价涨幅超过2%,盘中突破336...
股价翻倍基金霸屏 创新药否极泰... 证券时报记者 裴利瑞今年以来,中国创新药行业正经历了一场前所未有的价值重估,而且在近期呈现加速趋势。...
5000亿人民币新型融资政策工... 内容提要:中国计划推出5000亿元新型政策性金融工具,重点投向新基建与消费领域,以对冲出口压力。但企...
美国5月ISM制造业PMI连续... 6月2日周一,ISM公布的数据显示,美国5月ISM制造业活动连续三个月萎缩,在关税上调的背景下,进口...
国内油价或现年内第四涨 加满一...   中新经纬6月3日电 (万可义)国内成品油新一轮调价窗口将于6月3日24时开启。综合机构观点,国内...