|
本文描述了在tornado2.2.1/vxworks5.5.1下使用windML和zinc的步骤,希望能有所帮助。 主机环境:windows2000 目标机环境:pentium 1 安装TDK-15061-ZC-00和TDK-14631-ZC-01。 安装选项默认即可。 2 安装DK-14376-ZC-00,WindML 2.0.3。 选择WindML 2.0.3 Source for Tornado 2.0.x。 3 安装TDK-13835-ZC-00,Zinc 6.0 for Tornado 2.0.X。 安装选项包括: Zinc Source: any x none Zinc: WindowsNT x pentium Zinc: WindowsNT x simpc 4 安装patch-Zinc6-cp1,将zinc升级到6.0.1。 5 zinc在tornado2.2.x下有个补丁,文件名是zinc60t22.tar.gz。 将其解压缩,并拷贝到tornado的安装目录下。 6 启动tornado,在菜单Tools中选择windML...选项,弹出windML的编译配置对话框。 Configuration中输入一个新的配置名称(任意名称),处理器选择PENTIUM。 Graphics中选择Generic VGA,颜色深度4,分辨率640*480; Input中,如果不需要鼠标,将Pointer Configuration的Type设为No Pointer。 UGL Bitmap Fonts中,按“<<all”,包含所有字体。 Miscellaneous中,Build Options可以全部都不选中。 然后选择Save,并按下Build。 7 windML的build结束以后,在tornado菜单Tools中选择zinc...,弹出zinc的编译配置对话框。 Configuration中输入一个新的配置名称(任意名称),处理器选择PENTIUM。 配置选项可以不用修改,Save之后可以直接Build。 8 在tornado菜单Tools中选择Zinc Designer,启动zinc的图形编辑工具。 可以根据自己需要创建图形界面,并保存。 在Zinc Designer的Options菜单中选择Generate Code...自动生成代码,在 SourceCode-<ApplicationData>对话框中,设USE RSRC为True,并设Windows项为你主窗口名称。 然后按下“Apply”按钮,再选择Generate Code,生成C++代码。 9 在tornado中创建一个bootable的vxworks image工程,组件中需要包括: WindML: PS2 keyboard WindML graphics support (PCI device) complete 2D library Zinc: all of zinc 在Build属性的C/C++ compiler中添加定义-DZINC_CONFIG_TOOL。
此处尤其需要注意的是在vxworks的配置中不能包含PC console组件。原因在于: usrWindMl.c文件中有如下语句: #ifndef INCLUDE_PC_CONSOLE i8042KbdDevCreate (WINDML_KEYBOARD_DEV_NAME); #endif /* INCLUDE_PC_CONSOLE */ 因此,如果包含了PC console组件,将不会创建键盘设备,导致udx11kbd.c文件中 uglX11KbdInit函数在调用 pDevice->fd = open (SYS_KEYBOARD_NAME, O_RDONLY, 0); 时,返回值为ERROR,其原因就在于没有键盘设备。 我认为,通过把usrWindMl.c文件中的如下语句: #ifndef INCLUDE_PC_CONSOLE i8042KbdDevCreate (WINDML_KEYBOARD_DEV_NAME); #endif /* INCLUDE_PC_CONSOLE */ 改为: i8042KbdDevCreate (WINDML_KEYBOARD_DEV_NAME); 也应该可以解决问题,不过没有试过。如果要修改usrWindMl.c,需要注意的是,tornado下有 两个usrWindMl.c文件。 10 在上一步中创建的工程中添加第8步中产生的代码文件,并把 \target\src\zinc\demos\hello\v_app.cpp和\target\src\ugl\example\demo\ugldemo.c文件 拷贝到工程目录下,并添加到工程中。 11 启动目标机,配置并启动target server,然后在wind shell中调用ugldemo,此时应该能够看到 windML的图形显示。如果没有图形显示,说明windML的配置、编译等方面有问题。 重启动目标机,在wind shell中调用hello,应该能够看到利用Zinc Designer设计出来的图形界面。 如果没有图形显示,说明zinc的配置、编译等方面有问题。

归去来兮!田园将芜胡不归?
|