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 */
}
* 电子科技大学嵌入式软件工程中心 版权所有 *
* *
* 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的值打印出来了。。。。。
- usage打印出来为什么是1 呢呢呢???
- 打印不出来为什么呀JSP
- 打印预览中是虚线,打印出来是实线。
- 超市通POS软件:打印商品条码,譬如选择的条码是111,打印出来的是222。为什么会这样?
- unsigned int64 打印出来是错误的
- 为什么在tpshop中用getlastsql 打印不出来sql语句,
- 为什么出现 Usage: javac ?
- xib托线出来的为什么是weak而不是strong
- linux 程序中打印Usage
- 字符串用==比较明明打印出来是一样的确是false
- 为什么这段代码打印出来的不是数字,而是地址,链表插入的?
- 弄清楚为什么字符串数组可以一起打印出来而整型数组还得用for循环
- 惠普打印机打印不出来
- 把别人比较好的代码打印出来仔细研究是一种比较好的学习方法
- 2440 2.6.27启动后主频405Mhz却打印出来是571Mhz
- [VB.NET]Oracle.DataAccess 连Oracle怎么老出错,try catch 打印出来的错误信息是
- 如何解决php页面读取mysql数据库中文后打印出来是问号问题
- 2014.07.02 JFinal 为什么数据在显示时是一行一行加载出来的
- 如何解决Install ncurses(ncurses-devel) and try again
- PostgreSQL表空间、模式、表、用户/角色之间的关系
- 死灰复燃的ThinkPad SL400 同机型与同问题可参考!也可帮忙排错!
- 2012/1/27 《C++ Primer Plus》第十二章:类和动态内存分配 学习笔记
- Set Access Control to File/Folder (ACL)
- usage打印出来为什么是1 呢呢呢???
- Sql收缩日志
- vi 命令傻瓜讲解
- 从Outlook删除Item时必须从后往前删
- 指针与二维数组的关系
- 一位程序员工作10年总结的13个忠告
- 想你想你
- 2011年养成的一个工作习惯
- 一个女程序员的故事