您的位置:首页 > 其它

使用KITL的详细教程

2009-10-23 15:17 337 查看
引自:http://blog.csdn.net/gooogleman/archive/2009/03/18/4001784.aspx

8.3 usb serial kitl
1. To enable wince image with usb serial kitl,you must do the following:
>X:\WINCE500\PLATFORM\SMDK2440A\smdk2440a.bat file must have the following settings:
set BSP_NOCS8900=
set BSP_NOSERIAL=
set BSP_NOUSBFN=1
>X:\WINCE500\PLATFORM\SMDK2440A\Src\Inc\kitl_cfg.h file must have the following settings:
//#define KITL_SERIAL_UART0
//#define KITL_SERIAL_UART1
#define KITL_USBSERIAL
//#define KITL_ETHERNET 然后,修改编译设置,这个很关键,否则根本调试不了。之后就可以编译了。当编译出一个KITL内核以后,烧写进flash以后就不用再烧写了,KITL最大方便就是如此。
然后,进入platform settings,选择:
Enable CE Target Control Support(SYSGEN_SHELL=1)
Enable Eboot Space in Memory(IMGEBOOT=1)
Enable Kernel Debugger(no IMGNODEBUGGER=1)
Enable KITL(no IMGNOKITL=1)
哦,还少了个连接设置,这个也是缺一不可,否则KITL也是无法attach device成功的。
进入Target Device Connectiveity Options
Kernel Service Map:
Target Device:CE Device
Download:None
Transport:USB
Debugger:KdStub
还有一个重要步骤,就是执行target——》Release Directory Modules
点击Add:
加入PowerButton.dll
touch.dll
说明:这是必要步骤,否则没有办法在断点停住。
现在,我们来做个实验,看看KITL是否真的起作用了。修改PowerButton驱动,在初始化函数中加入了一个打印信息。看看这样是否真的能打印。Come on!
DWORD
HW_InitRegisters(
PPWR_CONTEXT pPWR)
{
DWORD retry =0;
v_pIOPregs =(volatile S3C2440A_IOPORT_REG *)VirtualAlloc(0, sizeof(S3C2440A_IOPORT_REG...))
....
RETAILMSG(1,(TEXT("caichang@#$KITL Test @ PowerButton \r\n")));
v_pIOPregs->GPFCON &=~(0X3<<0); // SET EINT0(GPF0) AS EINT0, and add breakpot here,执行attach device命令后停在断点处
v_pIOPregs->GPFCON &=~(0X3<<0);
...
return 0;
}
编译PowerButton驱动,然后执行attach device连接,就会停在上图了,并且会在PB打印信息窗口看见真的新增加的信息,看来确实成功了。不过在这里要提醒的是,这个断点必须在编译驱动之前设置,以前我我在attach device之后设置,真是贻笑大方!
5152 TID:c3dc4002 HW_Init : HW_InitRegisters+++++++XXXXXXX@@@@@@@@@@
5152 TID:c3dc4002 HW_Init : caichang@#$KITL Test @ PowerButton
哈哈,寄存器的值都可以显示出来。
OK!KITL调试驱动验证完毕。谢谢CSDN众多网友,尤其是Ricky_hu,sunrain_hjb,gsymichael 等。这些都是雕虫小技,但是很多人都不能拿到三星的操作文档,所以我就来献丑了。在这里我要提醒的是,修改一次驱动就要启动一次设备,否则是不行的,这是KITL的鸡肋,不过像本机驱动这种东西他就是在启动的时候运行的,所以用KITL来调试本机驱动是上上之选。对于流驱动的调试,我觉得万不得已不要用使用。因为KITL之后系统会运行很慢,并且同步软件不能连接,还是使用驱动调试助手控制注册表比较适合。

最后我要提几个问题,希望了解的朋友能留言告诉我。

1.编译出KITL内核运行后,触摸屏变得不准了,但是我的BSP之前是准确的,我想是KITL之后系统运行慢很多,导致AD采用速率慢了,所以必须重新校正。——后来发现,是没有得到更新的缘故。我也奇怪,我操作正常,但是却不理想。

2.还有我编译debug KITL会造成启动过程中,弹出对话框,无法正常启动,不知道是什么原因。现在我只能编译release 的NK,打印信息很少。

3.我本来可行的ZLG7290 的键盘驱动本来是可行的,但是现在按下毫无反映。莫非也是速度变慢,造成读的键盘的值有误?——后来发现,是没有得到更新的缘故。我也奇怪,我操作正常,但是却不理想。

请知道的朋友留言指点。谢谢。

注意事项:sources文件指定生成的DLL名字要和BIB文件汇中的加载名字一致,否则不能产生断点的。例如三星的自带触摸屏驱动就是这样,我刚开始没有修改之前是

touch.dll $(_FLATRELEASEDIR)\s3c2440a_touch.dll NK SH
这样是不行的,后来我改成:

touch.dll $(_FLATRELEASEDIR)\touch.dll NK SH

就行了。

支持KITL的 2440 BSP下载地址http://d.download.csdn.net/down/1115341/gooogleman
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: