![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
问两个简单ucos问题?加100分,谢谢! 20
系统初始化中1:OSTCBTbl[]就表示实际的任务的TCB吗2:ptcb1=&OSTCBTbl[0];//我认为是ptcb1指向第一个TCB的OSTCBStkPtr指针...
系统初始化中
1:OSTCBTbl[]就表示实际的任务的TCB吗
2: ptcb1 = &OSTCBTbl[0]; //我认为是ptcb1指向第一个TCB的OSTCBStkPtr指针
ptcb2 = &OSTCBTbl[1];/我认为是ptcb2指向第二个TCB的OSTCBStkPtr指针
上面的描述对吗?为什么?为什么只用两个指针来指向
for (i = 0; i < (OS_MAX_TASKS + OS_N_SYS_TASKS - 1); i++) {
ptcb1->OSTCBNext = ptcb2;//ptcb1->OSTCBNext 指向ptcb2指向的第二个TCB的OSTCBStkPtr指针,对吗?
ptcb1++; //这句话有什么用?
ptcb2++; //这句话有什么用?
}
ptcb1->OSTCBNext = (OS_TCB *)0;
OSTCBFreeList = &OSTCBTbl[0];//OSTCBFreeList指向第一个TCB的OSTCBStkPtr指针,这样说法对吗?
问题2中的几句话有什么用,为何要这样初始化?谢谢了 展开
1:OSTCBTbl[]就表示实际的任务的TCB吗
2: ptcb1 = &OSTCBTbl[0]; //我认为是ptcb1指向第一个TCB的OSTCBStkPtr指针
ptcb2 = &OSTCBTbl[1];/我认为是ptcb2指向第二个TCB的OSTCBStkPtr指针
上面的描述对吗?为什么?为什么只用两个指针来指向
for (i = 0; i < (OS_MAX_TASKS + OS_N_SYS_TASKS - 1); i++) {
ptcb1->OSTCBNext = ptcb2;//ptcb1->OSTCBNext 指向ptcb2指向的第二个TCB的OSTCBStkPtr指针,对吗?
ptcb1++; //这句话有什么用?
ptcb2++; //这句话有什么用?
}
ptcb1->OSTCBNext = (OS_TCB *)0;
OSTCBFreeList = &OSTCBTbl[0];//OSTCBFreeList指向第一个TCB的OSTCBStkPtr指针,这样说法对吗?
问题2中的几句话有什么用,为何要这样初始化?谢谢了 展开
1个回答
展开全部
1.这个不是ucos源码中的变量,应该是移植时做的,你在你的移植代码里找找,特别是那几个汇编文件。
3,用信号量,每次一个任务取得该信号量,实现方法见我写的
4.当然是OSTCB结构体中第一个变量(OS_STK *OSTCBStkPtr ),当前任务的堆栈指针,用于任务切换
3,用信号量,每次一个任务取得该信号量,实现方法见我写的
4.当然是OSTCB结构体中第一个变量(OS_STK *OSTCBStkPtr ),当前任务的堆栈指针,用于任务切换
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询