社区导航

 

搜索
查看: 2918|回复: 2

[求助] 初学ucos,请大神指教~~~

[复制链接]

123

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-7-3 16:49 | 显示全部楼层 |阅读模式
小弟初学ucos,如下这段程序是任哲《嵌入式操作系统ucos原理及应用》当中的例子,是在BC3.1中运行的
小弟想把它放在VC6.0中运行,大神能帮我看下有哪些地方是需要改动的吗?
#include "includes.h"

#define TASK_STK_SIZE 512        /*定义堆栈的长度*/
OS_STK  MyTaskStk[TASK_STK_SIZE];/*定义一个数组来作为任务堆栈*/
                                 /*这里定义OS_STK_GROWTH=1,默认是堆栈向下增长(高地址->低地址)*/
INT8U x=0,y=0;
INT16S key;

void main()
{
        char* s_M="M";/*定义要显示的字符*/
        OSInit();     /*初始化ucos*/

        PC_DOSSaveReturn();/*书上说这段代码是用来保护DOS环境,那现在不在DOS环境下,需要修改这段代码吗*/
        PC_VectSet(uCOS,OSCtxSw);

        OSTaskCreate(                   /*创建一个任务*/
                MyTask,                     /*指向任务的指针*/
                s_M,                        /*传递给任务的参数*/
                &MyTaskStk[TASK_STK_SIZE-1],/*指向任务堆栈栈顶的指针*/
                0                           /*任务的优先级(这里设置为最高)*/
                );

        OSStart();    /*启动任务调度*/
}

void MyTask(void* pdata)
{
#if OS_CRITICAL_METHOD == 3/*启用方式3*/
        OS_CPU_SR cpu_sr;      /*定义CPU的状态寄存器是32位的*/
#endif
        pdata=pdata;
        OS_ENTER_CRITICAL();/*进入临界段(关中断)*/
        PC_VectSet(0x08,OSTickISR);
        PC_SetTickRate(OS_TICKS_PER_SEC);/*这个地方需要修改吗*/
        OS_EXIT_CRITICAL();
        OSStatInit();
        for(;;)
        {
                if(x>10)
                {
                        x = 0;
                        y += 2;
                }
                PC_DispChar(
                        x,y,
                        *(char*)pdata,
                        DISP_BGND_BLACK + DISP_FGND_WGITE
                        );
                x += 1;

                /*如果按下ESC,则退出ucos*/
                if(PC_GetKey(&key) == TRUE)
                {
                        if(key == 0x1B)
                        {
                                PC_DOSReturn();
                        }
                }
                OSTimerDlyHMSM(0,0,1,0);
        }
}

此帖出自uCOS/uCGUI论坛

回复

使用道具 举报

9891

TA的帖子

133

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2015-7-4 09:49 | 显示全部楼层
阿偶,请原谅我学艺不精,读书时候学过,不过没深入研究工作上也都没用到。无法回答你的问题呀,我找个人问问,看他会不会~~

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


回复

使用道具 举报

123

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-7-6 09:14 | 显示全部楼层
不管怎么说,还是要感谢您~~~

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-26 09:25 , Processed in 0.134617 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表