前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UGL之Simulator里的WindML

UGL之Simulator里的WindML

作者头像
Taishan3721
发布2019-07-10 15:32:11
1.3K0
发布2019-07-10 15:32:11
举报
文章被收录于专栏:这里只有VxWorks这里只有VxWorks

WindML - Wind River Media Library。听上去是个多媒体库,但大家一直把它当作图形库,据说当初第一个版本的名字就叫UGL。目前最低版本是支持VxWorks 5.4的WindML 2.0,最高版本应该是VxWorks 6.9里配合Tilcon的WindML5.4吧,Vx7里应该已经没有它了

不管是多媒体库,还是图形库,要使用WindML,核心的设备肯定是显卡了。那项目刚启动时,Target device都还没准备好,更别提显卡了,要想学习或了解WindML,怎么办?还好不管哪个版本的VxWorks Simulator,都支持WindML,在Host本地就可以把WindML的所有上层功能跑起来了。

另外,不管哪个版本的WindML,Wind River都是以源码形式提供的。因此,要想使用它,得先把源码编译成库。今天咱们就来看看如何在Simulator里把WindML的例子跑起来:

打开Workbench,建个DKM:

根据自己的喜好,给它起个名字

选择合适的build spec。 Simulator在Windows上模拟的CPU叫SIMNT,编译器可以选择gnu,或者diab也是没问题的。另外,喜欢研究代码的小伙伴,可以使用默认的Debug Mode

Build Target改为Librarian

其它选项,都用默认值就可以了

然后新建一个Middleware Component

把这个Middleware加到刚刚的DKM上

选择合适的Middleware。可以看到,如果要编译其它Middleware,也是这样操作的,例如DCOM、OPC、Tilcon等

因为是要把源码编译为库,所以选择Component Configuration

DKM创建完毕后,Workbench自动打开了WindML的Configuration页面 - config.windml

接下来,根据实际需求来config这个windml,基本都可以先用默认值

  • Build Spec: 这个值与Project的Build Spec要保持一致,因此不用修改
  • Update Static Library: WindML被编译为两个库, Dynamic(仅包含与这个Configuration页面相关的几个文件)和Static(包含其余的大部分文件)。Static Library里的文件很少会被修改,因此再次编译project时,如果不更新它,可以减少大量编译时间
  • Use Memory Pool: VxWorks给WindML单独分配一块内存池,否则直接使用系统内存池。选哪个,影响不大
  • Enable JPEG Support: 包含JPEG库。这是个开源库,体积不小,根据项目的实际需求来取舍
  • Enable PNG Support: 包含PNG库。情况与JPEG类似
  • Enable Unicode Support: 支持Unicode编码的字符。如果要使用东亚字符,例如咱的中文,这个选项是必要条件

接下来,添加一个Display。Audio就不用了,WindML对音频支持的力度也不够。

给这个Display随便起个名字

添加一个Graphics设备

  • Device: Simulator里只能是SimPC Graphics
  • Driver Instance: 默认0
  • Graphic Mode: 可以选择最高的分辨率和色深
  • Output Type: 只有Generic Monitor
  • Enable JPEG Extension: 使能JPEG功能,需要同时选择之前的Enable JPEG Support
  • Rotate: 旋转屏幕

添加一种Font引擎。BMFFonts(Bitmapped Monochrome Font)或FreeType Fonts,二选一。都不选的话,App绘制文本时,就会报错。都选的话,默认使用BMF Fonts。

例如选择BMF Fonts,然后选中想要的font。当然也可以Select All,不过编译的库就会大一些。

注意: 所有的Font都是有版权的。我们之所以能够在Windows里显示文本,是因为微软支付了Font的费用;之所以能够在公众号里看到这篇文章,是腾讯制作了Font;之所以能够在WindML里显示字符,是因为风河集成了这些Font。如果你想使用更多的Font,那就得掏钱了;如果你想把文字打印出来,用于商业目的,例如做一张宣传海报,也要支付费用的。

其它几个成员是可选的了

Keyboard: 键盘SimPC Keyboard

Pointer: 鼠标Simpc Pointer

Window Manager: WindML封装的一个控件库,支持Window、Menu、Button

Config完毕后,Build这个DKM。Elapsed Time取决于Host的硬件性能,例如我这次Build用了4分多钟。记得十五年前,第一次Build WindML 2/3时,至少也要20多分钟

这样就得到了WindML的两个库

现在,可以在VxWorks中使用WindML了。建个VIP

给它个名字

BSP就用simpc,Tool chain要与刚刚DKM的build spec一致。其它选项用默认值就行了

打开VIP的Kernel Configuration,添加组件INCLUDE_WINDML和INCLUDE_HOST_WINDML_GRAPHICS

在VIP中import一些samples

好了,Build这个VIP,启动Simulator Connection

跑个例子试试,例如winBall()或者ugldemo()

这正是:

想要画图和界面,缺乏经验少硬件?

有了Sim就好办,省时省力还省钱!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档