编译通过的uCOS居然无法运行!! 恳请大侠指点迷津
http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_491667.jpg(原文件名:未命名.jpg)
想请教大侠,在下使用BC45调试uCOS-II时出现以上对话框的问题 使编译的程序无法运行
主程序在二楼 恳请指点 在一个OS中直接跑另一个OS? 不是啊 只是在uCOS上编个简单的应用程序而言 主程序如下
#include "includes.h"
/*
*********************************************************************************************************
* CONSTANTS
*********************************************************************************************************
*/
#define TASK_STK_SIZE 512
/*
*********************************************************************************************************
* VARIABLES
*********************************************************************************************************
*/
char* ss;
OS_STK MyTaskStk;
OS_STK YouTaskStk;
INT16S key;
INT8U y1 = 0, y2 = 0;
char* s ="原始数据";
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*/
voidMyTask(void * data);
voidYouTask(void * data);
/*$PAGE*/
/*
*********************************************************************************************************
* MAIN
*********************************************************************************************************
*/
void main (void)
{
PC_DispClrScr(DISP_FGND_WHITE);
OSInit(); /* Initialize uC/OS-II */
PC_DOSSaveReturn(); /* Save environment to return to DOS */
PC_VectSet(uCOS, OSCtxSw); /* Install uC/OS-II's context switch vector */
PC_ElapsedInit();
OSTaskCreate(
MyTask, //代码
(void* )0, //任务参数
&MyTaskStk,//任务堆栈
0); //任务优先级
OSStart(); /* Start multitasking */
}
/*$PAGE*/
/*
*********************************************************************************************************
* STARTUP TASK
*********************************************************************************************************
*/
voidMyTask(void * pdata)
{
#ifOS_CRITICAL_METHOD == 3
OS_CUP_SRcpu_sr;
#endif
INT8Uerr;
pdata = pdata;
OS_ENTER_CRITICAL();
PC_VectSet(0x08, OSTickISR);
PC_SetTickRate(OS_TICKS_PER_SEC);
OS_EXIT_CRITICAL();
OSStatInit();
OSTaskCreate( YouTask, //代码
(void* )0, //任务参数
&MyTaskStk,//任务堆栈
2); //任务优先级
for(;;)
{
s = "MyTask访问共享数据";
PC_DispStr(5,
++y1,
s,
DISP_BGND_BLACK+DISP_FGND_WHITE);
OSTimeDly(20);
}
}
voidYouTask(void * pdata)
{
#ifOS_CRITICAL_METHOD == 3
OS_CUP_SRcpu_sr;
#endif
INT8Uerr;
pdata = pdata;
for(;;)
{
s = "YouTask访问共享数据";
PC_DispStr(28,++y2,s,DISP_BGND_BLACK+DISP_FGND_WHITE);
OSTimeSet(0);
while(OSTime<500)
{
//sprintf(ss,"%d", OSTimeGet());
PC_DispStr(55,y2,s,DISP_BGND_BLACK+DISP_FGND_WHITE);
}
OSTimeDly(10);
}
}
调试邵贝贝书配套光盘上的ex4也有同样的问题,不知道原因何在?
光盘资料论坛上也有人上传了。感兴趣的同志也可以玩玩的 我是说,你把ucos编译成一个exe文件,然后直接在windows里面运行了?(看你的截图是这个情况) 是啊,这个是在Borland C++4.5平台上调试的,许多书的列子都是在Borland上调试的~~ uCOS-II是操作系统,怎能当普通程序对待呢?
要调试uCOS-II,只能用虚拟机或模拟器,Windows不可能让另一个操作系统在自己上面跑的。 不是吧??书上都是这么调的 我也是按照书上的做而已
而且很多列子都通过了调试 就是这个不行啊
页:
[1]