使用KITL的详细教程

news/2024/7/5 18:54:23 标签: 三星, flash, dll, 文档, 工作, c
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

 在几个以前࿰c;我曾经玩过一下子KITL࿰c;但是那时候什么都不懂࿰c;根本没有了解KITL是什么东西࿰c;更别说是class="tags" href="/tags/GongZuo.html" title=工作>工作原理了࿰c;这段时间都是在调试一些键盘等本机驱动(系统启动时候就启动的驱动)࿰c;这个驱动不能使用驱动调试助手来调试࿰c;所以非常郁闷࿰c;每次都要打包烧写内核࿰c;不仅效率非常低࿰c;而且烧写过程很容易使电脑重启࿰c;哈哈࿰c;搞多几次࿰c;估计硬盘会严重受损。调试本机驱动࿰c;非请KITL这个大神不可!

     现在我们就来一步一步操作吧。

     首先࿰c;修改BSP一些配置。

c="http://images.cnblogs.com/cnblogs_com/wogoyixikexie/KITL教程/BSP设置.JPG" border="0" alt="" width="957" height="346" />

     然后࿰c;修改编译设置࿰c;这个很关键࿰c;否则根本调试不了。之后就可以编译了。当编译出一个KITL内核以后࿰c;烧写进class="tags" href="/tags/FLASH.html" title=flash>flash以后就不用再烧写了࿰c;KITL最大方便就是如此。

c="http://images.cnblogs.com/cnblogs_com/wogoyixikexie/KITL教程/编译设置.JPG" border="0" alt="" width="541" height="526" />

     哦࿰c;还少了个连接设置࿰c;这个也是缺一不可࿰c;否则KITL也是无法attach device成功的。

c="http://images.cnblogs.com/cnblogs_com/wogoyixikexie/KITL教程/连接设置.JPG" border="0" alt="" width="536" height="485" />

     还有一个重要步骤࿰c;就是执行target——》Release Directory Modules

 

c="http://images.cnblogs.com/cnblogs_com/wogoyixikexie/KITL教程/加入DLL.JPG" border="0" alt="" width="296" height="250" />     

     现在࿰c;我们来做个实验࿰c;看看KITL是否真的起作用了。修改PowerButton驱动࿰c;在初始化函数中加入了一个打印信息。看看这样是否真的能打印。Come on!

    c="http://images.cnblogs.com/cnblogs_com/wogoyixikexie/KITL教程/修改代码.JPG" border="0" alt="" width="701" height="384" />

     编译PowerButton驱动࿰c;然后执行attach device连接࿰c;就会停在上图了࿰c;并且会在PB打印信息窗口看见真的新增加的信息࿰c;看来确实成功了。不过在这里要提醒的是࿰c;这个断点必须在编译驱动之前设置࿰c;以前我我在attach device之后设置࿰c;真是贻笑大方!

     c="http://images.cnblogs.com/cnblogs_com/wogoyixikexie/KITL教程/打印信息.JPG" border="0" alt="" width="542" height="287" />

     哈哈࿰c;寄存器的值都可以显示出来。

     c="http://images.cnblogs.com/cnblogs_com/wogoyixikexie/KITL教程/查看寄存器值.jpg" border="0" alt="" width="376" height="313" />

     OK!KITL调试驱动验证完毕。谢谢CSDN众多网友࿰c;尤其是Ricky_hu࿰c;sunrain_hjb࿰c;gsymichael 等。这些都是雕虫小技࿰c;但是很多人都不能拿到class="tags" href="/tags/SanXing.html" title=三星>三星的操作class="tags" href="/tags/WenDang.html" title=文档>文档࿰c;所以我就来献丑了。在这里我要提醒的是࿰c;修改一次驱动就要启动一次设备࿰c;否则是不行的࿰c;这是KITL的鸡肋࿰c;不过像本机驱动这种东西他就是在启动的时候运行的࿰c;所以用KITL来调试本机驱动是上上之选。对于流驱动的调试࿰c;我觉得万不得已不要用使用。因为KITL之后系统会运行很慢࿰c;并且同步软件不能连接࿰c;还是使用驱动调试助手控制注册表比较适合。

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

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

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

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

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

     注意事项:sources文件指定生成的DLL名字要和BIB文件汇中的加载名字一致࿰c;否则不能产生断点的。例如class="tags" href="/tags/SanXing.html" title=三星>三星的自带触摸屏驱动就是这样࿰c;我刚开始没有修改之前是

 touch.class="tags" href="/tags/DLL.html" title=dll>dll      $(_FLATRELEASEDIR)/s3c2440a_touch.class="tags" href="/tags/DLL.html" title=dll>dll                 NK  SH
