马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?快速注册
x
LINUX,嵌入式XP,WINCE 嵌入式VOD开发,该选择哪个?当我看见我面前的这台810主板PC机(赛扬466,128内存,8139网卡带BOOTROM,神龙五代解压卡)在20秒内启动完成,显示器上出现了水晶般透亮(MICROMEDIA 网站的广告语)的点播画面,电视机上出现TWINS又唱又跳的画面时,我忽然感到有些伤感.这个版本的开发工作已经完成了,从开始开发到今天完成已经整整八个月过去了,个中辛酸一言难尽.走了不少弯路,聊聊感想,希望对后来者有所帮助.
/ l. e" m9 _% \: p. C设计这个版本时,是基于一种新的技术构想R.X.Player (丰富表现播放器):全浏览器功能,IE5.0有什么功能,它就应该有什么功能;全动画即时交互,象MICROMEDIA 网站里面说的的做高级宾馆电路控制的那家公司做的控制面板一样,整个交互界面表现出一种逼人的高贵光芒;多国语言支持,从技术架构上保证能正确显示各国语言.无论是浏览网页还是显示交互界面(最主要是简体中文,繁体中文,日文,韩文);良好的稳定性,最少能连续运行三个月不需重启,广泛的硬件支持,保证系统能运行在市面上看得到的绝大部分硬件;只支持神龙三代卡,五代卡,新一代卡和其他一些有可能用到的卡.系统要足够小,大了就不叫嵌入式了,对硬件要求不高,128M内存,466CPU为系统的最基本配置.
/ u9 T7 F; ~) Y
* X/ Z% Z5 s6 f5 r, C; K技术目标定下来,有三个系统可供选择,WINCE5.0,嵌入式XP,嵌入式LINUX;,WINCE系统根据以前做机顶盒的经验,每个应用程序最多只能用32M内存,想超过的话,只能用其他办法,比如'偷'其他应用程序的内存,之前做实达机顶盒时'偷'内存偷得够辛苦的了,前车之鉴,还有硬件兼容性比较难搞,所以不选CE. $ }' J0 z8 q O8 g, }- S/ s8 s F
5 k$ A% V) y5 w' f* d0 n
嵌入式XP呢?,XP是WIN98的升级版本,以前做无盘98时,只要多认几种主板再上传就可以解决硬件兼容性问题.虽不尽人意,但XP在这方面应该会比98好吧.且网上有N篇文章教人做主板PNP,无盘能用,嵌入式XP肯定也能用,还有上面说的这些技术要求,凭自己在WINDOWS上打滚的经验,应该都能很快做到,浏览器,FLASH控件都没问题.多国语言更好搞,重点搞定网络启动部分和裁减大小就可以.于是兴冲冲的找软件供应商买了嵌入式XP的开发包外加十个LICENSE,花了XXXXX元.
7 C8 \3 _) g9 X
4 r2 f$ F" U1 ^8 z! g4 g装上嵌入式XP开发环境,开始构架系统,我的天,一个基本系统居然接近百M加上中文支持.受不了,只好手工裁减,我裁啊裁,裁了两个星期,机器给我重起的得连电源都坏了.终于裁剩26M了,可以接受了,但这算不加上中文和韩文字库,解压卡驱动,再加上浏览器必须部件,共须另外30M,总共少于64M,128M内存,64M做虚拟盘,64M做自由内存可能够了吧.好,把系统做成网络启动(在工作站上插个电子盘在点歌系统毕竟不现实),一看,又晕,嵌入式XP居然不是标准的PXE启动过程,是微软自己定义的启动协议过程.虽然提供了全部的网络启动程序,但自己都装了老半天才装上这些东西,客户比我更高手的估计不多,这样的话,不用卖了.没法,写个网络数据包分析工具,把工作站和服务器在工作站启动过程中的全部网络通讯数据包拦截下来分析.搞了一个星期,总算我的服务程序也可以支持嵌入式XP从网络启动了.且比微软自带的好一点,除了WIN98,在任何WINDOWS系统上都可以启动,也不需要安装DHCP服务,象XP系统是没有DHCP服务安装的.看见曙光在前了,努力啊,当系统启动完成以后无法运行样本程序,提示内存不足.怎么搞的?只好又写个小程序,检查一下内存.一看我的天,嵌入式XP启动不运行任何东西就大概占了50M内存,简直不让人活,WINDDOWS系统运行时的内存咱可没本事裁.怎么办,我还有很多东西加呢,这点内存哪够用?广东人有句话,洗湿了个头,没法,发一下狠,从微软下载了个IFS-SDK,自己来写个虚拟硬盘驱动,人家网众能做,我也能做,又经过两个星期,无数次蓝屏之后,虚拟硬盘驱动终于做出来了,这样在服务器上随便拷个文件,指定大小,嵌入式XP启动时加载虚拟硬盘驱动,就可以把这个文件当成一个硬盘了,写入,读出,甚至格式化都没问题.嵌入式XP根本不知道这是一个网络硬盘,跟本地硬盘没什么区别,当网络断时,系统会锁定等待服务器重启或连到另一台机器上同一个文件镜像上,绝不蓝屏.除了启动核心,其他的全部放入虚拟盘,终于可以正常运行样本程序,可以唱歌,点歌了.但虚拟盘好是好,但东西在网络上,读数据时,象字库文件,效率还是有点问题.只好把严重影响效率的文件放入内存,接着又发现,FLASH一运行,这内存消耗得狂多,最高峰达一百多M,系统老是提示虚拟内存不足.这样不行的,只好查MSDN看看如何降低应用程序对内存的消耗,搞了N久,最终做到把能FLASH对内存的占用任意控制了,10M,20M,随便,但考虑到效率问题,把它控制在40M以内,没法子,把内存加到256,总算找到了一种平衡,开始多机一起测试了,更晕倒,硬件兼容性更成问题,845的驱动要自己打包,8M左右,这个镜象做好了,810又不能用了,等两个调好了,815呢?SIS主板,VIA主板,摆了一桌子主板,都快变成注册表专家了.还是不行!!坐在那里,发了一下午呆,然后把嵌入式XPSKD放入玻璃柜,对它鞠了一躬,深深的吸了一口气,把机器装成LINUX,一点一点的敲,敲了N个月,到今天,终于可以松一口气了. |