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

来源:互联网 发布:php培训那个好 编辑:程序博客网 时间:2024/06/03 01:52
/****************************************************************************************************
 *                      电子科技大学嵌入式软件工程中心 版权所有 *
 * *
 *                  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_SIZE512       // Size of each task's stacks (# of WORDs)
#define N_TASKS2         // Number of identical tasks
#define TASK_START_ID0 // Application tasks IDs
#define TASK_START_PRIO10 // Application tasks priorities
#define TASK_1_PRIO12
#define TASK_2_PRIO13


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的值打印出来了。。。。。


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 母亲只好认命抬起右腿 晚上故意到儿子房间睡 小说母亲的短裤衩 抱着母亲的腰疯狂地耸小说 姑妈穿裙子坐在我的腿的故事上 儿子18妈 妈38片国中 顶开高贵母亲的两辨 第章母亲抬腰迎合 母亲开始抗拒慢慢变迎合我口诉 母亲开始抗拒慢慢迎合我 第章顶开高贵母亲两瓣 母亲从抗拒慢慢变的迎合我 母亲疯狂迎合我txt小说下载 来吧儿子妈要你 影视片 儿子进来今晚妈让你做个够电影 儿子今晚妈让你做人个够知音网 离婚后和儿子睡觉 儿子让妈给你留个种吧 儿子妈要你的大吉吧 没开灯把小偷当老公 女儿怀孕我给姑爷解决问题 有给儿子口的吗 儿子你的真大 儿子想怎么弄就怎么弄吧 坏儿子还能在深点吗 睡着儿子顶了进来 儿子别急妈是你的小说 儿子今晚妈让你做人个够的视频 母亲和我做完跟父亲做在线阅读 高粱地里野坑头 明明有老公却想跟儿子 玉米地理日刘审一 玉米地理日刘审全集电影 玉米理日刘审 玉米地理日刘审全集 玉米地和娘亲的故事风雨 在玉米地插娘亲第1章 满仓与娘亲怀孕全文阅读 你不要命了你爸还没睡着 玉米地和娘亲故事会文 娘的身子能满足你吗