操作系统
文章平均质量分 75
飘零剑客
这个作者很懒,什么都没留下…
展开
-
FreeRTOS 任务挂起位置调查
在ARM平台上使用多任务操作系统时,因为程序设计存在缺陷,容易导致进入hard fault,网上对此有很多的资料介绍。在实际的程序调试中,我们也经常遇到另外一个问题。即想要执行的任务被挂起,CPU 在idle task 里面运行,这个问题同样也会困扰我们的功能调试。以下将结合一个简单的例子来分析如何找到任务被挂起的位置。在freeRTOS 创建任务时,会创建一个任务控制块(TCB),并且该信息会通过指针进行返回。如下图所示在本示例中,该参数传入了一个NULL值,因此该函数后不能直接得到这个“原创 2021-10-31 13:26:30 · 438 阅读 · 0 评论 -
Keil 调试之堆栈溢出调查
在进行嵌入式多任务系统软件开发,可能会出现堆栈溢出的问题,并且该问题可能是随机出现,因此调查较麻烦。借助keil 的数据断点功能,可以轻松找到产生堆栈溢出的位置。在程序调试时,常规使用的断点是程序断点,本文提到的则是一种数据断点。以下将列出具体的调试方法。1、任务的堆栈溢出一般是栈底溢出,在编译完成之后。如果堆栈通过固定地址分配,则通过查询keil 生成的.map获取栈底地址;否则需要在任务创建过程中分配的堆栈时获取栈底地址,将堆栈地址变量“pxNewTCB->pxStack”添加到变量监视区原创 2020-05-17 22:29:07 · 7906 阅读 · 2 评论