在VS2008中移植uCOS-II
目的:我也是初学者,只为初学者建立环境,大家一起学习
参考资源:所有相关资源已经上传到CSDN下载版块http://download.csdn.net/detail/xiahouzuoxin/4389537
1、新建工程
2、拷贝uCOS-II文件夹到工程目录下;
将“..\uCOS-II\Other_Headers”下的“include.h”和“SystemConfig.h”两个头文件剪切到..\uCOS_Demo\uCOS_Demo目录下;
3、配置工程
在工程上单击右键“属性”,弹出uCOS_Demo属性页对话框。
(1)附加包含目录配置
(2)编译代码类型配置为C代码
(3)添加依赖项”WinMM.lib”
4、在工程中添加源文件
5、编译试试,出现如下Error
1>ucos_ii.obj : error LNK2019: 无法解析的外部符号_OSDebugInit,该符号在函数_OSInit 中被引用
这是由于OSDebugInit没有定义导致,因此在os_trace.c中添加如下代码
/* 移植时所需定义*/
void OSDebugInit()
{
}
6、再编译工程试试,OK
7、创建3个任务:MianTask、App1Task、App2Task
(1)“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 MainTask_Prio 5
#define App1Task_Prio 7
#define App2Task_Prio 9
/*
*********************************************************************
* TASK STACK SIZES
*********************************************************************
*/
#define MainTask_StkSize 1024
#define App1Task_StkSize 1024
#define App2Task_StkSize 1024
#define OS_TASK_TMR_PRIO 65533
#define OS_IDLE_PRIO OS_TASK_IDLE_PRIO
#define OS_STAT_PRIO OS_TASK_STAT_PRIO
/*
*********************************************************************
* TASK
*********************************************************************
*/
extern void MainTask(void *p_arg);
extern void App1Task(void *p_arg);
extern void App2Task(void *p_arg);
#endif
(2)“uCOS_Demo.cpp”代码如下
//uCOS_Demo.cpp : 定义控制台应用程序的入口点。
#include
"stdafx.h"
#include
"SystemConfig.h"
/* 定义堆栈*/
OS_STKMainTask_Stk[MainTask_StkSize];
OS_STKApp1Task_Stk[App1Task_StkSize];
OS_STK App2Task_Stk[App2Task_StkSize];
int _tmain(int argc, _TCHAR*argv[])
{
OSInit(); /* 系统初始化*/
/* 创建主任务*/
OSTaskCreate(MainTask, (void *)0,&MainTask_Stk[MainTask_StkSize-1], MainTask_Prio);
OSStart(); /* 开始任务调度*/
return 0;
}
/* 主任务*/
void MainTask(void *p_arg)
{
p_arg = p_arg;
OSStatInit(); /* 统计任务初始化*/
while(1)
{
/* 创建其他任务*/
OSTaskCreate(App1Task, (void*)0, &App1Task_Stk[App1Task_StkSize-1], App1Task_Prio);
OSTaskCreate(App2Task, (void*)0, &App2Task_Stk[App2Task_StkSize-1], App2Task_Prio);
OSTimeDlyHMSM(0,0,1,0);/*
任务调度*/
//OSTaskDel(MainTask_Prio);
/* 删除主任务*/
}
}
/* App1Task */
void App1Task(void *p_arg)
{
p_arg = p_arg;
while(1)
{
printf("Hello,I am PC!\n");
OSTimeDlyHMSM(0, 0, 1, 0);/*
任务调度*/
}
}
/* App2Task */
void App2Task(void *p_arg)
{
p_arg = p_arg;
while(1)
{
printf("Hello,uCOS-II!\n");
OSTimeDlyHMSM(0, 0, 2, 0);/*
任务调度*/
}
}
运行结果如下
【注】所有移植过程过程参考网上资源
分享到:
相关推荐
STM32平台移植uCOS-II详细说明 1. 建立工程所需的文件夹 建立文件夹uCOS-II-Port :工程根目录 建立文件夹uCOS-II-Port/App :存放用户应用程序相关 建立文件夹uCOS-II-Port/Bsp :存放开发板初始化驱动...
在STVD环境下移植ucos-ii到STM8系列单片机
使用VS2015建立的uCOS-II项目,相关博文:http://blog.csdn.net/hxiaohai/article/details/50396417
内部包含2个压缩包 一个为已经移植好的STM32F103_uCOS-II的Demo,还有一个为STM32F103裸机Demo、uCOS-II源码、STM32F107的uCOS-II官方Demo
uCOS-II uCOS-II中文手册 uCOS-II移植 嵌入式系统
内容摘要:本文详细系统地介绍了uC/OS-II在51单片机上的移植、重入实现方法、硬件仿真、固化、人机界面等关键内容。 关键词:嵌入式实时多任务操作系统、uC/OS-II、C51 引言:随着各种应用电子系统的复杂化和系统...
文件为移植好的stm32 ucos-ii的keil4工程文件,移植日期2012年7月20日,各种移植源码均为最新版
1.了解uCOS-II内核的主要结构。 2.掌握将uCOS-II内核移植到ARM920T处理器上的基本方法。 3. 将uCOS-II内核移植到ARM920T微处理器上。 4.编写两个简单任务,在超级终端上观察两个任务的切换。
移植uCOS-II到STM32F103C8T6上
uCOS-II在MSP430的移植功能详细说明,介绍各个部分代码是如何修改的,很有帮助。
uCOS-II 2.52在51上的移植程序(大模式),很实用的程序。
STC移植uCOS-II 使用stm12c系列单片机 1kRAM即可
MPC5633A成功移植UCOS-II总结
从零开始移植ucos-II_最有用 从零开始移植ucos-II_最有用
压缩包里分两部分即源码和例程,源码部分包含uCOS-II和uCOS-III的源码(不含port等文件夹,是移植时不需修改的源文件,版本:ucos-ii的v2.86和目前最新的v2.91、ucos-iii的v3.03),例程部分包含完整目录文件夹,有...
uCOS-II在51上的移植源码V1.1
UCOS-II教程 一本完整的关于UCOS-II教程
stm32上移植ucos-ii 在stm32103上的
uCOS-II在51单片机上的移植 uCOS-II在51单片机上的移植 uCOS-II在51单片机上的移植
官方移植uCOS-II,成功运行stm32f10xzet6,如有错误,请留言给我。