打印

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

[复制链接]
2125|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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很怀疑,大家有何看法。

vcs.jpg (33.11 KB )

vcs.jpg

相关帖子

沙发
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的好。

使用特权

评论回复
5
fe07fe|  楼主 | 2012-1-6 09:18 | 只看该作者
这个应该是vc编译出来的,从显示效果上看,确实比ucos-vc的好。

使用特权

评论回复
6
fe07fe|  楼主 | 2012-1-6 09:40 | 只看该作者
查了一下,ncos还是用的bc编译,用vc编译ucos不是个好方法。
根据文件信息并不是dos程序 而是Win32的,源码里缺少汇编代码。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

355

帖子

1

粉丝