摘要:
随着USB设备的不断增加,我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。但是对于很多初学者来说,存在以下三个困难: 一是对WinCE的驱动程序结构了解得太少,没办法得心应手的专注于驱动程序的开发工作; 二是对WinCE自带的USB驱动程序的例子没有弄懂,看到一大堆文件夹结构和源程序思维混乱; 三是几乎没有什么中文的参考资料,不知如何下手。 第三条是很多开发人员都遇到的,我也一样,很多朋友问我有没有什么资料,我也只能说抱歉,因为我也同样有这个问题,一切都靠自己的黑暗中摸索,因此本文不谈第三条。 第一条是可以找到资料的,如《Windows CE .NET系统分析及实验教程》,因此本文 阅读全文
摘要:
一.实现multbin 1.首先修改config.bib 比如:#elif defined IMGMULTIBIN; NAME START ADDR SIZE TYPE; ---------------------------------------------------------------- NK 80220000 007DE000 RAMIMAGE SHELL 809FE000 00100000 RAMIMAGE APPS 80AFE000 00100000 RAMIMAGE CHAIN 80BFE000 00002000 RESERVED ; XIP chain info R 阅读全文
摘要:
在Windows CE 6.0中,内核(Kenerl)和OEM代码被分成oal.exe、kernel.dll和kitl.dll三个部分,其中启动代码(startup)和OAL层的实现部分不再与内核链接生成NK.exe,取而代之的是启动代码(startup)和硬件相关且独立于内核的OAL层的实现部分编译成oal.exe,而与内核相关且独立于硬件的OAL层代码包含在kernel.dll中;内核无关传输层(KITL)的支持代码从OAL层分离出来编译成kitl.dll。 从表面上看,好像只是代码重新组合了一下,从帮助文档中BSP的移植过程看好像也是这么一回事,实际上,整个Windows CE 6.0内 阅读全文
摘要:
CE用*.bib來决定(reloade?) memory layout。一般的project中會包含兩個 image : bootloader , OS,所以Project中會有 boot.bib和config.bib。以下大略說明bib的內容:OEMAddressTable這個table宣告在code中,用來放置在mmu的位址轉換register中。所以這個Table的內容是 Virtual - Physical Address,格式:Virtual, Physical, SizeCE內的code address都是virtual address。藉由這個table,轉換到實體的addres 阅读全文
摘要:
对于嵌入式系统来说,一般都需要一个bootloader来下载和引导操作系统,常用的bootloader有eboot,uboot以及vivi等,对于windows ce来说最理想的bootloader当然是eboot(我也做了利用uboot下载和引导ce,以后我会介绍)。下面我就把自己开发eboot的过程和大家分享。eboot的流程可以如下图所示: 1)eboot和nk公用一段起始代码fw.s,所以我们会在eboot文件夹下的arm子文件夹找到fw.s,里面就一句话: INCLUDE ..\\..\\kernel\\hal\\arm\\fw.s,对于这段起始代码我就不详细分析,无非是建立好中断向 阅读全文
摘要:
记录注册表里的一些技巧,方便以后查阅,为了以后还要记录,姑且叫做(1).一\ 如何实现开机后,还未进入WINCE界面就运行其他程序假设应用程序为myapp.exe,那先将这个程序放到 SMDK2410\FILES\目录下.接着在PB中的 PLATFORM.BIB文件中的 FILES目录下添加myapp.exe$(_FLATRELEASEDIR)\myapp.exeNK U可将该文件打包进NB0中;再在PLATFORM.REG目录下添加以下内容,注意是90:[HKEY_LOCAL_MACHINE\init]"Launch90"="myapp.exe""Depend90"=hex:1e,00 ;然 阅读全文