
常见bug专栏
文章平均质量分 50
梁善被人欺
这个作者很懒,什么都没留下…
展开
-
KEIL调试技巧(bug调试心得)
(1)现象:初始化配置串口3函数时,程序卡死并且进入搜索发现程序卡死在B. 的原因有:访问越界;堆栈溢出(是否有浪费的堆栈空间,比如malloc空间是否释放、是否定义过多无用的变量、数组是否太长);开启中断但未定义中断服务函数。(2)加入串口3中断处理函数,发现一直卡死在串口3中断处理函数里面,即一直有中断触发并且没有处理,但查看串口初始化函数发现,我并没有初始化定义任何中断处理函数,为什么会进入中断处理函数。原创 2025-03-31 14:43:38 · 457 阅读 · 0 评论 -
JLINK下载失败的几种原因
问题:已经把调试方式改成了ST-link,但是下载时还是提示无J-LINK原因。解决办法:点击Utilities,然后将下载方式设置为ST-Link即可。原创 2024-05-18 11:49:05 · 974 阅读 · 0 评论 -
单片机烧入代码没有反应
尽管单片机有串口调试助手或者仿真器供电,但是实际上 单片机的电量还是不足。此时可以插上电源线或者让串口调试助手和仿真器一起供电等等。我们通过stlink或者jlink烧写代码,单片机的电源灯已经被点亮,但是烧入代码之后没有现象。1、没有勾选下列选项,或者自己手动复位也可以运行。原创 2024-01-09 18:15:40 · 3989 阅读 · 0 评论 -
FreeRTOS调度任务不执行的原因
上述代码中task2的优先级大于task1,导致程序中会一直运行task2,不运行task1,所以程序没有任何输出。freeRTOS调度任务的机制是:优先级高的任务先运行,同优先级的任务时间片轮转运行。运行上述代码,为什么串口调试助手不会打印hello,原因在于任务的优先级。原创 2023-12-27 15:18:28 · 3122 阅读 · 1 评论 -
printf函数不可重入问题(FreeRTOS)
问题现象:如果在最开始的代码中加入printf打印函数,函数只会打印一部分,且后面的程序不在运行,直接异常。代码调试,结果也是遇到printf函数卡死,进入HardFault_Handler中断屏蔽打印函数之后,代码正确运行,说明printf函数严重影响程序的运行。原创 2023-12-27 14:50:27 · 1312 阅读 · 0 评论 -
Undefined symbol xQueueCreateSet (referred from freertos_demo.o
freertos中的queue.h函数中声明函数前面加了宏定义,如果宏定义没有使能,那么函数也会找不到。FreeRTOSConfig.h配置文件中没有使能队列集。函数定义但未在头文件中声明。原创 2023-12-27 11:59:27 · 729 阅读 · 1 评论 -
hardfault_handler处理硬件中断错误
1.检查代码中的情况。2.检查是否有的情况,可以通过增加堆栈大小或者减少函数调用深度来解决。3.检查是否有的情况,可以通过调整中断优先级来解决。4.检查是否有外设配置不当的情况,可以通过重新配置外设来解决。5.检查是否有,例如芯片损坏等情况,可以更换芯片来解决。原创 2023-12-27 10:05:50 · 1344 阅读 · 0 评论 -
安装stm32 ST-link utility完成后找不到mfc140.dll文件怎么处理
进入网站,下载安装完成即可。原创 2023-12-22 10:32:21 · 2633 阅读 · 9 评论 -
File has been changed outside the editor, reload?
编译keil工程,一直提示:该文件在编译器之外被修改,是否重新加载。原创 2023-12-10 17:24:14 · 1146 阅读 · 1 评论