kitl协议包简述

英文版参照网址http://blogs.msdn.com/ce_base/archive/2006/06/27/648747.aspx

下面是翻译过来的,可能有错哦,呵呵

KITL概述

KITL——Kernel Independent Transport Layer,CE驱动调试的基本调试协议。KITL提供

1、  传输初始化

2、  数据流连接和断开

3、  数据流包的请求

4、  丢包、重传的处理

5、  给应用程序提供接口

 

首先我们来看看KITL包,了解KITL数据和控制包的区别。这是KITL协议和解决问题的基础知识。

 

KITL

所有KITL包的格式都一样,头部加上数据。头部定义了包的类型和数据块。打开一个KITL头,你会看到

 

1、  协议标示

固定的字符串:EDBG(45 44 42 47)

 

2、  流标示

每种KITL流都有一个的字节来保存。有4中预先定义好的流,其他位置保留给应用使用。

0x0:调试消息

0x1:目标控制

0x2:内核调试器

0xff:协议管理的控制流

0x3-0xfe:保留给应用程序使用

 

当一个流通过KITLRegisterClient注册后,这些流标示,会从KITl传递给应用程序。应用使用这些ID通过KITLSend和KITLRecv从特定流中,进行数据包的发送和接受。

 

包类型

一个字节来表示包的类型

0x1:设备发送过来的消息

0x2:这帧是NACK

0x4:这帧是ACK

0x8:重设申请号为零

0x10:相应KITL的控制消息

 

包申请号

定义了一个字节,存放了包申请号,从0到255轮转。当255的包申请号发送了,那么下一个包申请号就会恢复到数字0。桌面和设备都有自己的申请号,那就允许异步数据传输,一边可以比另一边发送更多的数据包。

 

数据命令

KTIL真正的数据,是紧随着头部描述。大量的原始数据依赖以下命令

0-4:现在不使用,保留的

0x5:设备reset

0x6:服务设置

0x7:服务数据

0x8:内核调试暂停

0x9:传输设置

0xa:时间包

 

现在就可以根据这些格式,来看看KITL包的内容。

1、  KITL传输设置包:

当KITL启动后,从设备发送过来的第一个包。它发送到特定端口(port 981),通过subnet广播出地址。PB会不时的侦探设备的响应,通过host的配置消息包发送回应。接着设备和桌面通过打开一个KITL通道来建立联系,之后的通讯过程都是通过这个通道来进行。如下图绿色标示的,是设备通过981的端口发送传输设置包的内容。网络包包括了设备名字(这里是CEPC37480)、设备IP(9D 38 B2 12)和设备UDP端口(0x3D5)等内容。桌面通过这些信息,来打开通道。

00000020                           45 44 42 47 FF 00          EDBG..

00000030  00 09 20 00 30 00 43 45 50 43 33 37 34 38 30 00 ....0.CEPC37480.

