【深入实践ucos-ii】第一个示例程序代码
来源:互联网 发布:talkingdata数据造假 编辑:程序博客网 时间:2024/06/07 01:03
本篇博客演示了ucos-ii的第一个示例程序代码,代码简单易懂,意在带领读者快速实战ucos-ii编程。
很多同学玩过单片机,单片机在裸机环境下,一般是一个main函数,里面有个大while循环,然后程序就在这个大while中循环执行。在这个代码中你将会看到,两个大while循环“同时”执行。这种运行已经不同于我们单片机下程序简单的裸跑了。
且看如下代码:
/****************************************project:ucos-ii demoauthor:arvikcsdn:http://blog.csdn.net/u012819339email:1216601195@qq.com*****************************************/#include "SystemConfig.h"/* 定义任务堆栈*/OS_STK App1Task_Stk[App1Task_StkSize];OS_STK App2Task_Stk[App2Task_StkSize];int main(void){ OSInit(); // 系统初始化 OSTaskCreate(App1Task, (void *)0, &App1Task_Stk[App1Task_StkSize-1], App1Task_Prio);//创建其他任务App1Task OSTaskCreate(App2Task, (void *)0, &App2Task_Stk[App2Task_StkSize-1], App2Task_Prio);//创建其他任务App2Task OSStart(); // 启动ucos-ii return 0;}/* App1Task */void App1Task(void *p_arg){ p_arg = p_arg; while(1) { printf("this is App1task!\n"); OSTimeDlyHMSM(0, 0, 3, 0); /* 任务调度*/ }}/* App2Task */void App2Task(void *p_arg){ p_arg = p_arg; while(1) { printf("this is App2task!\n"); OSTimeDlyHMSM(0, 0, 2, 0); }}
SystemConfig.h内容如下
#ifndef SYSTEM_CONFIG_H#define SYSTEM_CONFIG_H#define _CRT_SECURE_NO_WARNINGS #include <stdio.h>#include <assert.h>#include <includes.h> /****** TASK PRIORITIES ******/#define App1Task_Prio 14 //App1Task的优先级#define App2Task_Prio 16 ////App2Task的优先级#define OS_TASK_TMR_PRIO 5 /****** TASK STACK SIZES ******/#define App1Task_StkSize 320#define App2Task_StkSize 320extern void App1Task(void *p_arg);extern void App2Task(void *p_arg);#endif
我们会发现,“this is App1task!”会按照2秒每次的频率循环打印,“this is App2task!”会按照3秒每次的频率循环打印。这样我们“同时”执行了两个任务。
至此,ucos-ii的第一个示例程序已经跑起来了。
源代码下载地址:
CSDN:http://download.csdn.net/detail/u012819339/9428838
github:https://github.com/arviklinux/ucos-ii
1 0
- 【深入实践ucos-ii】第一个示例程序代码
- 【深入实践ucos-ii】开篇
- 【深入实践ucos-ii】上下文切换机理
- 【深入实践ucos-ii】任务属性
- 【深入实践ucos-ii】任务管理函数
- ucos II 创建第一个任务之一
- ucos II 创建第一个任务之一
- ucos II 创建第一个任务之二
- ucos II 创建第一个任务之二
- 第一个javascript程序代码
- uCOS-II任务建立示例
- 第一个C程序代码分析
- 分析第一个Qt程序代码
- 看uCOS-II,第一个问题:不知道链表的意思
- ucos-ii示例1:新建任务
- ucos-ii示例2:信号量测试
- ucos-ii示例3:互斥型信号量测试
- ucos-ii示例4:邮箱测试
- {Unity} 停止播放PlayClipAtPoint播放产生的OneShotAudio音效的方法
- iOS -- childViewController 的问题
- hdu2544——最短路(最短路径模板)
- POJ3461 字符串双HASH
- Android ListView setOnItemClickListener点击无效原因分析
- 【深入实践ucos-ii】第一个示例程序代码
- js颜色拾色器
- 动归——括号匹配
- zoj3777Problem Arrangement(状态dp或者折半搜素)
- Hadoop: NameNode is in safe mode.
- linux 2.6.34.7 内核kernel目录下的文件
- 物体直线运动
- RtlCompareUnicodeString routine
- 一次谷歌面试趣事