一种嵌入式终端的在线调试系统及方法

文档序号:6354802阅读:266来源:国知局
专利名称:一种嵌入式终端的在线调试系统及方法
技术领域
本发明涉及在线调试领域,特别涉及一种嵌入式终端的在线调试系统及方法。
背景技术
嵌入式应用领域中经常涉及到参数的调试和程序流程的调试。参数的调试有音频参数的调试、LCD驱动参数调试、Sensor参数调试、FM搜台时候信号门限的调试等等,流程的调试就是代码的执行顺序调试,这些驱动参数和代码的执行流程有着细腻的变化,微小的参数的改变或者是简单的两行代码的顺序互换会使得效果大不一样。随着电子技术的发展,嵌入式系统的广泛应用,嵌入式系统的代码也越来越复杂,代码越来越多,需要花费程序员大量的时间去编译下载。这些缺点,使得调试人员的工作效率低下,严重的影响了工程项目的进度,所以, 能在线调试这些参数,短时间内看到刚配置参数的结果,或者能够通过简单的操作,比如发一个AT命令到嵌入式目标模块就能够控制代码的执行流程,用最少的时间达到各项指标, 加快工程进度,提高生产效率,便是需要解决的问题。

发明内容
本发明的目的是提供一种嵌入式终端的在线调试系统及方法,以实现对嵌入式终端进行方便快捷的在线调试。一方面,本发明所述的一种嵌入式终端的在线调试系统,包括
PC调试设备,包括依次连接的UI程序模块、AT命令编解码第一模块、第一通信模块,所述UI程序模块接收调试命令并将其发送至所述AT命令编解码第一模块,所述AT命令编解码第一模块将调试命令编码为二进制AT命令帧并发送至所述第一通信模块;
连接设备,连接所述PC调试设备的第一通信模块并接收所述第一通信模块发送的二进制AT命令帧;
调试单元,设置于所述嵌入式终端,包括依次连接的第二通信模块、AT命令编解码第二模块以及命令执行模块,所述第二通信模块连接所述连接设备的输出端并将接收到的二进制AT命令帧输出至所述AT命令编解码第二模块进行解码,所述命令执行模块将解码后的 AT命令转化为功能函数并执行所述嵌入式终端的调试动作。所述AT命令编解码第一模块按照自定义的AT命令编码协议将所述调试命令编码成二进制AT命令帧,所述AT命令编解码第二模块依照所述自定义的AT命令编码协议对接收到的二进制AT命令帧进行解码。所述调试单元的命令执行模块适以将所述嵌入式终端的调试返回值发送至所述 AT命令编解码第二模块,所述AT命令编解码第二模块将所述调试返回值依次通过所述第二通信模块、连接设备、第一通信模块、AT命令编解码第一模块发送至所述UI程序模块进行显不。所述调试命令包括读寄存器指令、写寄存器指令、延时指令、读取状态指令。
另一方面,本发明提供一种嵌入式终端的在线调试方法,包括以下步骤 5. 1、建立PC调试设备,接收调试命令并将其编码为二进制AT命令帧输出; 5. 2、建立连接设备,用以接收中转所述步骤5. 1输出的二进制AT命令帧;
5. 3、在所述嵌入式终端中建立调试单元,对步骤5. 2中转过来的二进制AT命令帧进行解码,将解码后的AT命令转化为功能函数并执行所述嵌入式终端的调试动作。所述步骤5. 1中的PC调试设备,包括依次连接的UI程序模块、AT命令编解码第一模块、第一通信模块,所述UI程序模块接收调试命令并将其发送至所述AT命令编解码第一模块,所述AT命令编解码第一模块将调试命令编码为二进制AT命令帧并发送至所述第一通信模块。所述步骤5. 3中的调试单元,包括依次连接的第二通信模块、AT命令编解码第二模块以及命令执行模块,所述第二通信模块连接所述连接设备的输出端并将接收到的二进制AT命令帧输出至所述AT命令编解码第二模块进行解码,所述命令执行模块将解码后的 AT命令转化为功能函数并执行所述嵌入式终端的调试动作。以上步骤中,所述AT命令编解码第一模块按照自定义的AT命令编码协议将所述调试命令编码成二进制AT命令帧,所述AT命令编解码第二模块依照所述自定义的AT命令编码协议对接收到的二进制AT命令帧进行解码。所述调试方法还包括调试反馈的步骤调试单元的命令执行模块适以将所述嵌入式终端的调试返回值发送至所述AT命令编解码第二模块,所述AT命令编解码第二模块将所述调试返回值依次通过所述第二通信模块、连接设备、第一通信模块、AT命令编解码第一模块发送至所述UI程序模块进行显示。以上步骤中的所述调试命令包括读寄存器指令、写寄存器指令、延时指令、读取状态指令。采用本发明所述的一种嵌入式终端的在线调试系统及方法,本发明在嵌入式终端上内置了一个可以调试参数的功能模块,该模块使用自己的通信模块与PC调试设备的通信模块进行数据交互,PC调试设备A的指令可以在短时间内执行,并且程序员可以看到结果。传统的调试是修改代码中的参数,重新编译下载,然后验证效果。而在本发明中,程序员就不需要花费这些时间,工作效率大大提高。而且,本发明的扩展性能非常强,增加AT命令和功能函数,可以实现更多的在线调试功能。


