【FreeRTOS学习笔记 】就绪任务链表
引用另一个C文件的函数时出现错误:
为此专门给port_user.c定义了一个头文件
问题解决,工程有多c文件互相调用的情况下,还是得有h文件。
另一个问题,提示:"conflicting types for "
原因是引用了还未声明的函数,注意被调用函数不要放在下面。
变量重定义:
如图,把任务栈的定义从h文件移到c文件中,问题解决
记得传递指针时,要&变量
如图,又出现调试无法跳转到main函数:
这次都没打断点,所以复位单片机后,重新烧写,进入在线调试,发现没问题。
实验现象:
观察静态创建任务中,TCB2的变化:
xTaskCreateStatic函数中:
在调试过程中,注意要跟着代码思路走,把重点放在该环节重要的变化量上。
表示堆栈栈顶的值一直在变化,比如从栈起地址(数组首地址)和栈长度算出栈顶值,又计算对齐后的字节;
以及在代表任务环境存储的pxPortInitialiseStack函数中,此时堆栈栈顶随着任务环境的入栈而改变,
直到函数返回到prvInitialiseNewTask,TCB才获取了变化后的栈顶地址;