FreeRTOS任务无法调度

更新时间:2023-06-17 00:08:04 阅读: 评论:0

FreeRTOS任务⽆法调度
意外怀孕的补救措施问题:在STM32F103VET6平台上移植的FreeRTOS,⼀开始跑得好好的,添加了⼀个⼩任务,然后程序⽆法正常运⾏
一次风机调试过程:
三元猪1.断点调试,程序死在了调度上⾯,if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( UBaType_t ) 1 )
美女与野兽2017
2.分析可能是分配的堆栈空间不够,加了堆栈空间之后还是不⾏,
3.后来在⽹上查找,有⽹友说是内存不够
4.把其中⼏个任务的堆栈空间改⼩了
5.调试OK
稻草人全文
6.提出疑问,那到底⼀个任务分配多少堆栈空间呢,那么总⼤⼩不能超过多少呢,后来看到两篇⽂章
得出⼏点:组训
1启动任务中的Stack_Size和任务堆栈没关系,它是提供给普通函数⽤来存放临时变量⽤的,⽐如中断处理函数
2任务堆栈是从TOTAL_HEAP_SIZE这个值中分配来的,虽然我的任务总堆栈空间还是⼩于这个值,但是还是崩溃了,这点还需要进⼀步研究
3如果任务堆栈⽆法再缩⼩,那就把这个值增⼤
bootymusic歌词
4任务的堆栈空间是4字节的,所以⼀般不需要很⼤的空间,⼀般任务控制块需要70-80个字节,再加上临时变量就差不多了,
注意:static修饰的临时变量是放在静态存储区的,⼀般栈区就存临时变量,堆区主要存放分配的内存,静态存储区存放静态变量,全局变量,常量等⼀般编译的时候就分配好了
青山菜

本文发布于:2023-06-17 00:08:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/971454.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:堆栈   任务   变量   空间   分配   存放   静态   调试
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图