这样是不行的࿰c;后来我改成:

 touch.class="tags" href="/tags/DLL.html" title=dll>dll       $(_FLATRELEASEDIR)/touch.class="tags" href="/tags/DLL.html" title=dll>dll                 NK  SH

就行了。

     支持KITL的 2440 BSP下载地址http://d.download.csdn.net/down/1115341/gooogleman

 

转载请标明:作者wogoyixikexie@gliet.桂林电子科技大学一系科协࿰c;原文地址:http://www.cnblogs.com/wogoyixikexie/、http://www.armce.com/bbs/index.php(或者我在CSDN的博客:http://blog.csdn.net/gooogleman——如有错误࿰c;请到留言指出;如果你有更加好的方法࿰c;也请在http://www.armce.com/bbs/index.php发帖指点࿰c;我会感激你的批评和分享。
cle>

http://www.niftyadmin.cn/n/1404362.html

相关文章

#pragma data_seg用法总结

#pragma data_seg用法总结2009-02-06 13:05Windows在一个Win32程序的地址空间周围筑了一道墙。通常,一个程序的地址空间中的数据是私有的,对别的程序而言是不可见的。但是执行STRPROG的多个执行实体表示了STRLIB在程序的所有执行实体之间共享数据是毫无问…

愿天下有情人都是失散多年的兄妹 (25 分)

愿天下有情人都是失散多年的兄妹 (25 分) 呵。大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、父母、祖父母、曾祖父母、高祖父母)则不可通婚。本题就请你帮助一对有情人判断一下,他们究竟是否可以成…

strcpy()、memcpy()、memmove()、memset()的实现

strcpy(), 字符串拷贝. char *strcpy(char *strDest, const char *strSrc) { assert((strDest!NULL) && (strSrc !NULL)); char *address strDest; while( (*strDest * strSrc) ! \0) NULL ; return address ; } memcpy, 拷贝不…

自定义运算符与仿函数

如何定义运算符 什么是仿函数 #include<iostream> #include<ostream> #include<map> #include<set> using namespace std; struct node{int x;node(int x0):x(x){}; }; struct S{private:int a,b;public:S(int a0,int b0):a(a),b(b){};int operator …

如何快速编译系统(用鼠标操作)

此前&#xff0c;网上有不少介绍使用命令行快速编译系统的文章&#xff0c;但是在命令行下不方便。今天正好有个同学问我关于当修改驱动的时候是否需要再次全部编译系统&#xff0c;于是我就趁着这个机会&#xff0c;这几张图&#xff0c;写个博客——如何快速编译系统&#xf…

Nsis的自我理解

Nsis 脚本语言的理解 1. Nsis 语言的理解 NSIS脚本语言比较独特&#xff0c;类似于宏汇编&#xff0c;语法有些像C语言&#xff0c;感觉是纯面向过程的东东。功能还算强大&#xff0c;能调用Windows API&#xff0c;支持用动态链接库形式的扩展。能调用和创建内核对象。例如可用…

整型关键字的散列映射

整型关键字的散列映射 给定一系列整型关键字和素数P&#xff0c;用除留余数法定义的散列函数将关键字映射到长度为P的散列表中。用线性探测法解决冲突。 输入格式: 输入第一行首先给出两个正整数N&#xff08;≤1000&#xff09;和P&#xff08;≥N的最小素数&#xff09;&am…

wince2秒快速启动TOC分析(作者:gliethttp)

为什么29M的wince内核nk.nb0文件在2秒钟就能快速启动&#xff0c;如果你用汇编设计一个从NAND单纯拷贝29M nk.nb0的快速程序&#xff0c;你会发现用200MFCLK的2410或者用400MFCLK的2440都至少需要十几秒&#xff0c;那为什么ce能够启动这么快呢&#xff0c;有什么加速算法吗&am…