【未完成】
任务(Task)对于uC/OS-II,就像进程对应于Windows一样,是系统内核的重要组成部分。
在本例中,用OSTaskCreateExt建立任务,并使用自定义的TASK_USER_DATA对栈的使用情况进行统计,统计使用自定义的统计函数OSTaskStatHook进行,这是与书中范例2的最大不同。在OS_CFG.H文件中,需要定义#define OS_CPU_HOOKS_EN 0,否则不能使用自定义的统计函数。
#include "includes.h"
/*
*********************************************************************************************************
* CONSTANTS
*********************************************************************************************************
*/
#define TASK_START_STK_SIZE 512
#define TASK1_STK_SIZE 512
#define TASK2_STK_SIZE 256
#define TASK_START_PRIO 4
#define TASK1_PRIO 5
#define TASK2_PRIO 6
#define N_TASKS 2 /* 除TaskStart外的任务数 */
/*
*********************************************************************************************************
* 类型
*********************************************************************************************************
*/
typedef struct {
INT32U Max;
INT32U Min;
INT32U Ave;
INT32U Cur;
} TASK_USER_DATA;
/*
*********************************************************************************************************
* VARIABLES
*********************************************************************************************************
*/
OS_STK TaskStartStk[TASK_START_STK_SIZE]; /* 为不同的任务定义不同的栈 */
OS_STK Task1Stk[TASK1_STK_SIZE];
OS_STK Task2Stk[TASK2_STK_SIZE];
TASK_USER_DATA TaskUserData[N_TASKS]; /* 保存栈的使用情况 */
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
*******************************