ucos-vc和ucos用bc编译的问题。

[复制链接]
 楼主| fe07fe 发表于 2012-1-4 21:29 | 显示全部楼层 |阅读模式
本帖最后由 fe07fe 于 2012-1-4 21:33 编辑

ucos-vc版的与ucos提供源码有很大区别,不是在应用程序上,而是与编译上的一些代码,比如:
void VCInit(void)
{        HANDLE cp,ct;        Context.ContextFlags = CONTEXT_CONTROL;       
cp = GetCurrentProcess();        //得到当前进程句柄       
ct = GetCurrentThread();        //得到当前线程伪句柄       
DuplicateHandle(cp, ct, cp, &mainhandle, 0, TRUE, 2);        //伪句柄转换,得到线程真句柄       
}

这完全是win32下的命令窗口程序,这个应该是获得句柄转化的ucos能用的指针,这个vc版并不显示命令窗口彩色模式,根据
vc版那个就一个文件管理程序,在输入命令停留,比如scanf这样的函数,我觉得是阻塞的,windows不释放,ucos可能就不可能实现多任务调度,还有vc版的输出函数是printf函数,而bc版的用dos方式:

void PC_DispStr (INT8U x, INT8U y, INT8U *s, INT8U color)
{    INT8U  far *pscr;
   INT16U      offset;  
  offset  = (INT16U)y * DISP_MAX_X * 2 + (INT16U)x * 2;   /* Calculate position of 1st character     */   
pscr    = (INT8U far *)MK_FP(DISP_BASE, offset);  
  while (*s) {        *pscr++ = *s++;                                     /* Put character in video RAM              */
        *pscr++ = color;                                    /* Put video attribute in video RAM        */    }
}
包括位置,字符,颜色等参数,我对vc版的ucos很怀疑,大家有何看法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| fe07fe 发表于 2012-1-5 18:44 | 显示全部楼层
没人回复结不了贴了,这个是阻塞程序!
漂亮阿姨 发表于 2012-1-6 01:36 | 显示全部楼层
我也写过一个类似的demo。懒得贴来,您访问 http://ncos.sourceforge.net/
 楼主| fe07fe 发表于 2012-1-6 09:18 | 显示全部楼层
这个应该是vc编译出来的,从显示效果上看,确实比ucos-vc的好。
 楼主| fe07fe 发表于 2012-1-6 09:18 | 显示全部楼层
这个应该是vc编译出来的,从显示效果上看,确实比ucos-vc的好。
 楼主| fe07fe 发表于 2012-1-6 09:40 | 显示全部楼层
查了一下,ncos还是用的bc编译,用vc编译ucos不是个好方法。
根据文件信息并不是dos程序 而是Win32的,源码里缺少汇编代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

355

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部