00000040  00 00 00 00 00 00 9D 38 B2 12 00 11 95 28 92 68 .......8.....(.h

00000050  03 D5                                           ..             

 

2、  KITL服务设置包:

设备和桌面都会发送这样的包。当一个服务(KITL流)开始时,设备和桌面都需要应答对方的服务设置包,下面是设备发送过来的一个DBGMSG的服务包。KITL头用绿色标示,其他是设置的数据。这是从设备(0x01)发送过来的一个控制包(协议标示后面是0xFF),使用申请号0x00(流还没连接),包的命令是0x06(服务设置)。

00000020                           45 44 42 47 FF 01           EDBG..

00000030  00 06 01 44 42 47 4D 53 47 00 33 37 34 38 30 00 ...DBGMSG.37480.

00000040  00 00 00 00 00 00 9D 00 10 00                   ..........

 

3、  服务设置包的应答:

下面是一个服务设置包的应答包,头部标示为绿色。这里留意包类型变成了0x10(控制包的响应),其他部分和服务设置包一样。这个包是桌面发送给设备的,当设备接受到后,DBGMSG的流就连接起来了。这时,设备的应用程序可以开始发送调试信息给桌面。注意,这个流要在桌面发送相似的设置包后,得到响应了,才是完全连接好。

00000020                           45 44 42 47 FF 10           EDBG..

00000030  00 06 01 44 42 47 4D 53 47 00 B8 A9 FF 02 A0 F9 ...DBGMSG.......

00000040  FF 02 18 6A 4A 45 02 FF 00 00                   ...jJE....  

 

4、  KITL数据包:

下面是一个设备发出的RELFSD包,KITL头用绿色标示,其他部分的数据留给Relsd流解释。这里流ID是0x1,类型是0x01,表示是设备发出的包。申请号是0xA4,包的命令是0x07,表示是服务的数据包。这是由设备的shell.exe发送给桌面的,检查是否设备上有命令需要运行。

00000020                           45 44 42 47 01 01           EDBG..

00000030  A4 07 AA 55 55 AA 04 00 0D 00 FE FF FF FF 01 00 ...UU...........

00000040  00 00 F2 5A A5 0A 1A                            ...Z...        

 

5、  KITL的ACK包:

从桌面发送到设备的。下面包的标示设置为0x01,类型是应答0x04,包申请号是0xA4,0x07是数据包的命令。如果是设备应答桌面的包,类型应该是0x5。如果是桌面应答设备,类型就是0x4.

00000020                   45 44 42 47 01 04                  EDBG..

00000030  A4 07 00 00 00 00 00 00 00 00 00 00             ............ 

 

6、KITL的timer控制包:

大约每2每由桌面发送给设备。当设备在内核调试器中停止运行了,设备内的时间也就停止了。与时间相关的操作也不能工作,包括KITL的逻辑时间。这情况下,用这个包作为标志,重发丢失的包到桌面。

00000020                   45 44 42 47 FF 00                   EDBG..

00000030  00 0A 00 00 00 00 00 00 00 00 00 00             ............

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

敏捷转型中的看板

Scrumban最初是一种从Scrum向精益看板转换的机制,现在它已经支持双方向的转换,并可以应用到项目和精简BAU(常规商业运营)工作流。能够实施Scrum和精益方法的相互转换自然是很好的。但当你的客户不具备实践这些方法的条件时,你如何去帮助他们实…

GDIPlus灰度化图像

将RGB彩色图像转为8位的索引颜色 先定义一个宏 // Greyscale conversion #define GREY(r, g, b) (BYTE)(((WORD)r * 77 (WORD)g * 150 (WORD)b * 29) >> 8 //#define GREY(r, g, b) (BYTE)(((WORD)r * 169 (WORD)g * 256 (WORD)b * 87) >> 9)// Grayscale, 将…

SystemVerilog文本值和数据类型

SystemVerilog文本值和数据类型 1、增强的文本值赋值 给一个向量赋予文本值 在Veirlog语言中,一个向量可以很容易地赋值为全00、全x(不确定)或全z(高阻态)。 parameter SIZE 64; reg [SIZE-1 :0] data; data 0;//…

从IC设计来看Trace32的用途

通常的芯片设计,在开发阶段都会先在一个包含硬IP核的FPGA上进行,通过使用硬件描述语言HDL来对FPGA进行编程,这样既能加快设计速度又能够节省成本,最重要的是可以在芯片开发阶段发现可能存在的HW问题。一般的设计思路是首先将各个外…

使用GDI+保存图像为8bpp的灰度图像

使用GDI保存图像为8bpp的灰度图像,GDI真的有些特殊。。。。。 // Greyscale conversion #define GREY(r, g, b) (BYTE)(((WORD)r * 77 (WORD)g * 150 (WORD)b * 29) >> 8) // .299R .587G .114B //#define GREY(r, g, b) (BYTE)(((WORD)r * 169 (WORD)…

对象类型和数据类型

对象类型和数据类型 Verilog数据类型 Verilog语言具有针对硬件的变量类型和线网类型。这些类型具有特定的仿真和综合语义,表示芯片或系统中的实际连接行为。 (1)Verilog的reg、integer和time变量的每一位都有四种逻辑:0、1、Z、X…

尺度空间(Scale space)理论

尺度空间方法的基本思想是:在视觉信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得不同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘图像的本质特征。尺度空间方法将传统的单尺度视觉信息处理技术纳入尺度不断变化的…

[转] Windows CE 6.0 启动过程分析

看到这么好的文章,小郭觉得不转载就是天理不容,转了!!!! *************************************************************************************** 在Windows CE 6.0中,内核(Ke…

数据类型规则的放宽

数据类型规则的放宽 SystemVreilog放宽了使用变量的限制 SystemVreilog放宽了变量的使用规则,大大简化了模型中数据类型的使用。在SystemVreilog中共,任何数据类型的变量都可以通过下列方式赋值,但只能采用其中的一种方式。 (1&a…

真实,让文学回到原点:关于非虚构写作的思考

任何一种文学主张,其实都是先有实践,而后再有理论和命名。“非虚构写作”也是如此。如果大胆猜想,“非虚构写作”可能要追溯到远古的口传心记和结绳记事。当时的人类记录下身边发生的事情,应该就是非虚构,而口头讲述的…

4位16色灰度图像处理

定义几个辅助的宏,如下。 // 拆分合并BYTE #define HIBITS(w) ((BYTE)((((BYTE)(w)) >> 4) & 0xf)) #define LOBITS(w) ((BYTE)(((BYTE)(w)) & 0xf)) #define MAKEBITS(a, b) ((BYTE)(((BYTE)(((BYTE)(a)) & 0xf)) | ((…

[转] 常见WinCE启动失败原因分析

*********************************************** 一般情况下,为设计中的IC开发SW方案,难免会碰到Bootloader/EBoot/OS启动失败的情况,对于Bootloader和EBoot,由于源代码很少,直接使用Trace32调试是最佳方法&#xff…

树莓派安装mariadb redis

安装软件 sudo apt install mariadb-server mariadb-client sudo apt install redis 二. 配置 1, mariadb 配置 配置远程访问 maridb configuration: sudo mysql_secure_installation # 设置root密码 vim.tiny mariadb.conf.d/50-server.cnf # 设置去除本地绑定 #bind-addre…

Google云服务降价,整合持续集成工具,支持Windows和托管虚拟机

本周二,Google举行了云平台的现场活动(点击查看视频记录),展示了一系列新特性、改进和全新定价模型。\u0026#xD;\n定价\u0026#xD;\nGoogle认为,云计算价格应该跟随硬件领域的摩尔定律,而且在过去数年间硬件…

静态和自动变量

静态和自动变量 自动变量–也可以称为动态变量,主要是用来描述在测试程序、抽象系统级、交易级或总线功能模型中的验证程序。自动变量的另一个用途就是编写可重入的任务,当一个任务的前一次调用仍然在执行时,可以再次对其调用。 自动变量也允…

图像拉普拉斯金字塔融合(Laplacian Pyramid Blending)

转摘的&#xff0c;修改了下程序&#xff0c;图像融合看不太懂 。。。。http://blog.csdn.net/abcjennifer/article/details/7628655#comments // 转摘的别人的程序 // #include <stdio.h> #include <cv.h> #include <cxcore.h> #include <highgui.h>…

[转]GIS简介

************************************************** 最近论坛上经常有人讨论GIS&#xff0c;特意从别人的blog中转了一篇GIS简介的帖子************************************************** 地理信息系统(GIS,Geographic Information System)是一门用计算机来研究地理的学科…

debug设计

debug设计 会用到debug设计的阶段 (1)RTL级设计仿真 (2)实施后的设计模拟 (3)在系统调试 使用网表插入调试探测流动 (1)最高级别是一个简单的向导,用于创建和配置集成逻辑分析仪 (ILA)内核会根据选定的一组网络自动进行调试。 (2)下一级是主调试窗口,允许控制单个…

ASA 9.21 in Vmware Workstation 10

There is old post “ASA 8.02 in Vmware Workstation “ in this blog posted on Dec 2011. Anothe post “How to Make your own ASA 8.42 in VMware”. Here are all related posts in this blog: ASA 8.02 in Vmware WorkstationASA 8.42 in VMware WorkstationASA 9.21 i…

MMU及PTS说明

MMU与PTS表格 最近在FPGA上仿真调试Virgo&#xff08;基于ARM11的一款处理器&#xff09;芯片。MMU部分总是出错&#xff0c;具体的现象是查看物理地址和虚拟地址的映射时候芯片经常会挂掉。先是怀疑MMU的寄存器配置有问题&#xff0c;后来又怀疑MMU映射使用的PTS表格有问题&a…