• 初识KITL


    KITL(Kernel Independent Transport Layer)是基于Windows CE平台的一种软件技术,开发商基于它可以很容易地支持各种调试功能。因为Windows CE的调试是一种远程调试,所以开发工作站(运行PB的机器)和设备端必须要有相应的通信通道,不同的硬件平台会有不同的通信硬件,这样会增加开发的难度。KITL的目的就是将硬件层和通信协议层分开,开发商只要根据相应的API实现控制通信硬件的代码就可以实现KITL
     

    KITL要工作必须要具备两个条件,一是在开发工作站上要运行PB(Platform Builder),另外在Windows CE的OAL层要实现支持KITL的代码。如下图:
     

     KITL有两种模式:主动和被动模式。主动模式是指系统在启动的过程就要求和开发工作站建立KITL连接,而且这个连接必须一直保持,否则系统会不正常,它主要适用于开发工程师作调试;被动模式不要求在启动阶段就建立KITL连接,只有当系统出现异常,而且没有相应的处理器处理这个异常的时候,才会请求建立一个KITL连接,这种模式主要适用于测试人员或者是系统已经比较稳定的情况,这样可以方便开发人员去跟踪问题。
     

    目前KITL支持的传输方式有以下几种:

    • 串口: 优点是容易实现,但速度太慢

    • 网卡: 优点是快,容易实现。但一般的嵌入式设备都不支持网卡

    • 基于USB仿真的串口: 优点是快,而且现在的嵌入式设备都支持USB。但是PB不支持通过它下载

    • 基于USB仿真的网卡: 因为在开发工作站端看到的是一个网卡,所以相比USB仿真的串口,PB支持通过它下载image

    基于KITL可以提供很多调试服务,除了微软已经提供的,开发商也可以自己开发:
    • 代码调试: 可以调试kernel和普通的application

    • 远程工具: PB自带的一些远程工具会通过KITL和设备通信,比如编辑注册表,测试系统性能,spy窗口消息

    • Release文件系统: 如果Windows CE要加载某个文件,但image里又没有。系统会通过KITL从开发工作站的release目录下加载该文件。这样就可以提高开发效率。比如开发人员在调试一个driver,他就可以不要将该driver放到os image里,也就不要每次修改driver后都下载整个os image,因为系统会自动从release目录下加载最新的该driver

    KITL的实现,可以提高开发效率,有利于开发出更稳定的产品。所以开发商在产品的设计初期就要考虑怎样支持KITL,要有相应的通信硬件,要开发相应的代码。

  • 相关阅读:
    Python基础----内置函数补充、匿名函数、递归函数
    为arm-linux开发板挂载基于nfs的根文件系统
    vsftp上传553 Could not create file错误解决
    在itop4412移植linux4.14和设备树遇到的问题及解决
    itop4412uboot中支持usbhub
    上下界网络流
    lca(最近公共祖先(在线)) 倍增法详解
    lca(最近公共祖先(离线))
    最小费用最大流
    spfa模板+讲解
  • 原文地址:https://www.cnblogs.com/hbt19860104/p/1045190.html
Copyright © 2020-2023  润新知