
PB使用
文章平均质量分 77
勇敢飞
这个作者很懒,什么都没留下…
展开
-
解读WINCE 5.0 KITL代码流程
<br />摘要:KITL是PLATFORM BUILDER中的一个亮点,提供了和本地调试类似的断点、变量跟踪、内存查看等手段,如果没有KITL,嵌入式调试应该只能用串口打印消息来看了,工作效率大大下降。本文以实现最简单的SERIAL KITL为目的,就其实现代码进行跟踪调试,这些代码跨越了WINCE的PLATFORM、PUBLIC、PRIVATE三大主要目录,有些烦琐,不过只要能调通,一切工作和弯路都是值得的。我把调试经验和个人理解写下来,希望能帮助别人少走弯路。如果文章中有理解失当的地方,请不吝赐教。转载 2011-05-12 10:57:00 · 335 阅读 · 0 评论 -
WinCE5.0和WinCE6.0下编译选项介绍续
<br />目前,在国内Windows CE的开发可以说是一种Windows CE.NET 4.2、Windows CE.NET 5.0、Windows Embedded CE 6.0多版本共存的情况。由于Windows CE.NET 4.2成熟的技术、丰富的I/O设备驱动以及被大多数的开发人员所熟悉,所以目前仍是嵌入式产品开发的主流。Windows CE.NET 5.0是CE 4.2的升级版。Windows Embedded CE 6.0是目前微软最新的嵌入式操作系统,强大的操作系统功能,于桌面开发系统开转载 2011-05-12 13:40:00 · 735 阅读 · 0 评论 -
打印函数总结RETAILMSG(..) DEBUGMSG(..) NKDbgPrintfW(..)
<br /> 不管在WinCE5.0还是在WinCE6.0中,我们在调试驱动或者应用的时候都会用到打印函数。在驱动里面,我们可能会用DEBUGMSG(..),RETAILMSG(..),还有NKDbgPrintfW(..)。在我们使用这些打印函数调试我们的程序之前,我们需要实现串口打印功能。<br />在WinCE的BSP中,如果想调用DEBUGMSG(..)或者RETAILMSG(..)来从串口打印信息,必须在我们的BSP中的OAL层找到debug.c,在这个文件里面实现下面的4个函数:<br />voi转载 2011-05-12 14:25:00 · 534 阅读 · 0 评论 -
PB5.0 features/sysgen参数和ceconfig.h中宏定义的对应关系
<br />使用PB建立一个wince image之前先要建立一个workspace来控制除OEM BSP之外的所有的image的属性,包括的内容等等。这些内容主要是通过PB的catalog来管理的,通过PB的viewàcatalog打开的视窗,我们从全部的window ce的可选组件中选择我们需要的加入到workspace中,这样的话我们sysgen出来的image就具备了相应的功能。从catalog的视窗中,我们可以通过查询任意一个组件的属性来获得它唯一对应的一个sysgen_开头的变量。但是这些变量并转载 2011-05-12 14:11:00 · 562 阅读 · 0 评论 -
WinCE BSP工程文件pbcxml分析
<br />一.pbcxml分析<br />每一个BSP都有一个工程文件,里面描述了BSP的信息。<br />下面就来介绍一下BSP的pbcxml文件。<br />文件的大致格式应该是这样的:<br /><CatalogFile …><br /><FileInformation ….><br />….<br /></FileInformation><br /><BSP …><br />…<br /></BSP><br /><Item …><br />…<br /></Item><br /><Item …><转载 2011-05-12 13:44:00 · 415 阅读 · 0 评论 -
Mini2440 Ethernet KITL调试
<br />前几天把串口的KITL调试完成,就想着之前一直用网络KITL,而且串口KITL比较慢,所以就想也把2440的网络kITL架起来。<br />但是最终还是失败了,原因很简单,自己太菜了啊!好多问题知道的人都不屑于告诉你啊。哎...只能暂时搁置,磨刀去.....<br />这里先把这两天调试的过程记下了,方便后续继续进行。<br />步骤1.在PLATFORM/mini2440/Src/Inc/option.h文件中,打开Ethernet KITL开关。<br />// --- by custome转载 2011-05-12 13:12:00 · 526 阅读 · 0 评论 -
Platform Builder: Find the Source of a Data Abort; an Example
<br />Previously I posted instructions for finding the source of a data abort, see Windows CE: Finding the cause of a Data Abort. This will walk through those steps to find the source in a real application for. This is specific to Windows CE and later.转载 2011-05-12 14:32:00 · 579 阅读 · 0 评论 -
如何定位WinCE产生Data Abort错误的位置
<br />在调试WinCE程序的时候,有时候会碰到Data Abort的异常,系统会在调试控制台输出如下类似信息:<br />Exception 'Data Abort' (4): Thread-Id=03d3000e(pth=83a9e024), Proc-Id=00400002(pprc=81d48308) 'NK.EXE', VM-active=00fa000a(pprc=83a20ecc) 'explorer.exe'<br />PC=c0883660(s3c2440disp.dll+0x0000转载 2011-05-12 14:27:00 · 519 阅读 · 0 评论 -
Fix: time stamp mismatch on celog.rel
<br />Posting a full explanation of this error from CE 5.0.<br />Error: Mismatched time stamp on .rel file for module celog.dll requesting <br />kernel fixup. Valid .rel file is required for kernel fixups.<br />It happens if you set the IMGCELOGENABLE bui转载 2011-05-12 14:26:00 · 694 阅读 · 0 评论 -
WinCE中的Debug Zone调试
<br />在WinCE的开发环境中支持Debug Zones功能,通常也被称为调试域,通过它可以控制打印信息。当某个调试域被打开以后,在这个域中的打印信息就会被打印出来,如果某个调试域被关闭了,那么这个域中的打印信息就会被关闭。调试域是基于模块的,也就是说一个模块,可能是在一个驱动或者一个应用中都可以定义一个调试域,用来调试该模块。一个调试域最多可以包括16个域,一般在每一个模块中都会有一个全局变量dpCurSettings,该变量用于描述调试域的相关信息,它由一个模块名字,16个域的名字和一个掩码组成。转载 2011-05-12 14:24:00 · 365 阅读 · 0 评论 -
WINCE6.0下修改了PUBLIC下的源代码的快速编译方法
<br />因为WINCE的组件都是分成一个个LIB/DLL的形式存在,所以只要把单个LIB/DLL编译更新然后再重新连接NK就可以起到快速编译NK的方法。<br />不过由于NK里面的各个组件都是DLL的形式,这些DLL依存一些对应的LIB文件,所以要更新DLL就得先更新那些LIB的内容先,而WINCE60下的PUBLIC<br />下的组件一般是以LIB文件的形式存在,所以要快速编译PUBLIC下的源代码就先编译这些LIB文件,更新完这些LIB文件再更新依赖这些LIB文件的DLL<br />,也只有把D转载 2011-05-12 13:41:00 · 839 阅读 · 0 评论 -
WinCE6.0 R3的安装步骤
<br />很早以前装过一次R3,装完以后直接导致编译不过,当时也没找到解决办法,最后只能放弃,一直没再动它。这两天ZWF在调试程序的过程中发现了一个BUG,应用程序无法正确设置文件夹的隐藏属性。起初我以为是NAND驱动或者是注册表配置的问题。但从这两方面入手都没能成功。后来通过实验发现,在根目录下可以将文件夹设置为隐藏并且能生效,同样的代码在NAND目录下就不能正常工作。在根目录下设置为隐藏的文件夹,拷贝到另外任意一个目录下,会变成非隐藏的。据此猜测,可能是WinCE文件系统本身的BUG。于是找到09年全转载 2011-05-12 13:38:00 · 567 阅读 · 0 评论 -
PB 配置文件解析
<br />这篇文章主要讲解PB的配置文件。从用途方面分析,PB包含两种配置文件。分别是源码配置文件和镜像配置文件。下面分别讲解这两种配置文件。<br />一、源码配置文件<br /> 源码配置文件用于编译源码时使用。这里的源码是指Windows CE公开的源码,如驱动程序、系统应用程序等。PB在编译平台时将这些公开的源码即时编译并将编译链接后的文件复制到平台工程子目录里。记得前面讲过PB在开始编译时调用cebuild.bat批处理文件,cebuild.bat执行的一个步骤是针对_DEPTREES变量指定转载 2011-05-12 13:35:00 · 1238 阅读 · 0 评论 -
基于Windows CE的KITL技术
<br /> KITL(Kernel Independent Transport Layer)是基于Windows CE平台的一种软件技术,开发商基于它可以很容易地支持各种调试功能。因为Windows CE的调试是一种远程调试,所以开发工作站(运行PB的机器)和设备端必须要有相应的通信通道,不同的硬件平台会有不同的通信硬件,这样会增加开发的难度。KITL的目的就是将硬件层和通信协议层分开,开发商只要根据相应的API实现控制通信硬件的代码就可以实现KITL。 <br /> KITL要工作必须要具备两个转载 2011-05-12 13:13:00 · 415 阅读 · 0 评论 -
使用KITL的详细教程
<br /> 在几个以前,我曾经玩过一下子KITL,但是那时候什么都不懂,根本没有了解KITL是什么东西,更别说是工作原理了,这段时间都是在调试一些键盘等本机驱动(系统启动时候就启动的驱动),这个驱动不能使用驱动调试助手来调试,所以非常郁闷,每次都要打包烧写内核,不仅效率非常低,而且烧写过程很容易使电脑重启,哈哈,搞多几次,估计硬盘会严重受损。调试本机驱动,非请KITL这个大神不可!<br /> 现在我们就来一步一步操作吧。<br /> 首先,修改BSP一些配置。<br /> <br />转载 2011-05-12 13:12:00 · 448 阅读 · 0 评论 -
Kitl是怎样工作的?
<br />part1. <br />kitl初始化 <br />------------- <br />Kitl的加载于其他调试服务之前,以提供为这些调试服务发布调试信息和接收主机调试命令的的通道。通常kitl在系统HAL初始化工作完成后进行加载,MS建议在OEMInit中启动kitl。这样就可以使用NIC或者是serial/Pal作为kitl的物理传输介质。 <br />kitl的初始化由KitlInit完成,这部分代码主要负责:(to be fill later) <br />下面我们来看看kitl的转载 2011-05-12 13:10:00 · 498 阅读 · 0 评论 -
wince的build过程
http://www.study-bbs.com/thread-28856-1-1.html1:假如cebuild.bat没有设定 -qbsp,cebuild.bat根据环境变量_DEPTREES包含的模块依次调用cebldtree.bat xxx,__QBLDPASS=preproc。2:假如cebuild.bat没有设定 -q,cebldtree.bat调用cebuild1.bat public xxx,winceos会被换成了common。否则直接跳到步骤4。3:cebuild转载 2011-05-12 11:01:00 · 443 阅读 · 0 评论 -
PB是如何工作的
<br />http://chenyq2008.spaces.live.com/blog/cns!F73164AC8D0D8D50!252.entry PB是如何工作的?【使用pbxmlutils打开工程文件】 随便打开一个控制台窗口。先找到pbxmlutils工具所在的路径。比如我的: D:/Program Files/Microsoft Platform Builder/6.00/cepb/IdeVS/pbxmlutils.exe 然后就执行下面的命令, 这样就可以打开一个工程文件, 不需要vs2005转载 2011-05-12 10:59:00 · 709 阅读 · 0 评论 -
Printed Exception strings - what do all those flags mean?
<br />Printed Exception strings - what do all those flags mean?<br />Data Abort: Thread=9352cc9c Proc=90876ea0 'shell32.exe'<br />AKY=00000005 PC=03f74680(coredll.dll+0x00014680) RA=03257104(aygshell.dll+0x00037104) BVA=060000e0 FSR=00000007<br />AKY à "Ac转载 2011-05-12 14:29:00 · 516 阅读 · 0 评论