当前位置: 首页 > news >正文

网站开发进度安排文档建设工程网站教程

网站开发进度安排文档,建设工程网站教程,蚌埠哪有做网站的,包头索易网站建设我们的Image主要由两部分组成#xff1a;XIPKERNEL.bin和NK.bin,XIPKERNEL.bin中的东西就是那些WinCE中比较核心的又需要经常加载的一些程序和DLL文件#xff0c;这些文件会被Boot Loader在刚启动的时候拷贝到RAM中去#xff0c;这样就可以在RAM中XIP#xff08;Excute in …我们的Image主要由两部分组成XIPKERNEL.bin和NK.bin,XIPKERNEL.bin中的东西就是那些WinCE中比较核心的又需要经常加载的一些程序和DLL文件这些文件会被Boot Loader在刚启动的时候拷贝到RAM中去这样就可以在RAM中XIPExcute in place了。在NK.bin中的基本上是需要但不至于要常驻内存的一些程序和DLL了比如我们BuildIn下的大部分驱动比如微软的IEmediaplayer等应用程序甚至连设备管理器device.exe也可以放到这里面,这些文件只有在需要的时候才被复制到内存中去执行节约了内存并且也加快了启动的时间。嘿到这里大概知道binfs的工作原理和重要性吧。 binfs 在烧image的时候会自动把XIPKERNEL和NK分别保存到flash的特定的逻辑扇区上.启动的时候Boot Loader会先把XIPKERNEL复制到RAM中然后跳到RAM中的XIPKERNEL的入口点去执行这个时候会跑一些OEMinit之类的CPU内存中短等初始化的过程接着OS会从注册表中找到binfs的一些设置然后加载binfs的驱动使binfs分区对OS来讲是可用的假如device.exe是在NK.bin中的话那么在这个时候就可以用/binfs/device.exe/binfs是假设的装载路径来调用它了如果这个时候binfs没有初始化成功那么device.exe得不到执行那么系统肯定就起不来了。 现在来讲讲HIVE其实HIVE是个很简单的东西都怪和binfs牵到一起搞得很多问题都走错了方向.这么说吧WinCE下面就两种注册表一种是RAM based另外就是HIVE based了缺省用的是前者如果用前者PB会在编译的时候把common.reg和platform.reg的内容做到一个叫reginit.ini的文件然后压缩成default.***的文件放到XIPKERNEL中去image在起来的时候会把这个文件解压到RAM中形成RAM based注册表既然是RAM based那么所有的改动都会在断电后蒸发哈哈。怎么办呢其实再笨你也能想出来保存到磁盘上不就结了吗对你太聪明了但是你想如果你把注册表全放到磁盘SDMMC或HDD或Flash上WinCE怎么在没有加载你磁盘的驱动的情况下读到注册表呢而一般情况加载磁盘的驱动程序也是要注册表的支持啊嘿对了这就是HIVE想到的看它怎么做它把注册表分成两部分其实是三部分当时大体还是两步分把user.hv和system.hv做一部分第一部分就是叫做boot.hv的注册表里面的东西就是一些在没有拿到保存在磁盘的注册表之前引导时需要的一些设置这部分的注册表和RAM based的是一样的改了之后断电就没了所以这部分的注册表项都是不需要改动的需要改动的都放到第二部分就是了这第二部分就是system.hv和user.hv了也就是一直提到的要放到磁盘上的注册表. 编译的时候PB会根据platform.reg和Common.reg中的标签判断哪些表项放到boot.hv中这个标签就是;HIVE BOOT SECTION ;END BOOT SECTION,夹在这个标签之间的表项PB在编译的时候会把它们塞到boot.hv中去boot.hv是二进制文件要看里面到底放了哪些表项用一个老外写的工具吧好像叫d_readvol.exe到google上找得到的其他的内容会分别塞到default.hv和user.hv中去最后会把这三个hv文件统统塞到XIPKERNEL中去这样WinCE在引导的第一阶段就把所有的hv扔到RAM中去了然后打开boot.hv拿到必要的资料这其中包括如何加载放置system.hv的磁盘的驱动所以那些和加载这个磁盘相关的驱动要统统放到boot.hv中比如FAT文件系统驱动mspart分区驱动等等这里有一点很重要就是假如你用binfs而且device.exe在NK.bin中那么一定在第一阶段要保证binfs可用否则这里就不可能为system.hv创造条件了。WinCE第一次启动时候磁盘上没有东东这个时候WinCE会将内存中的default.hv和user.hv复制到注册表BootVars指定的地方default.hv往往会被重命名为system.hv第二次启动会先检查磁盘上的hv是不是和内存中的一致不一致就加载磁盘上的表项。 整个过程就是这样子但要注意一点HIVE注册表也是在内存中运行的不同的是启动的时候会从磁盘上去读改动的表项因为这样才能保证速度所以你做的的注册表改动也是在内存中做的这个时候如果你不掉用FlushRegister去将内存中的数值保存到磁盘上那么这些改动还是会丢失的。两种方法来避免丢失一种是认为去调用FlushRegister,令一种就设置一个flag让WinCE在每次改动注册表后自动Flush. 最后总结一下 1.新建一个工程把该选的组件都选上。 2.添加HIVE支持。  a. 在PB中加入Hive-based Registry、“FAT FILE SYSTEM”。  b.打开platform.reg完成如下信息   ;HIVE BOOT SECTION    [HKEY_LOCAL_MACHINE/init/BootVars]   SYSTEMHIVEDocuments and Settings//system.hv     ;system.hv会保存到/HDD/Documents and Settings/system.hv   PROFILEDIRDocuments and Settings   ;user.hv会保存到/HDD/Documents and Settings/default/user.hv   Start DevMgrdword:1   ;这个说是启动device.exe但是wince 5.0好像不用这个   DefaultUserdefault       ;咱们只有一个用户default基本上就是决定user.hv的路径了   Flagsdword:3 ;这个应该是wince 5.0下决定在哪个阶段启动device.exe的表项   RegistryFlagsdword:1   ;这个就是设置注册表每次改动后自动flush到system.hv   ;SystemHiveInitialSizedword:19000   ; Initial size for hive-registry file    ; END HIVE BOOT SECTION      ;#####################################################################################################   ; HIVE BOOT SECTION   ; Add BinFS to partition table    [HKEY_LOCAL_MACHINE/System/StorageManager/PartitionTable]            21BINFS       [HKEY_LOCAL_MACHINE/System/StorageManager/BINFS]            FolderBINFS            FriendlyNameBin FileSystem            Dllbinfs.dll            ; MountFlags:            ; 0x10 specifies that this file system is to be mounted as an external            ;      ROM filesystem shadowing the /windows directory            ; 0x1 specifies that the mountpoint /BINFS is to be hidden            ;            MountFlagsdword:10             BootPhasedword:0       [HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/SMFlash]    DriverPathDrivers//BlockDevice//SMFlash    LoadFlagsdword:1    MountFlagsdword:11    BootPhasedword:0      [HKEY_LOCAL_MACHINE/Drivers/BlockDevice/SMFlash]    PrefixDSK    DllBIBDrv.dll    Orderdword:0    Ioctldword:4    ProfileSMFlash    FriendlyNameSamsung Flash Driver    MountFlagsdword:11    BootPhasedword:0      ; Bind BINFS to the block driver   [HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/SMFlash]    DefaultFileSystemBINFS    PartitionDrivermspart.dll    AutoMountdword:1    AutoPartdword:1    MountFlagsdword:11    FolderResidentFlash    NameSamsung Flash Disk    BootPhasedword:0  ;要在第一阶段加载binfs          [HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/NANDFLASH/BINFS]       MountHiddendword:1       MountAsROMdword:1      [HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/SMFlash/Filters/CacheFilt]       Dllcachefilt.dll       LockIOBuffersdword:1      ; END HIVE BOOT SECTION      ;#####################################################################################################   ;1st fat area   ; HIVE BOOT SECTION   [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/FlashDisk]      PrefixDSK      DllONDisk.dll      Orderdword:1   ;   Indexdword:1      IClassmulti_sz:{A4E7EDDA-E575-4252-9D6B-4195D48BB865}      ProfileFlashDisk      BmlVolumeIddword:0 ; BML volume ID 0      BmlPartitionIddword:8 ; BML parition ID PARTITION_ID_FILESYSTEM      WMRStartSectordword:0      WMRNumOfSectordword:40000 ; 128MByte   ;   Flagsdword:11000 ; do not load again in boot phase 2 ;   IF IMGHIVEREG     Flagsdword:1000 ; do not load again in boot phase 2 ;   ENDIF IMGHIVEREG     [HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk]       DefaultFileSystemFATFS       PartitionDrivermspart.dll       NamePocketMory MLC Disk   ;    FolderSys       AutoMountdword:1       AutoPartdword:1       AutoFormatdword:1   ;    MountFlagsdword:0   ;    Ioctldword:4   IF IMGHIVEREG     MountAsBootabledword:1  ; for Hive-based registry,这个是wince 5.0下指定这个分区保存system.hv的关键 ENDIF IMGHIVEREG      [HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/FlashDisk]       DriverPathDrivers//BuiltIn//FlashDisk       ; LoadFlags 0x01 load synchronously       LoadFlagsdword:1       BootPhasedword:0      [HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk/FATFS]       FriendlyNamePocketMory FAT FileSystem   ;    Dllfatfsd.dll       Flagsdword:00000014   ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN       FolderSys       FormatExfatdword:1   ;    EnableCacheWarmdword:0       CheckForFormatdword:1       EnableWriteBackdword:1       EnableCacheWarmdword:0      [HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/FlashDisk/Filters/CacheFilt]      Dllcachefilt.dll      LockIOBuffersdword:1     [HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk/FATFS/Filters/CacheFilt]       Dllcachefilt.dll       LockIOBuffersdword:1   ; END HIVE BOOT SECTION ;##################################################################################################### 3.打开SMDK6410/SMDK6410.bat,打开xip开关   set IMGMULTIXIP1    4.对FILES/config.bib进行修改 ;下面这个layout可以随便改以适应自己的系统。要注意layout的规律哦。 #define    CHAIN_ADDRESS    806C0000 #define    CHAIN_LENGTH     00004000 ;----------------------------------------------------- ;   NAME        ADDRESS         SIZE            TYPE ;-----------------------------------------------------     XIPKERNEL   80100000        005c0000        RAMIMAGE     CHAIN       $(CHAIN_ADDRESS)    $(CHAIN_LENGTH)    RESERVED    NK          80700000        03F00000        NANDIMAGE     RAM         80700000        05600000        RAM     FLASH       92000000  00100000  RESERVED     5.对FILES/platform.bib进行修改  把所有的NK都更改为$(XIPKERNEL),为了在xipkernel启动就把外围设备驱动load到内存要不会造成外围设备用不了。 6.加入最小系统文件。要加入的文件有: //必须的有  nk.exe,  coredll.dll,  filesys.dll,  exfat.dll,  diskcache.dll,  fatutil.dll,  binfs.dll,  fsdmgr.dll,  mspart.dll,  ceddk.dll,  cachefilt.dll,  kernel.dll,  k.coredll.dll,  fpcrt.dll,  k.fpcrt.dll,  romfsd.dll,  device.dll,  udevice.exe,  devmgr.dll,  kitl.dll,  pm.dll,  devmgr.dll,  wince.nls,  initobj.dat,  ONDisk.dll,  initdb.ini,  boot.hv,  //推荐继续添加的  busenum.dll,  servicesEnum.dll,  servicesd.exe,  services.exe,  servicesStart.exe,  oalioctl.dll, 添加方法有三种:   1.编译一次工程然后修改build下的common.bib,把对应的都改为XIPKERNEL,MAKE IMAGE.(注意:只能用make image)   2.编译一次工程然后修改build下的ce.bib,把对应的都改为XIPKERNEL,在VS2005中project-open realease...运行    romimage ce.bib(注意:只能这样用)   3.把附件中的processbib.exe,preromimage.bat加入到FILES/下build 该工程即可,编译一次后也可以直接make image.推荐这个方法一劳永逸而且不容易操作出错哦。    7.用eboot烧写xip.bin.
http://www.pierceye.com/news/750875/