图1是本发明所述在线调试系统的原理框图; 图2是所述的写目标模块OxOA寄存器的流程图; 图3是所述的读目标模块OxOB寄存器的流程图; 图4是所述的AT命令帧结构。
具体实施例方式下面结合附图和实施例进一步说明本发明的技术方案。参见图1,本发明所述的调试系统由PC调试设备A、连接设备B、设置在嵌入式终端的调试单元C组成,其中PC调试设备A通过连接设备B与调试单元C连接。本实施例中, AT命令编解码模块A2作为AT命令编解码第一模块,通信模块A3作为第一通信模块,AT命令编解码模块C2为AT命令编解码第二模块,通信模块C3作为第二通信模块。PC调试设备A包括UI程序模块Al,AT命令编解码模块A2,通信模块A3。UI程序模块Al负责接收程序员输入的调试命令,包括读寄存器指令,写寄存器指令,延时指令,读取状态指令等等。在LCD的调试中需要用到的写寄存器指令包括写命令寄存器指令和写数据寄存器指令。同时,UI程序模块Al还用来记录和显示已经操作过的命令和命令运行的状态等信息。AT命令编解码模块A2,负责将UI程序模块Al接收的调试命令按照自定义的AT 命令编码协议编码成二进制AT命令帧,二进制的AT命令帧发送到通信模块A3。AT命令编解码模块A2,也可以从通信模块A3获取返回的AT命令帧,把返回的结果、状态解析出来,发给UI程序模块Al显示。通信模块A3,负责将AT命令帧通过连接设备B发送到调试单元C和从连接设备B 上获取数据转发给AT命令编解码模块A2。通信模块A3有发送和接收功能,能够将二进制数据发送到连接设备B上,也可以获取连接设备B上面的数据。调试单元C包括通信模块C3、AT命令编解码模块C2、和命令执行模块Cl。通信模块C3,和通信模块A3有着相同的发送和接收功能。负责从连接设备B上获取数据转发给AT命令编解码模块C2,或者将AT命令帧通过连接设备B发送到PC调试设备 A0AT命令编解码模块C2,按照PC调试设备A使用的编码协议对AT命令帧进行解码, 并且将解码出来的AT命令发送到命令执行模块Cl ;也负责将命令执行模块Cl的执行结果按照自定义的AT命令编码协议编码成二进制AT命令帧,二进制的AT命令帧发送到通信模块C3。命令执行模块Cl负责将AT命令转化为功能函数执行,在LCD的调试中,需要用到的写寄存器指令,命令执行模块Cl收到写寄存器指令后就调用写寄存器指令,命令执行模块Cl收到读寄存器指令后就调用读寄存器指令,并且将程序的执行状态和结果返回到AT 命令编解码模块C2。整个过程可以通过“写目标模块OxOA寄存器的流程”和“读目标模块OxOB寄存器的流程”来理解。参见图2和图3,图2是写目标模块OxOA寄存器的流程,图3是读目标模块OxOB寄存器的流程。我们UI程序模块Al中输入“at write_reg OxOA 0x75”,就是往目标模块OxOA寄存器中写入0x75数据,参见图2步骤R1。AT命令编解码模块A2收到命令后,对其编码,参见图2步骤R2。 实现的时候我们暂且自定义下面的AT命令编码协议参照图4的AT命令帧结构, Fl是帧头,Sbit的命令字标志命令是读寄存器命令还是写寄存器命令,读寄存器命令Fl为 “00110011”,写寄存器命令Fl为“11001100”,返回寄存器状态命令Fl为“ 10101010”;F2是个短参数,我们这里表示寄存器地址,长度为32bit ;F3和F4为长参数属性描述,F3为长参数的个数N,长度为8bit,F4为N个长参数。根据上述协议,调试命令“at write_reg OxOA 0x75”的 AT 命令帧结构为“ 11001100 00000000 00000000 00000000 00001010 0000000100000000 00000000 00000000 01110101”。AT命令编解码模块A2编码完成后将AT命令帧发送到通信模块A3 (图2步骤R2), 通信模块A3将其发送到连接设备B上(图2步骤R3)。通信模块C3从连接设备B上收到AT命令帧,并转发到AT命令编解码模块C2,参见图2步骤R4。AT命令编解码模块C2收到AT命令帧,要对其解码(图2步骤R5)。帧结构Fl为 “11001100”,解码为写寄存器命令操作,F2 为“00000000 00000000 00000000 00001010”, 是寄存器地址“ΟχΟΑ”,F3 为“00000001 ”,带一个参数,F4 为“00000000 00000000 00000000 01110101”,参数是“0x75”。解析出来的指令为“at write_reg OxOA 0x75”,发送到命令执行模块Cl (图2步骤R5)。命令执行模块Cl收到“at write_reg OxOA 0x75”指令,调用写目标模块的寄存器指令执行(图2步骤R6)。读目标模块OxOB寄存器的流程的前半部分和写目标模块OxOA寄存器的流程基本相似。参照图3,UI程序模块Al收到“at read_reg OxOB”指令,转发AT命令编解码模块 A2(图3步骤Si)。AT命令编解码模块A2收到命令后,对其编码,根据上述协议,调试命令“at read_ reg OxOB” 的 AT 命令帧结构为“00110011 00000000 00000000 00000000 00001011 00000000”。AT命令编解码模块A2编码完成后将AT命令帧发送到通信模块A3 (图3步骤 S2)。通信模块A3将其发送到连接设备B上(图3步骤S3)。通信模块C3从连接设备B上收到AT命令帧,并转发到AT命令编解码模块C2,参见图3步骤S4。AT命令编解码模块C2收到AT命令帧,要对其解码(图3步骤S5)。帧结构Fl为 “00110011”,解码为读寄存器命令操作,F2 为“00000000 00000000 00000000 00001011”, 是寄存器地址“0x0B”,F3为“00000000”,不带参数,没有F4。解析出来的指令为“at read_ reg OxOB",发送到命令执行模块Cl (图3步骤S5)。命令执行模块Cl收到“at read_reg OxOB”指令,调用读目标模块的寄存器指令执行(图3步骤S6)。调用读目标模块的寄存器指令执行后有程序返回值,方便描述,我们这里假设读取到的值为“0x69”。命令执行模块Cl将命令“at status OxOB 0x69”发回AT命令编解码模块C2 (图3步骤S7)。AT命令编解码模块C2收到命令后,对其编码,根据上述协议,命令“at status OxOB 0x69” 的 AT 命令帧结构为“10101010 00000000 00000000 00000000 00001011 00000001 00000000 00000000 0000000 01101001”。AT 命令编解码模块 C2 编码完成后将
AT命令帧发送到通信模块C3 (图3步骤S8)。通信模块C3将其发送到连接设备B上(图3步骤S9)。通信模块A3从连接设备B上收到AT命令帧,并转发到AT命令编解码模块A2,参见图3步骤S10。AT命令编解码模块A2收到AT命令帧,要对其解码(图3步骤Sll)。帧结构Fl为“10101010”,解码为返回寄存器状态命令,F2为“00000000 00000000 00000000 00001011”,是寄存器地址“OxOB”,F3 为 “00000001”,带一个参数,F4 为 “00000000 00000000 00000000 01101001”,参数是“0x69”。解析出来的指令为 “at status OxOB 0x69”,发送到UI程序模块Al (图3步骤Sll)。UI程序模块Al收到“at status OxOB 0x69”指令,将其显示出来,"OxOB寄存器的状态值是0x69”,参见图3步骤S12。有了在线读寄存器命令和写寄存器命令后,我们还可以做在线读写全局变量等等命令,这样,目标模块参数的调试,就不用修改代码配置参数到编译、下载了,省下了很多时间,工作效率大大提高。本发明的扩展性能非常强,增加自定义AT命令和功能函数,可以实现更多的在线调试功能。比如,我们用一个全局变量控制程序的流程,全局变量等于不同的值的时候走的程序不同分支,我们还可以找到最合适我们应用的程序流程,达到调试的目的。另一方面,本发明还提供一种嵌入式终端的在线调试方法,包括以下步骤
5. 1、建立PC调试设备,接收调试命令并将其编码为二进制AT命令帧输出。所述步骤 5. 1中的PC调试设备,包括依次连接的UI程序模块、AT命令编解码第一模块、第一通信模块,所述UI程序模块接收调试命令并将其发送至所述AT命令编解码第一模块,所述AT命令编解码第一模块将调试命令编码为二进制AT命令帧并发送至所述第一通信模块。5. 2、建立连接设备,用以接收中转所述步骤5. 1输出的二进制AT命令帧。所述步骤5. 3中的调试单元,包括依次连接的第二通信模块、AT命令编解码第二模块以及命令执行模块,所述第二通信模块连接所述连接设备的输出端并将接收到的二进制AT命令帧输出至所述AT命令编解码第二模块进行解码,所述命令执行模块将解码后的AT命令转化为功能函数并执行所述嵌入式终端的调试动作。5. 3、在所述嵌入式终端中建立调试单元,对步骤5. 2中转过来的二进制AT命令帧进行解码,将解码后的AT命令转化为功能函数并执行所述嵌入式终端的调试动作。5. 4、调试单元的命令执行模块适以将所述嵌入式终端的调试返回值发送至所述 AT命令编解码第二模块,所述AT命令编解码第二模块将所述调试返回值依次通过所述第二通信模块、连接设备、第一通信模块、AT命令编解码第一模块发送至所述UI程序模块进行显不。作为一实施例,所述AT命令编解码第一模块按照自定义的AT命令编码协议将所述调试命令编码成二进制AT命令帧,所述AT命令编解码第二模块依照所述自定义的AT命令编码协议对接收到的二进制AT命令帧进行解码。另外,所述调试命令可以包括读寄存器指令、写寄存器指令、延时指令、读取状态指令等等。需要指出的是,本发明所述的一种嵌入式终端的在线调试系统与所述的一种嵌入式终端的在线调试方法在原理及实施例上是相同或类似的,故重复部分不再赘述。本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明, 而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上实施例的变化、变型都将落在本发明的权利要求书范围内。
权利要求
1.一种嵌入式终端的在线调试系统,其特征在于,包括PC调试设备,包括依次连接的UI程序模块、AT命令编解码第一模块、第一通信模块,所述UI程序模块接收调试命令并将其发送至所述AT命令编解码第一模块,所述AT命令编解码第一模块将调试命令编码为二进制AT命令帧并发送至所述第一通信模块;连接设备,连接所述PC调试设备的第一通信模块并接收所述第一通信模块发送的二进制AT命令帧;调试单元,设置于所述嵌入式终端,包括依次连接的第二通信模块、AT命令编解码第二模块以及命令执行模块,所述第二通信模块连接所述连接设备的输出端并将接收到的二进制AT命令帧输出至所述AT命令编解码第二模块进行解码,所述命令执行模块将解码后的 AT命令转化为功能函数并执行所述嵌入式终端的调试动作。
2.如权利要求1所述的调试系统,其特征在于,所述AT命令编解码第一模块按照自定义的AT命令编码协议将所述调试命令编码成二进制AT命令帧,所述AT命令编解码第二模块依照所述自定义的AT命令编码协议对接收到的二进制AT命令帧进行解码。
3.如权利要求1或2所述的调试系统,其特征在于,所述调试单元的命令执行模块适以将所述嵌入式终端的调试返回值发送至所述AT命令编解码第二模块,所述AT命令编解码第二模块将所述调试返回值依次通过所述第二通信模块、连接设备、第一通信模块、AT命令编解码第一模块发送至所述UI程序模块进行显示。
4.如权利要求3所述的调试系统,其特征在于,所述调试命令包括读寄存器指令、写寄存器指令、延时指令、读取状态指令。
5.一种嵌入式终端的在线调试方法,其特征在于,包括以下步骤5. 1、建立PC调试设备,接收调试命令并将其编码为二进制AT命令帧输出;5. 2、建立连接设备,用以接收中转所述步骤5. 1输出的二进制AT命令帧;5.3、在所述嵌入式终端中建立调试单元,对步骤5. 2中转过来的二进制AT命令帧进行解码,将解码后的AT命令转化为功能函数并执行所述嵌入式终端的调试动作。
6.如权利要求5所述的调试方法,其特征在于,所述步骤5.1中的PC调试设备,包括依次连接的UI程序模块、AT命令编解码第一模块、第一通信模块,所述UI程序模块接收调试命令并将其发送至所述AT命令编解码第一模块,所述AT命令编解码第一模块将调试命令编码为二进制AT命令帧并发送至所述第一通信模块。
7.如权利要求6所述的调试方法,其特征在于,所述步骤5.3中的调试单元,包括依次连接的第二通信模块、AT命令编解码第二模块以及命令执行模块,所述第二通信模块连接所述连接设备的输出端并将接收到的二进制AT命令帧输出至所述AT命令编解码第二模块进行解码,所述命令执行模块将解码后的AT命令转化为功能函数并执行所述嵌入式终端的调试动作。
8.如权利要求7所述的调试方法,其特征在于,所述AT命令编解码第一模块按照自定义的AT命令编码协议将所述调试命令编码成二进制AT命令帧,所述AT命令编解码第二模块依照所述自定义的AT命令编码协议对接收到的二进制AT命令帧进行解码。
9.如权利要求8所述的调试方法,其特征在于,所述调试方法还包括调试反馈的步骤 调试单元的命令执行模块适以将所述嵌入式终端的调试返回值发送至所述AT命令编解码第二模块,所述AT命令编解码第二模块将所述调试返回值依次通过所述第二通信模块、连接设备、第一通信模块、AT命令编解码第一模块发送至所述UI程序模块进行显示。
10.如权利要求5至9任一项所述的调试方法,其特征在于,所述调试命令包括读寄存器指令、写寄存器指令、延时指令、读取状态指令。
全文摘要
本发明揭示了一种嵌入式终端的在线调试系统及方法,本发明在嵌入式终端上内置了一个可以调试参数的功能模块,该模块使用自己的通信模块与PC调试设备的通信模块进行数据交互,PC调试设备A的指令可以在短时间内执行,并且程序员可以看到结果。传统的调试是修改代码中的参数,重新编译下载,然后验证效果。而在本发明中,程序员就不需要花费这些时间,工作效率大大提高。而且,本发明的扩展性能非常强,增加AT命令和功能函数,可以实现更多的在线调试功能。
文档编号G06F11/22GK102339248SQ201110043209
公开日2012年2月1日 申请日期2011年2月23日 优先权日2010年7月20日
发明者何国能 申请人:上海闻泰电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1