这要从头说起,我是设备制造商,所以我想还是有资格给大家介绍一下的。下面是一种实现方法,但不是所有厂商都是这样做的。
ROM一般是用flash,是用来存放固定数据的。从用户角度来说,我们在做设备的时候,一般把ROM分为几个区,
第一块用来给用户提供自己安装程序的空间,也就是你看到的可用程序空间;
第二块用来做系统原始备份,就是你在恢复出厂设置中看到的,实际上就是出厂时的全部原始二进制文件。
第三块是存放用户使用的内容,包括改动的数据,比如改动的注册表,数据库卷等。
第二块是占用空间最大的,Smartphone是二十多M,PPC是30M左右。这块是隐藏的,我们没有映射为可见的文件夹,用户是无法访问的,这样才能保证原始数据不被改动。
我可以简述一下开关机过程
1.每次关机,系统(实际上是驱动)把用户改动的设置等存到第三块中(永久写入)。
如果非正常关机,这些数据就可能不被写入,有些人是在关机时写入,有些厂商喜欢每隔一段时间写入。当然PocketPC可能有备用电池,实际上不会真正关闭电源。而Smartphone没有。
2.每次开机,实际上会把系统必要的文件全部搬到RAM中,然后再把第三块的内容去覆盖到RAM中,这样用户就可以看到上次的改动了。
虚拟内存实际上是和物理RAM进行映射的。通过前面,你可以看到,实际在RAM中有从ROM中复制过来的一部分保证系统正常运行的基本文件,另外还有一些用户设置数据。这就是你抓出来的部分,这不是原始的bin文件,但是可用来检测系统的一些运行问题。
你要想真正获得bin文件,第一种方法是必须从我所说的ROM中第二块来抓出来(原始的bin),第二种是抓用户正在使用的bin,这都需要通过修改bootloader,然后把抓出来的数据通过串口发送给PC接收,或直接存在ROM空余的地方上。我们目前调试就是这样做的。
ROM一般是用flash,是用来存放固定数据的。从用户角度来说,我们在做设备的时候,一般把ROM分为几个区,
第一块用来给用户提供自己安装程序的空间,也就是你看到的可用程序空间;
第二块用来做系统原始备份,就是你在恢复出厂设置中看到的,实际上就是出厂时的全部原始二进制文件。
第三块是存放用户使用的内容,包括改动的数据,比如改动的注册表,数据库卷等。
第二块是占用空间最大的,Smartphone是二十多M,PPC是30M左右。这块是隐藏的,我们没有映射为可见的文件夹,用户是无法访问的,这样才能保证原始数据不被改动。
我可以简述一下开关机过程
1.每次关机,系统(实际上是驱动)把用户改动的设置等存到第三块中(永久写入)。
如果非正常关机,这些数据就可能不被写入,有些人是在关机时写入,有些厂商喜欢每隔一段时间写入。当然PocketPC可能有备用电池,实际上不会真正关闭电源。而Smartphone没有。
2.每次开机,实际上会把系统必要的文件全部搬到RAM中,然后再把第三块的内容去覆盖到RAM中,这样用户就可以看到上次的改动了。
虚拟内存实际上是和物理RAM进行映射的。通过前面,你可以看到,实际在RAM中有从ROM中复制过来的一部分保证系统正常运行的基本文件,另外还有一些用户设置数据。这就是你抓出来的部分,这不是原始的bin文件,但是可用来检测系统的一些运行问题。
你要想真正获得bin文件,第一种方法是必须从我所说的ROM中第二块来抓出来(原始的bin),第二种是抓用户正在使用的bin,这都需要通过修改bootloader,然后把抓出来的数据通过串口发送给PC接收,或直接存在ROM空余的地方上。我们目前调试就是这样做的。