相关文章:

  • android 做电子书下载网站网络热词作文
  • 网络网站销售龙岩建筑网
  • 专门找事做的网站iis7 wordpress伪静态规则
  • 做字体的网站济宁网站建设 济宁智雅
  • 工程门户网站建设怎样制作表白网站
  • 手机如何创建个人网站上海 .net网站建设
  • 小程序app软件定制开发首页排名优化公司
  • 红酒 专业 网站建设视频网站后台
  • 宁波网站建设58同城百度突然搜不到网站
  • 网站开发技术和seo的联系wordpress发邮件卡主
  • 网站开发安全模块方案网站运营方案怎么写?
  • 章丘网站制作手机网站 微信平台
  • 自定义功能的网站做坏事网站
  • 做农村电子商务的网站有哪些wordpress批量修改引用网址
  • 简述建立网站的步骤内蒙古建设监理协会网站
  • 网站上传格式工信部 网站备案查询
  • 网站开发怎么让别人看到网站设计主流尺寸
  • 都匀经济开发区建设局网站华宇网站建设
  • 南谯区住房和城乡建设局网站大连百度推广优化
  • 东莞设计网站公司被邀请做刷客会不会碰到钓鱼网站
  • 阿里云服务器多个网站南充网络推广
  • 电子商务网站建设规划设计任务书wordpress 有道云笔记
  • 广州市地铁站地图潍坊网站建设方案
  • 买一个网站服务器多少钱企业 怎么建交互网站
  • 国产网站开发工具公司福建新闻最新消息
  • 云主机和云虚拟主机优化教程网站推广排名
  • 佛山网站建设开发二维码生成器永久免费版下载
  • 衡水网站建设衡水网站建设网站建设南宁
  • 汽车网站推广策划方案wordpress又拍云cdn伪静态
  • 用dw建立网站网站设计师要学什么