HAL库常见报错:程序跑飞后使用Debug定位问题点
Posted 青梅煮久
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HAL库常见报错:程序跑飞后使用Debug定位问题点相关的知识,希望对你有一定的参考价值。
无论是HAL库工程
还是标准库工程
,在刚刚拿到别人给的工程,进行芯片替换,开发板103VE跑的好好的,103RC就跑飞了
,此时用串口打印定位不方便,因为代码都没跑到串口初始化就飞了起来了(比如时钟、IO口配置都出问题),或是打印也分析定位不了问题(比如跑到某个中断死在里面),定位过程如下:
一、初始化都不能完成的问题定位
- 程序烧录后(烧录工具我用的ST-LINK,烧完就连着),进入debug。
- 确认工程可以运行到main。
- 一步一步打断点判断程序是否可以跑到断点处。
- 定位到了,退出debug。
二、运行的中途崩溃或者跑进中断死循环
这个问题我们举个栗子,我有一块STM32F107VC板子
它定时使用CAN
发送数据(0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88)给另一块STM32F103RC板子
,而STM32F103RC板子
使用串口1
打印,并将串口1
收到的数据使用CAN
发送给STM32F107VC板子
,也顺便将串口1
收到的数据通过串口发送函数,再从串口1
发出来。(这里本来是想要串口1收到的数据发给串口2,这里方便看就让他又通过串口1发出来)
我们看一下遇到的问题的定位过程:
- 发现问题。
- 定位问题。
- 解决问题(百度一下这里是什么)。
行吧,那是我freertos
任务小了,我加大任务空间或者把任务里面创建的变量放外边去。
问题解决。
• 由 青梅煮久 写于 2021 年 06 月 01 日
以上是关于HAL库常见报错:程序跑飞后使用Debug定位问题点的主要内容,如果未能解决你的问题,请参考以下文章
HAL库常见报错:error: #20: identifier “HAL_StatusTypeDef“ is undefined
HAL库常见报错:error: #20: identifier “HAL_StatusTypeDef“ is undefined