September 15th, 2008
will
为在VxWorks上开发gui,用到了minigui,为了编译minigui需要一个linux的编译环境,想到cygwin。曾经在在windows下建立Ethereal开发环境的时候使用过cygwin,但是当时编译用的VC6.0的编译器,所以没有安装gcc。
在cygwin下安装gcc只是选择库的不同,其它操作没有变化,可参考在windows下建立Ethereal开发环境,安装gcc需要
binutils
gcc
gcc-mingw
选择这些库的同时可能有其它的库也被选中了,这个不用管了。安装完成后可以在bash中输入命令gcc –version查看gcc的版本信息。cygwin提供的为3.4.4版本。
PS:本来想写的是在cygwin下配置minigui的编译环境,但是几次尝试都失败了,没有时间论证是否可行了,改成vmware安装ubuntu编译了。
September 14th, 2008
will
在VMware中安装VxWorks之后,希望能加入图像界面,便于以后进行gui开发。下面是我根据一些论坛中的资料做的过程。以下过程是在VmWare中安装VxWorks成功之后的环境下实现的。
一、配置WindML3.0
直接修改pentium_VESABIOS_RGB565_640×480的配置
分辨率设置800*600,此处必须改变分辨率。原因见complete 2D library没有安装错误
鼠标Type:Pointer选PS/2 Style Pointer,Name:pointer/0 (支持鼠标需要WindML3.0 CP3补丁,一时找不到就没有支持鼠标)
键盘Type:PC/AT style,Name:/pcConsole/1(注意此处必须选择pcConsole/1,keyboard/0不存在)。
保存后重新build WindML库。编译WindML库包含了examples,所以时间比较长,正好可以做下面几步。
二、修改BSP
在romInit.s文件中加上
#include <ugl/driver/graphics/pcbios/romInit.h>
它必须是include的最后一个头文件包含。
在config.h的较为开始处加上
#define INCLUDE_WINDML
#define INCLUDE_WINDML_PS2_POINTER /*WindML支持鼠标*/
#define INCLUDE_WINDML_PS2_KEYBOARD
我是加在了#define SYS_INT_INTGATE 之后
重新编译BSP,制作bootrom的floppy image
三、配置vxWorks
WindML components组件下,包含如下几个部分:
WindML devices->input device->PS2 keyboard
WindML devices->graphics device->graphics support(PCI device)
2D layer->complete 2D library
2D layer->necessary 2D library
重新编译生成vxWorks
四、下载并运行ugl程序
配置Target Server,选择Target Server是在工具栏上(我当时找了好久,一下载就提示没有选择Target Server)。然后从X:\Tornado2.2\target\lib\objPENTIUMgnuApps(X为tornado的安装盘符)选择ugldemo.o下载,并在shell中运行ugldemo,即可再VMware中看到Welcome to WindML3.0。
PS:配置到第三步的时候,出现2D layer->complete 2D library没有安装错误,重新安装WindML3.0一次,然后再配置第三步,依然提示complete 2D library没有安装。曾试图通过修改prjParams.h文件,将原来的
#undef INCLUDE_UGL_ALL改为
#define INCLUDE_UGL_ALL
结果还是失败了。解决办法是将第一步配置BSP中的分辨率设置成800*600,鼠标键盘都设置上。
实际上并没有这个必要,necessary 2D library一样可以通过。
我也是初学者,根据wabcon2003-12-27的教程在VMWare上安装VxWorks操作系统(原文找不到了),生成的bootrom在VMware中加载出现:
(tBoot): sysNvRamGet:open failed
Attached TCP/IP interface to lnPci0.停在这里不动了。
先说明TCP/IP错误,主要是没有将网络驱动程序加入bootrom中。
解决办法:
先将从AMD下载的网卡驱动中的ln97xEnd.h和ln97xEnd.c复制到pcPentium目录中,然后修改pcPentium中的Makefile文件
将MACH_EXTRA = 改为MACH_EXTRA = ln97xEnd.o
然后编译生成bootrom。此时如果后面的操作都正确,boot已经可以成功了。
open failed错误不影响boot,但是有网友反应会影响到以后的开发,以后还是应该解决掉。解决的方法也很简单,就是修改config.h文件将
#define SYS_WARM_TYPE SYS_WARM_FD 改为
#define SYS_WARM_TYPE SYS_WARM_BIOS
Build Boo ROM的时候不支持C++语法,即//的注释符不能被正确解析。
环境变量的设置只是临时的,关闭控制台之后需要重新设置环境变量。
mkboot a: bootrom 在a:后面有个空格。
就这么多了,欢迎大家和我交流。Have Fun!
VC2005运行库是VC2005编译出来的程序运行所依赖的库(不包括.NET支持),采用manifest方式来指定dll文件。如果将程序.exe文件直接拷贝到没有安装过VC2005的计算机上运行运行,往往会出现找不到msvcr80.dll、mfc80.dll文件等错误。
解决方案:
解决方式一、在目标系统上安装2005版vcredist_x86.exe(全称Microsoft Visual C++ 2005 Redistributable Package (x86))。微软官方下载地址:http://download.microsoft.com/download/d/3/4/d342efa6-3266-4157-a2ec-5174867be706/vcredist_x86.exe
解决方案二、直接拷贝VS8目录下的VC \ redist \ x86 \ 目录下的 Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC几个文件夹,到exe所在的目录下,目录结构如下:
.\myapp.exe
.\myapp.dll
.\Microsoft.VC80.CRT\
.\Microsoft.VC80.MFC\
.\Microsoft.VC80.MFC\Microsoft.VC80.MFCLOC\
然后修改Microsoft.VC80.MFCLOC目录下的Microsoft.VC80.MFCLOC.manifest文件,将其中的version=”8.0.50727.42″,修改为version=”8.0.50608.0″。
为了避免保证VS8的完整性,建议先将Microsoft.VC80.MFCLOC的文件拷出来后再修改。
在安装了Tornado2.2之后,没有硬件环境的情况也可以通过VxSim来软件运行一些程序,下介绍一下VxSim运行一个Hello World!的过程。
1、启动Tornado2.2,出现如图所示的新建工程选项,选择downloadable application。

接下来直接点Next就可以了,也可以自定一些设置。工程建立完成。
也可以在File->New project来建立如上的工程。
2、File->New,如果如图添加C/C++ Source File

向新建的源文件中添加printf打印Hello World!的源程序,Build->Rebuild All,生成.out文件。
3、Tools->Simulator下开启VxSim,直接保持默认就可以了。
4、Load Program。Project->Download选择生成的.out文件下载。
5、Debug显示Hello World!。Tools->Debugger,然后Debug->Run如图所示,在Task中填入所要运行的任务,然后可以单步,run在VxSim查看输出结果。

Recent Comments