原创 UC/OS-II 学习笔记5 在PC上运行UC/OS

2014-6-30 01:05 1400 24 29 分类: MCU/ 嵌入式 文集: OS

 

今天在PC机上第一次运行了UC/OS-II 程序,不是在STM32平台上,成功生成应用程序,显示出了“snail”这个字符串。期间搞明白了很多函数,包括从未用过的PC自带的功能函数。 哈哈,原来WINDOWS下面还有不少可以直接调用的函数。真心不错。搞完单任务,接下来弄双任务。

  

 

/********************************************************************************************

**file name  : test1.c

**description: 每秒在显示器上打印字母 SNAIL

**author     : snail

**vision     : 1.0

*********************************************************************************************/

 

#include "includes.h"

#define TASK_STK_SIZE 512   /*定义堆栈长度*/

OS_STK MytaskSTK[TASK_STK_SIZE];  /*定义任务堆栈区*/

INT16S key ;            /*用于退出ucos*/

INT8U x=0,y=0;              /*字符显示的位置*/

void TaskOne(void *data);

void main(void)

{

    char* s_m="snail";

//初始化uc/os

OSInit();

//保存DOS环境

PC_DOSSaveReturn();

//安装uc/os 任务切换中断向量

PC_VectSet(uCOS,OSCtxSw);

OSTaskCreate(

         TaskOne,                          //创建的任务MyTask

s_m,                          //给任务传递参数

&MytaskSTK[TASK_STK_SIZE-1], //设置任务堆栈栈顶指针

0                //MyTask 优先级别为0

);

//启动多任务管理

OSStart();

 

}

 

/******************************************************************************************

**function name: MyTask

**description  : 打印字母SNAIL

**input        : *data

**output       : none

**return       : none

*****************************************************************************************/

void TaskOne(void *pdata)

{  

    INT8U i=0;

#if OS_CRITICAL_METHOD==3

    OS_CPU_SR cpu_sr;

#endif

    pdata=pdata; //没有实际意义,仅是为了避免有些编译器会警告pdata这参数没有使用

OS_ENTER_CRITICAL();//一个宏,用来禁止处理器响应中断请求,即关中断

//给ucos安装时钟中断

PC_VectSet(0x08,OSTickISR);

//设置时钟频率,OS_TICKS_PER_SEC=200

PC_SetTickRate(OS_TICKS_PER_SEC);

//一个宏,允许处理器响应中断请求,即开中断

    OS_EXIT_CRITICAL();

//测试所使用处理器的速度

OSStatInit();

for(;;)

{

for(i=0;i<5;i++)        //无限循环

{

    if(x>10)

{

    x=0;

y+=2;

}

//调用PC中的函数来显示字符

PC_DispChar(

  x,y,

  *((char * )pdata+i),

  DISP_FGND_RED+DISP_FGND_WHITE

);

x+=1;

 

 OSTimeDlyHMSM(0,0,1,0);

}

y+=2;

//如果按下了ESC键,那么退出UC/OS-II

if(PC_GetKey(&key)==TRUE)

{

    if(key==0x1b)

{

    //返回dos

PC_DOSReturn();

}

}

}

}

 

文章评论5条评论)

登录后参与讨论

用户1626813 2013-1-24 12:29

多分析才会进步

345002072_353389109 2013-1-23 22:18

一起学习

用户1629625 2013-1-23 16:08

嗯嗯,学习了。谢谢

345002072_353389109 2013-1-23 08:41

目前在做项目,尽量抽时间连载写出来,谢谢支持

用户377235 2013-1-23 08:17

期待博主继续连载

用户1667988 2013-1-4 10:48

2013,安卓元年,你准备好 了吗??

用户1667988 2012-11-1 11:12

FT311D用于医疗保健:医疗设备———检测出数据(心跳、血压)——通过USB——连接到Android手机——后端数据分析。。。

用户1667988 2012-10-17 16:55

FT311D优点:市场第一颗专业安卓USB控制主控各种借口支持UART、GPIO、SPI、I2C、PWM 从工业级到消费类,一颗到位两种封装:内置或外置公司开发简单: 1.无须固件 2.专属API,开发更容易 3.会写JAVA,就可以开发应用应用家:1.会装APK就可以用 2.不需要再装驱动更多咨询:eddie@passiontech.net QQ:360693687 电话:13982036731 

相关推荐阅读
啊左不是蜗牛 2015-01-28 09:21
【博客大赛】那样的人生,看不穿
         昨晚11点跟PM姐姐聊天,问她今晚要不要加班,她回:刚刚开发哥哥陪她出来打的。。。我以为我十点半从实验室回去已经够晚了。。我脸红了。        我问她为什么不早点回去...
啊左不是蜗牛 2015-01-13 19:41
【智能手机】三个观点说说国产手机未来
在此篇文章之前还有一个各大手机品牌的总结,请点击查看。 智能手机之论英雄出处      谈手机之前换个角度,类比一下PC领域。 PC领域毛利最高的时候,国产PC一直混在低端。随着时代发...
啊左不是蜗牛 2015-01-09 17:56
【智能手机】论英雄出处
我认为,如果你不知道对手的底细,那么你就很难战胜对手。知己知彼,百战百胜。所以,我简单地说说我对这几家手机品牌的看法。个人之见,欢迎讨论。   苹果: 1976年成立,在乔布斯这样的天...
啊左不是蜗牛 2014-11-19 13:48
【博客大赛】蜗牛求职记之华为篇
1、前言说明          蜗牛是电赛出身,本科做硬件嵌入式,画板子和写C程序,然后研究生阶段是转战android,但是由于项目涉及到硬件,导师项目众多,小伙伴少,于是我也负责部分st...
啊左不是蜗牛 2014-08-16 14:38
以另一种位图的思想来解决一道OJ题目
前言: 以前所接触到的位图的思想都是以1位的形式去存储某个数出现的次数是1次还是0次。常见的例子不外乎在《编程珠玑》上的开篇例子里,1千万个数的排序统计,用1.25M的内存空间就可以达到遍历一...
啊左不是蜗牛 2014-08-15 11:57
Android 笔记之 listview 性能优化
列表显示需要三个元素, (1)listview 视图,用来显示列表的View ; (2)适配器,用来把数据映射到listView上面的 (3)数据,具体将被映射的数据,包括字符串,图片...
我要评论
5
24
关闭 站长推荐上一条 /2 下一条