当前位置: 代码迷 >> WinCE >> 很郁闷的有关问题,WinCE、Platform Builder达人请进来,多提提建议,多谢
  详细解决方案

很郁闷的有关问题,WinCE、Platform Builder达人请进来,多提提建议,多谢

热度:103   发布时间:2016-04-28 13:46:28.0
很郁闷的问题,WinCE、Platform Builder达人请进来,多提提建议,谢谢!
本人买了一块FriendlyARM(友善之臂)的板子,用VS2005开发了一个程序要运行在板子上面,系统刷成WinCE 5.0了,程序开发也完成了,正当以为一切可以结束的时候,发现板子重启之后保存在WinCE里面的数据完全消失了,程序可以放在别的存储设备,,,,,但是VS2005开发的程序,调试过程中,VS会向WinCE的Windows文件夹写入很多文件(诸如.net CF,一些要引用的dll,还有一些CAB文件等等),这些文件也会随着掉电而消失,这些.net的支持文件消失了,程序再放到哪里都没有,没有这些支持文件程序是没法运行的。
  针对这个问题,我想到的是用Platform Builder 5.0定制系统,自己定制一个包含.net CF还有其他支持文件甚至包含程序文件的系统。Q1:因为我是这方面的新手,我想问问我这样想法有没有问题,因为我需要的不是系统能保存什么设置,我需要系统一开机的时候Windows下的文件夹含有我想有的文件就足够了,假若有别的方法,请指名,谢谢!

  其实Platform Builder我也安装,走到一步叫"系统就会接到从开发机广播过来的信息"的步骤时就毫无反应,请参照http://blog.csdn.net/cudng/archive/2007/07/17/1694609.aspx,Blog主也说只有8139的网卡才能支持,我现在手头上的都没有这芯片,今晚去买一张看看,,,,,,,,,但我把Blog主说的这文章之前的所有步骤都走完了,因为之前的步骤已经编译过了,所以相应的WorkSpace文件夹里面也有NK.bin文件了,我就尝试把这个文件刷进我的设备,刷了3个格子就刷不下去了。Q2:这个bin文件不能刷,那究竟到什么阶段的bin文件才能刷,一定要PB自动下载进去设备的才能用么?

Q3:用PB的过程中,定制BSPs类型的时候有过选择支持的CPU的过程,因为我的板子是ARM的CPU,我发现只选择ARM的时候,右边的Catalog/BSPs里面根本不会出现我定制的BSPs类型,这究竟是什么意思,我实在想不同...

Q4:我买的板子是带7寸的触摸屏的,这个产品根据显示输出的不同支持分了不同型号,厂商给每种型号的WinCE的bin文件都是不一样的,他们的bin是不是也用PB定制出来的?那么那些显示驱动,还有其他接口的驱动,有是在PB哪个过程刷进去的?上面的Blog好像没有说到过这个东西...

Q5:有人说这个板子运行的WinCE是保存在RAM,所以一掉电就会丢失数据,对WinCE的设置也一样消失,这样的优点就是不用维护系统,一重启就好了,,,,,但我发现一个问题,就是我设置的固定的IP地址,设置好后,无论我怎样关机,一开机还是能保持我关机前设置过的IP信息,这又是怎么一回事?实在是不解...

我的问题比较多,也知道大家不都是神,大家有知道的,就挑自己知道的问题回答好了...
觉得有什么需要提醒一下我的,也无任欢迎,这个帖子我会尽量把分数加上去,因为我真的逼切需要你的解答,希望大家可以热心帮助我,谢谢!

------解决方案--------------------
windows 是RAM文件系统,肯定掉电就没有了。

不过我看有些人的机子不会,我觉得有可能做了处理,比如写个无界面的的开启启动程序,把这些文件拷贝到windows目录下。
我自己也不懂,我的SQL 3.0吧,装上去,启动也没有了,现在还没有时间研究呢。
------解决方案--------------------
Q1很简单,直接把需要的文件做到Image里进去就可以了
Q3你需要在定制前把相应的CEC文件导入进去
Q4驱动程序是通过PB编译,最后包含在生成的Image中
Q5CE即支持RAM Base的文件系统,也支持RAM+ROM的文件系统,还支持ROM Only的文件系统,各取所需吧。
LZ所说的IP地址信息不丢失的问题应该是该系统实现了Hive based registry功能,注册表信息会保存在ROM上,掉电不会丢
------解决方案--------------------
Q1:image就是用PB编译生成的,至于如何下载和烧写,卖开发板的厂家应该有详细文档说明以及工具软件.

Q2: PC端发广播信息,如果找到你的设备,会在ACTIVE DEVICE显示一个设备名; 你需要看一下你的设备在BOOT启动后是否和PC在一个网段,从你提的BOKE里IP设置为192.168.0.123即可,还有MAC地址如果没有设置也需要设置,不是全0就可以.

最好详细看下厂家写的手册,那里应该能解答你一些问题.
------解决方案--------------------
windows 文件夹是RAM文件系统,断电就不会保存。
如果你一定要保存用户设置等数据的话,就用HIVE注册表吧。但是你要在windows目录下添加文件,那是绝对不行的。除非你硬件有备用电池,不让内存掉电。
如果你一定需要在windows目录下添加自己的文件(静态),可以重新编一个image,把需要的文件打包进来。
如果你需要动态在windows下添加文件,而且还要断电后开机还在,那有一种方法,
硬件上要有足够的ROM,把动态建立的文件添到windows目录的同时,也写进ROM,断电后开机时,要有一个程序在系统启动完毕后,再将保存的文件从ROM拷到windows目录下。
这样比较麻烦,不过lz为什么一定要在windows目录等ram文件系统下添加文件呢?

探讨
我现在最大最大的问题就是如何在WinCE下特别是Windows文件夹下保存数据而掉电也不消失?!,其他问题都是引申出来想了解一下而已!

难道没人遇到这种情况么?
大家都是怎么处理的,都给我支支招啊,最少也请告诉我定制系统能不能解决我这个问题,不能的话,我就不放心思在这上面了,另找办法去了~!
这200分帖子一定会结的,谢谢大家帮忙!

------解决方案--------------------
PB定制的时候如下修改project.bib文件(一般在PBWorkspaces\PBTest\WINCE500\DeviceEmulator_ARMV4I\OAK\files中),可以把文件定制到内核中,掉电保存


放入内核中的文件名 PC机上的全路径 放入到设备的windows目录下 设置属性为system, hide
CAMBRIA.TTC D:\WINCE500\英文字体\CAMBRIA.TTC NK SH
------解决方案--------------------
1、hive可以搞定
2、kitl问题,跟网卡无关,任何类型网卡都可以连接。当然前提要做好kitl的驱动
3、有人说了,cec问题
4、所有的bin都只能做其他用途,wince中lcd参数上报必须在驱动中实现。现在应该只有我作的bsp版本才有动态支持多个lcd模组,其他bsp都是定死的。
5、简单,都是norflash保存的信息。实际上你跑的版本没有设置正确,正常途径可以下载完烧录到任何ROM中的,再次启动使用binfs。速度快、节省内存
------解决方案--------------------
Q1:
1.利用pb实现定制的nk包含Hive based registry功能。
2.应用软件中需要保存的文件存放到flash中。
3.需要开机就调用的部分,利用应用软件写入注册表,以使得下次开机的时候,系统依据注册表的信息,自动加载存在flash中的文件的信息。
  相关解决方案