本帖最后由 liaihua1997 于 2020-9-21 17:42 编辑
本系统采用不可剥夺型内核,即当某个任务在执行时,必须等到当前任务执行完毕后,才交出CPU的使用权。每个任务被赋予不同的优先级,本系统中共有0~63个优先级,由8位变量MainTask和8位的数组SubTask[8]共同管理。当主任务MainTask的第0位置位,则表明SubTask[0]非零,主任务0下存在被激活的子任务,若SubTask[0] = 0x01,则表明优先级为0的任务已被激活,该任务具有最高的优先级。MainTask、SubTask[8]与优先级的关系如图所示。
当主任务MainTask的第7位置位,则表明主任务7下存在被激活的子任务,若SubTask[7] = 0x80,则表明优先级为63的任务已被激活,该任务具有最低的优先级。
优先级.png (20.29 KB, 下载次数: 47)
这里和表格表格是怎么对应起来的,没看懂啊,
const U8 ga_TaskMapTable[256] =
{
0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0
};
谁能帮我讲讲 |