3948|2

86

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

初学ucos,请大神指教~~~ [复制链接]

 小弟初学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);
        }
}

最新回复

阿偶,请原谅我学艺不精,读书时候学过,不过没深入研究工作上也都没用到。无法回答你的问题呀,我找个人问问,看他会不会~~  详情 回复 发表于 2015-7-4 09:49
点赞 关注
 
 

回复
举报

1万

帖子

203

TA的资源

管理员

沙发
 
阿偶,请原谅我学艺不精,读书时候学过,不过没深入研究工作上也都没用到。无法回答你的问题呀,我找个人问问,看他会不会~~
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
不管怎么说,还是要感谢您~~~
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表