【FreeRTOS学习笔记 】就绪任务链表


引用另一个C文件的函数时出现错误:

为此专门给port_user.c定义了一个头文件
问题解决,工程有多c文件互相调用的情况下,还是得有h文件。

另一个问题,提示:"conflicting types for "

原因是引用了还未声明的函数,注意被调用函数不要放在下面。

变量重定义:

如图,把任务栈的定义从h文件移到c文件中,问题解决


记得传递指针时,要&变量

如图,又出现调试无法跳转到main函数:

这次都没打断点,所以复位单片机后,重新烧写,进入在线调试,发现没问题。

实验现象:

观察静态创建任务中,TCB2的变化:
xTaskCreateStatic函数中:

在调试过程中,注意要跟着代码思路走,把重点放在该环节重要的变化量上。
表示堆栈栈顶的值一直在变化,比如从栈起地址(数组首地址)和栈长度算出栈顶值,又计算对齐后的字节;
以及在代表任务环境存储的pxPortInitialiseStack函数中,此时堆栈栈顶随着任务环境的入栈而改变,
直到函数返回到prvInitialiseNewTask,TCB才获取了变化后的栈顶地址;