如何将ucosii移植到vs2008中运行

2024-06-06 06:08
文章标签 运行 移植 vs2008 ucosii

本文主要是介绍如何将ucosii移植到vs2008中运行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文介绍关于如何将ucosii移植到vs2008中运行,其中参考了CSDN下载频道xiahouzuoxin的一篇文章,在此对这哥们表示感谢。

step1:下载uCOS-II源码,只是一些源代码和文档,放在自己硬盘上即可,无需安装(原以为要安装什么操作系统呢尴尬)。

step2:新建vs工程

 

完了之后的vs界面如下:

 

step3:将step1下载的文件中的源文件uCOS-II整个拷贝到step2新建的工程文件目录F:\ucosii\Project\FirstTest

step4:将...uCOS-II\Other_Headers路径下的两个.h文件拷贝到目录F:\ucosii\Project\FirstTest\FirstTest下

step5:在工程中添加源文件:

1.  右击工程文件名,新建3个文件夹,

              

2.  往Source和Port文件夹中添加源文件,注意最好是添加路径F:\ucosii\Project\FirstTest\uCOS-II\Source下的Source和Ports\WIN32这两个文件夹下的源文件到相应工程文件中,完了如下:

          

注意只要将Source中的那两个源文件添加进来即可,不可其全部添加,否则编译会有错误。

 

step6:添加F:\ucosii\Project\FirstTest\FirstTest目录下的两个.h文件(step4拷贝的那两个)到Header Files工程文件夹中

step7:修改工程属性,右击工程名,选择Properties

          
             

 

step8:编译,结果如下

         

这是由于OSDebugInit没有定义导致,在os_trace.c中添加如下的代码即可。

 

/* 移植时所需定义 */
void OSDebugInit()
{
}

再编译就OK了。

 

 

step9:创建3个任务来感受一下吧

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.  编写FirstTest.cpp中的代码

 

 

// FirstTest.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include "SystemConfig.h"OS_STK	MainTask_Stk[MainTask_StkSize];
OS_STK	App1Task_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);}
}void App1Task(void *p_arg)
{p_arg = p_arg;while(1){printf("Hello,I am PC!\n");OSTimeDlyHMSM(0,0,1,0);		//任务调度}
}void App2Task(void *p_arg)
{p_arg = p_arg;while(1){printf("Hello,uCOS-II!\n");OSTimeDlyHMSM(0,0,2,0);		//任务调度}
}

 

 

编译,运行,结果如下:

不断重复输出上述内容。

 

这篇关于如何将ucosii移植到vs2008中运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035294

相关文章

eclipse运行springboot项目,找不到主类

解决办法尝试了很多种,下载sts压缩包行不通。最后解决办法如图: help--->Eclipse Marketplace--->Popular--->找到Spring Tools 3---->Installed。

22.手绘Spring DI运行时序图

1.依赖注入发生的时间 当Spring loC容器完成了 Bean定义资源的定位、载入和解析注册以后,loC容器中已经管理类Bean 定义的相关数据,但是此时loC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况 发生: 、用户第一次调用getBean()方法时,loC容器触发依赖注入。 、当用户在配置文件中将<bean>元素配置了 lazy-init二false属性,即让

21.手绘Spring IOC运行时序图

1.再谈IOC与 DI IOC(lnversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创 建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让 容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们所看到的配置文件。 DI(Dependency Injection)依赖注入:就是指对象是被动接受依赖类

java中查看函数运行时间和cpu运行时间

android开发调查性能问题中有一个现象,函数的运行时间远低于cpu执行时间,因为函数运行期间线程可能包含等待操作。native层可以查看实际的cpu执行时间和函数执行时间。在java中如何实现? 借助AI得到了答案 import java.lang.management.ManagementFactory;import java.lang.management.Threa

如何实现一台机器上运行多个MySQL实例?

在一台机器上一个MySQL服务器运行多个MySQL实例有什么好处?这里我先入为主给大家介绍这样做至少存在两个好处(看完这篇文章后理解会更透彻): (1)减轻服务器链接负担 (2)为不同的用户提供不同的mysqld服务器的访问权限以方便这些用户进行自我管理。   下面我介绍具体的实现过程: 一、准备工作     台式机一台、Windows系统、MySQL服务器(我安装的版本是MySQL

Python几种建表方法运行时间的比较

建立一个表[0,1,2,3.......10n],下面几种方法都能实现,但是运行时间却截然不同哦 import time#方法一def test1(n):list=[]for i in range(n*10):list=list+[i]return list#方法二def test2(n):list=[]for i in range(n*10):list.append(i)#方法三d

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

在vscode中控制台运行python文件出现:无法将"pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 使用vscode开发python,需要安装python开发扩展: 本文已经安装,我们需要找的是python安装所在目录,本文实际路径如下: 如果在本文路径中没有此目录,请尝试在C盘中搜索 python,搜索到相关python目录后,点击Python 3.9进入目录,

关于页面中运行vbscript

2019年4月10日18:16:09  遇到了jsp中嵌套vbs怎么运行都没反应,后台也能把数据传到前台,把vbs代码单独拎出来也能正常运行,但是就是在页面中怎么都没反应,后来度娘,才有一下结论,特此记录 环境要求:IE11以下版本 <script language="VBScript"> msgbox(123) </script> 其他浏览器或者IE11以上版本的浏览器不会执行vbs

移植对话框MFC

VC版 MFC程序对话框资源移植 以下均拷贝自上面,仅用来记录 (部分有删除) 法1: Eg:将B工程调试好的对话框移植到A工程中 1.资源移植         1.1  在2017打开B工程,在工作区Resource标签页中选中Dialog文件夹下的资源文件,按Ctrl+C或点击Edit->Copy.         1.2. 关闭当前工程,注意不要关闭VC6,打开B工程(File

JVM专题三:Java代码如何运行

通过前面的第一篇文章,对JVM整体脉络有了一个大概了解。第二篇文章我们通过对高级语言低级语言不同特性的探讨引出了Java的编译过程。有了前面的铺垫,咱们今天正式进入Java到底是如何运行起来的探讨。   目前大部分公司都是使用maven作为包管理工具,当我们运行mvn compile命令后,会在我们项目下生成一个target目录,该目录会有一个个classes文件。 接下来点击main