usage打印出来为什么是1 呢呢呢???

/****************************************************************************************************
 *                      电子科技大学嵌入式软件工程中心 版权所有 *
 * *
 *                  Copyright (C) 2006 UESTC ESEC *
 ****************************************************************************************************/


/*
 * $Log:应用程序启动主文件 文件名 ,v$
 * 
 * Revision 0.1  日期 时间 系统自动创建  
 * 创建本文件
 */


/**
 * @file ucos_TaksManager.c
 * @brief
 * <li>
 * 功能: uC/OS任务管理演示
 * </li>
 *  <li>
 * 设计思想:这个程序演示基本的任务管理。程序启动具有两个不同优先级的任务,完成任务的挂起和被唤醒的系列动作。
 *  </li>
 *  <p>
 *   注:本程序只具备演示功能,不能保证适用于您的真实应用。如需使用,请根据您的实际需要修改本程序。
 *  </p>
 * @author 赵庆明
 * @date 2008-4-11
 * <p>
 * 部门:电子科技大学嵌入式软件工程中心
 * </p>
 */


/******************************************* 引用部分 ************************************************/
#include "includes.h"


/******************************************* 定义部分 ************************************************/
#define TASK_STK_SIZE 512       // Size of each task's stacks (# of WORDs)
#define N_TASKS 2         // Number of identical tasks
#define TASK_START_ID 0 // Application tasks IDs
#define TASK_START_PRIO 10 // Application tasks priorities
#define TASK_1_PRIO 12
#define TASK_2_PRIO 13


OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; // Tasks stacks
OS_STK TaskStartStk[TASK_STK_SIZE]; // TaskStart  task stack
INT8U TaskData[N_TASKS]; // Parameters to pass to each task


INT32U count=0; // Initialize count


/******************************************* 声明部分 ************************************************/
static void Task0(void *pdata); // Function prototypes of tasks
static void Task1(void *pdata);
static void TaskStart(void *pdata); // Function prototypes of Startup task
static void TaskStartCreateTasks(void); // Function prototypes of creat task


/******************************************* 实现部分 ************************************************/
/**
 * @brief
 * main()函数,应用程序入口函数。
 * @param[in] 无。
 * @return 操作成功返回0;\n
 *         出现问题返回1;
 */
int  main (void)
{
INT8U err=err;

UCOS_CPU_INIT(); // Install uC/OS-II's running hardware environment
OSInit(); // Initialize uC/OS-II

OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 4);

OSStart(); // Start multitasking
return 0;
}


/**
 * @brief
 * TaskStart()函数,启动任务。
 * @param[in] void *。
 * @return 无\n
 */
void TaskStart(void *pdata)
{
#if OS_CRITICAL_METHOD == 3 // Allocate storage for CPU status register
OS_CPU_SR  cpu_sr;
cpu_sr = cpu_sr; // Avoid warnings
#endif


pdata = pdata; // Prevent compiler warning

UCOS_TIMER_START(); // Timer interrupter start


TaskStartCreateTasks(); // Create all the application tasks
OSTaskSuspend(OS_PRIO_SELF); // Suspend the TaskStart
}


/**
 * @brief
 * TaskStartCreateTasks()函数,创建多任务。
 * @param[in] void *。
 * @return 无
 */
void  TaskStartCreateTasks (void)
{
INT8U  i;
OSStatInit();
for (i = 0; i < N_TASKS; i++) // Create tasks
{
TaskData[i] =  i; // Each task will display its own information
}

OSTaskCreate(Task0, (void *)&TaskData[0], &TaskStk[0][TASK_STK_SIZE - 1], 5);
OSTaskCreate(Task1, (void *)&TaskData[1], &TaskStk[1][TASK_STK_SIZE - 1], 6);
}


/**
 * @brief
 * Task0()函数,执行一个任务。
 * @param[in] void *。
 * @return 无
 */
void  Task0 (void *pdata)
{
INT8U i;
INT8U err;
  i=*(int *)pdata;
for (;;)
{
printf("Application tasks switched %d times!\n\r",++count);
printf("TASK_0 IS RUNNING..............................................................\n\r");
printf("task_1 is suspended!\n\r");
printf("*******************************************************************************\n\r");
err=OSTaskSuspend(5);   // suspend itself
}
}


/**
 * @brief
 * Task1()函数,执行一个任务。
 * @param[in] void *。
 * @return 无
 */
void  Task1 (void *pdata)
{
INT8U i;
INT8U err;
  i=*(int *)pdata;
for (;;)
{
OSTimeDly(150);
//printf("Application tasks switched %d times!\n\r",++count);
printf("task_0 is suspended!\n\r");
printf("TASK_1 IS RUNNING..............................................................\n\r");
printf("*******************************************************************************\n\r");
OSTimeDly(150);
err=OSTaskResume(5);                                                       /* resume task0           */
}

}



//os_core中进行了修改,将usage的值打印出来了。。。。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值