一种芯片调试方法及片上系统芯片的利记博彩app

文档序号:6638423阅读:240来源:国知局
一种芯片调试方法及片上系统芯片的利记博彩app
【专利摘要】本发明实施例公开了一种芯片在线调试方法及SOC芯片,用于降低芯片调试功能的开发难度和避免调试过程中监控程序对固件造成的影响。本发明实施例方法包括:片上系统SOC芯片通过自身的通用异步收发传输器UART接口与终端建立通信;所述SOC芯片通过自身的UART调试单元接收所述终端发送的调试命令;所述SOC芯片通过所述UART调试单元根据预置调试协议解析及执行所述调试命令得到执行结果,并向所述终端发送所述执行结果。本发明实施例还提供一种SOC芯片,用于降低芯片调试功能的开发难度及避免固件受其他程序的影响。
【专利说明】一种芯片调试方法及片上系统芯片

【技术领域】
[0001]本发明实施例涉及通信【技术领域】,尤其涉及一种芯片调试方法及片上系统(S0C,System on Chip)芯片。

【背景技术】
[0002]随着集成电路技术应用的发展,集成了处理器的芯片的应用越来越广泛,这类芯片除了内置处理器(如51核、ARM核、MIPS核等),还包括基本的时钟复位电路、处理器运行所必需的存储器以及可能包括的各种模块和接口,形成了涵盖通用微控制单元和专用片上系统芯片的巨大市场。其中“51核芯片”在低端或对性能要求不高的家电控制和消费电子领域有着广泛的应用。
[0003]用户在使用51核芯片开发某个应用方案时,需要芯片具备至少一种调试方式,用户可选用其中一种调试方式,将开发的固件下载到51核芯片内部的程序存储器上,并控制固件运行过程、监控固件运行状态、观测此应用方案的实际运转效果。当固件运行结果不符合预期时,通过调试方式获取芯片内部信息,分析原因,修改固件,并重新调试,直至固件运行达到预期的效果。
[0004]现有技术中,51核芯片设计通用异步收发传输器(UART, Universal AsynchronousReceiver/Transmitter)接口,通过232电平转换电路与PC机串口连接通讯,芯片内预先内置一段Monitor-51监控程序。该程序接收并解析由电脑的UART接口发送的调试命令,也利用该程序对芯片进行调试,再将信息反馈到上位机调试软件。
[0005]但是由于Monitor-51监控程序内置在51核芯片内,属于侵入式调试,调试过程中监控程序也在运行,难免会占用芯片的资源,给固件的调试带来影响。又由于该监控程序比较复杂,而且需要硬件配合,整体实现方案难度较大。也就是说现有技术中芯片调试功能开发难度大,并且会影响固件运行。


【发明内容】

[0006]本发明实施例提供了一种芯片调试方法及SOC芯片,用于降低芯片调试功能的开发难度和避免调试过程中监控程序对固件造成的影响。
[0007]本发明实施例提供一种芯片调试方法,包括:
[0008]片上系统SOC芯片通过自身的通用异步收发传输器UART接口与终端建立通信;
[0009]所述SOC芯片通过自身的UART调试单元接收所述终端发送的调试命令;
[0010]所述SOC芯片通过所述UART调试单元根据预置调试协议解析及执行所述调试命令得到执行结果,并向所述终端发送所述执行结果。
[0011]可选地,所述调试命令包括:固件下载命令、控制固件运行命令和获取数据命令。
[0012]可选地,所述SOC芯片通过所述UART调试单元根据预置调试协议解析及执行所述调试命令得到执行结果,并向所述终端发送所述执行结果包括:
[0013]所述SOC芯片通过所述UART调试单元根据预置协议解析所述调试命令;
[0014]所述SOC芯片调用所述UART调试单元将固件下载到程序存储器中,并向所述终端发送第一目标信息,所述第一目标信息用于指示所述固件下载完成;
[0015]所述SOC芯片通过所述UART调试单元控制所述固件运行,并向所述终端发送运行结果;
[0016]所述SOC芯片通过所述UART调试单元获取所述固件运行中的变量、存储器中的数据及寄存器,并向所述终端发送所述变量、所述存储器中的数据及所述寄存器;
[0017]所述执行结果包括:所述第一目标信息、所述运行结果、所述变量、所述存储器中的数据及所述寄存器。
[0018]可选地,所述SOC芯片通过所述UART调试单元控制所述固件运行,并向所述终端发送运行结果包括:
[0019]所述SOC芯片通过所述UART调试单元控制所述固件单步运行,并向所述终端发送第一程序指针,所述第一程序指针用于指示固件的运行位置。
[0020]可选地,所述SOC芯片通过所述UART调试单元控制所述固件运行,并向所述终端发送运行结果包括:
[0021]所述SOC芯片通过所述UART调试单元控制所述固件连续运行,并向所述终端发送第二目标信息,所述第二目标信息用于指示所述固件已连续运行;
[0022]所述SOC芯片通过所述UART调试单元获取所述固件的第二程序指针,并向所述终端发送所述第二程序指针,所述第二程序指针用于指示固件的运行位置。
[0023]可选地,所述SOC芯片通过自身的UART接口与终端建立通信包括:
[0024]所述SOC芯片利用自身的UART管脚通过232电平转换电路及串口数据线与终端建立连接。
[0025]可选地,所述预置调试协议为Monitor-51调制协议,或为自定义调试协议。
[0026]本发明实施例还提供一种片上系统SOC芯片,包括:
[0027]UART接口,用于与终端建立通信;
[0028]UART调试单元;
[0029]所述UART调试单元包括:
[0030]接收子单元,用于接收所述终端发送的调试命令;
[0031]执行子单元,用于根据预置调试协议解析及执行所述调试命令得到执行结果;
[0032]发送子单元,用于向所述终端发送所述执行子单元执行得到的所述执行结果。
[0033]可选地,其特征在于,所述执行子单元包括:
[0034]解析模块,用于根据预置协议解析所述调试命令;
[0035]下载模块,用于将固件下载到程序存储器中;
[0036]控制模块,用于控制所述固件运行;
[0037]获取模块,用于获取所述固件运行中的变量、存储器中的数据及寄存器。
[0038]可选地,其特征在于,所述UART接口具体用于利用自身的UART管脚通过232电平转换电路及串口数据线与终端建立连接。
[0039]从以上技术方案可以看出,本发明实施例具有以下优点:
[0040]本发明实施例中,SOC芯片内置了 UART调试单元,UART调试单元可以接收调试命令,还可以解析并执行调试命令,并将调试结果发送至终端。由于该调试方法属于非侵入式调试,因此芯片不需要预先植入监控程序就可以完成调试,从而降低了芯片调试功能的开发难度,并且避免了调试过程中监控程序对固件造成的影响。

【专利附图】

【附图说明】
[0041]图1为本发明实施例中芯片在线调试方法一个实施例示意图;
[0042]图2为本发明实施例中芯片在线调试方法另一实施例示意图;
[0043]图3为本发明实施例中SOC芯片一个实施例示意图;
[0044]图4为本发明实施例中SOC芯片另一实施例示意图。

【具体实施方式】
[0045]本发明实施例提供了一种芯片在线调试方法,用于降低芯片调试功能的开发难度和避免调试过程中监控程序对固件造成的影响。
[0046]请参阅图1,本发明实施例中芯片在线调试方法的一个实施例包括:
[0047]101、SOC芯片通过自身的UART接口与终端建立通信;
[0048]SOC芯片通过自身的UART接口与终端建立通信。
[0049]102、SOC芯片通过自身的UART调试单元接收终端发送的调试命令;
[0050]用户通过调试软件开发固件,编译调试命令,编译完成后通过终端的UART接口向外发送,该调试命令转换成芯片可识别的电平信号,发送至SOC芯片,SOC芯片通过自身的UART调试单元接收终端发送的调试命令。
[0051]103、SOC芯片通过UART调试单元根据预置调试协议解析及执行该调试命令得到执行结果,并向终端发送该执行结果。
[0052]SOC芯片通过自身的UART调试单元接收终端发送的调试命令后,UART调试单元根据预置的协议对该调试命令进行解析得到对芯片的实际调试动作,UART调试单元执行相应的调试动作得到执行结果,并向终端发送该执行结果。
[0053]本发明实施例中,SOC芯片内置了 UART调试单元,UART调试单元可以接收调试命令,还可以解析并执行调试命令,并将调试结果发送至终端。由于该调试方法属于非侵入式调试,因此芯片不需要预先植入监控程序就可以完成调试,从而降低了芯片调试功能的开发难度,并且避免了调试过程中监控程序对固件造成的影响。
[0054]下面对本发明实施例芯片在线调试方法进行详细描述,请参阅图2,本发明实施例中芯片在线调试方法另一实施例包括:
[0055]201、SOC芯片通过自身的UART接口与终端建立通信;
[0056]SOC芯片利用自身的UART管脚通过232电平转换电路及串口数据线与终端建立连接,可以理解的是,SOC芯片还可以利用UART接口通过其他方式与终端建立通信,具体此处不作限定。
[0057]202、SOC芯片通过自身的UART调试单元接收终端发送的调试命令;
[0058]用户通过调试软件开发固件,编译调试命令,编译完成后通过终端的UART接口向外发送,将调试命令转换成芯片可识别的电平信号,发送至SOC芯片,SOC芯片通过自身的UART调试单元接收终端发送的调试命令。该调试命令包括固件下载命令、控制固件运行命令和获取数据命令,还可以包括其他命令,具体此处不作限定。
[0059]203、SOC芯片通过UART调试单元根据预置协议解析调试命令;
[0060]SOC芯片接收到终端发送的调试命令后,通过自身的UART调试单元根据预置协议解析该调试命令。该预置协议可以是Monitor-51调试协议,也可以是自定义调试协议,还可以是其他调试协议,具体此处不作限定。
[0061]204、S0C芯片通过UART调试单元将固件下载到程序存储器中,并向终端发送第一目标信息;
[0062]SOC芯片解析调试命令后,SOC芯片通过自身的UART调试单元执行固件下载命令,将固件下载到程序存储器中,下载完成后向终端发送第一目标信息,该第一目标信息用于指示固件下载完成。
[0063]205、SOC芯片通过UART调试单元控制固件运行,并向终端发送运行结果;
[0064]SOC芯片将固件下载到程序存储器后,SOC芯片通过自身的UART调试单元执行控制固件运行命令,产生使芯片内置处理器运行的使能信号,控制固件运行,并向终端发送运行结果。
[0065]需要说明的是,UART调试单元可以通过以下两种方式控制固件运行,并向终端发送相应的运行结果:
[0066]( 一)UART调试单元控制固件单步运行,并向终端发送第一程序指针,第一程序指针用于指示固件的运行位置;
[0067]( 二)UART调试单元控制固件连续运行,并向终端发送第二目标信息,第二目标信息用于指示固件已连续运行。UART调试单元获取固件的第二程序指针,并向终端发送第二程序指针,第二程序指针用于指示固件的运行位置。
[0068]UART调试单元还可以通过其他方式控制固件运行,并向终端发送相应的运行结果,具体此处不作限定。
[0069]206,SOC芯片通过UART调试单元获取固件运行中的变量、存储器中的数据及寄存器,并向终端发送该变量、存储器中的数据及寄存器。
[0070]SOC芯片控制固件运行后,SOC芯片通过UART调试单元获取固件运行中变量、存储器中的数据及寄存器,并向终端发送该变量、数据及寄存器。
[0071]本发明实施例中,SOC芯片内置了 UART调试单元,UART调试单元可以接收调试命令,还可以解析并执行调试命令,并将调试结果发送至终端。由于该调试方法属于非侵入式调试,因此芯片不需要预先植入监控程序就可以完成调试,从而降低了芯片调试功能的开发难度,并且避免了调试过程中监控程序对固件造成的影响。
[0072]其次,本发明实施例中,SOC芯片可以利用UART接口通过多种方式与终端建立通信,SOC芯片可以通过自身的UART调试单元通过多种方式解析调试命令,提高了方案的灵活性。
[0073]再次,本发明实施例中,提供了一种SOC芯片通过自身UART调试单元执行调试命令得到调试结果并向终端发送调试结果的具体方式,提高了方案的可实现性。
[0074]为了便于理解,下面以一实际的应用场景对本发明实施例中芯片在线调试方法进行描述:
[0075]内置有UART调试单元的51核芯片利用UART接口通过232电平转换电路及串口数据线与安装有Keil软件的电脑连接,建立通信。
[0076]用户在Keil软件中开发固件,编译调试命令,通过Keil自带的Keil Monitor-51Driver将调试命令通过电脑的UART接口往外发送。调试命令包括:(I)将固件下载到芯片的程序存储器中;(2)单步运行固件;(3)观察51核内部寄存器,固件中的变量。电脑通过串口发送调试命令,经过232电平转换电路及串口数据线,转换为芯片可以识别的电平信号,发送至51核芯片。
[0077]51核芯片内置的UART调试单元接收该调试命令,并根据Monitor-51调试协议解析该调试命令。解析完成后UART调试单元执行上述调试命令。首先将固件下载至程序存储器中,下载完成后将下载完成的消息通过串口返回至电脑。然后UART调试单元产生使51核运行的使能信号,51核在使能信号下控制固件运行一行指令,运行结束后,将当前的程序指针通过串口返回至电脑,当前程序指针指示用于指示程序具体运行到哪一步。同时,UART调试单元获取固件运行中的变量、51核芯片存储器中的数据及寄存器,并将这些变量、数据及寄存器通过串口返回至电脑。51核芯片是通过自身串口发出的信号,经过232电平转换电路及串口数据线,转换为电脑可识别的信号,将上述执行结果发送至电脑的。电脑的Keil软件利用自带的Keil Montor-51Drive;r,解析该执行结果,并将该执行结果以另一种更直观的方式在Keil界面中显示给用户。
[0078]下面介绍本发明实施例中的SOC芯片,请参阅图3,本发明实施例中SOC芯片的一个实施例包括:
[0079]UART接口 301,用于与终端建立通信;
[0080]UART 调试单元 302 ;
[0081]其中UART调试单元302包括:
[0082]接收子单元3021,用于接收终端发送的调试命令;
[0083]执行子单元3022,用于根据预置调试协议解析及执行调试命令得到执行结果;
[0084]发送子单元3023,用于向终端发送执行子单元3022执行得到的执行结果。
[0085]本发明实施例中,SOC芯片内置了 UART调试单元302,接收子单元3021可以接收调试命令,执行子单元3022可以解析并执行调试命令,发送子单元3023可以将调试结果发送至终端。由于该调试方法属于非侵入式调试,因此芯片不需要预先植入监控程序就可以完成调试,从而降低了芯片调试功能的开发难度,并且避免了调试过程中监控程序对固件造成的影响。
[0086]下面对本发明实施例的SOC芯片进行详细描述,请参阅图4,本发明实施例中SOC芯片另一实施例包括:
[0087]UART接口 401,用于与终端建立通信;
[0088]UART 调试单元 402 ;
[0089]其中UART调试单元402包括:
[0090]接收子单元4021,用于接收终端发送的调试命令;
[0091]执行子单元4022,用于根据预置调试协议解析及执行调试命令得到执行结果;
[0092]发送子单元4023,用于向终端发送执行子单元4022执行得到的执行结果。
[0093]其中,执行子单元4022包括:
[0094]解析模块40221,用于根据预置协议解析调试命令;
[0095]下载模块40222,用于将固件下载到程序存储器中;
[0096]控制模块40223,用于控制固件运行;
[0097]获取模块40224,用于获取固件运行中的变量、存储器中的数据及寄存器;
[0098]需要说明的是本发明实施例中,本发明实施例中UART接口 401可具体用于利用自身UART管脚通过232电平转换电路及串口数据线与终端建立连接。
[0099]本发明实施例中,SOC芯片内置了 UART调试单元402,接收子单元4021可以接收调试命令,执行子单元4022可以解析并执行调试命令,发送子单元4023可以将调试结果发送至终端。由于该调试方法属于非侵入式调试,因此芯片不需要预先植入监控程序就可以完成调试,从而降低了芯片调试功能的开发难度,并且避免了调试过程中监控程序对固件造成的影响。
[0100]其次,本发明实施例中,提供了一种执行子单元4022执行调试命令得到调试结果,发送子单元4023向终端发送调试结果的具体方式,提高了方案的可实现性。
[0101]为了便于理解,下面以一具体的应用场景对本实施例中SOC芯片各模块间的交互进行描述:
[0102]UART接口 401利用自身的UART管脚通过232电平转换电路及串口数据线与终端建立连接,可以理解的是,SOC芯片还可以利用UART接口通过其他方式与终端建立通信,具体此处不作限定。
[0103]用户通过调试软件开发固件,编译调试命令,编译完成后通过终端的UART接口向外发送,将调试命令转换成芯片可识别的电平信号,发送至SOC芯片,接收子单元4021接收终端发送的调试命令。该调试命令包括固件下载命令、控制固件运行命令和获取数据命令,还可以包括其他命令,具体此处不作限定。
[0104]接收子单元4021接收到终端发送的调试命令后,解析模块40221根据预置协议解析该调试命令。该预置协议可以是Monitor-51调试协议,也可以是自定义调试协议,还可以是其他调试协议,具体此处不作限定。
[0105]解析模块40221解析调试命令后,下载模块40222执行固件下载命令,将固件下载到程序存储器中,下载完成后发送子单元4023向终端发送第一目标信息,该第一目标信息用于指示固件下载完成。
[0106]下载模块40222将固件下载到程序存储器后,控制模块40223执行控制固件运行命令,产生使芯片内置处理器运行的使能信号,控制固件运行,发送子单元4023并向终端发送运行结果。
[0107]需要说明的是,UART调试单元可以通过以下两种方式控制固件运行,并向终端发送相应的运行结果:
[0108](一 )控制模块40223控制固件单步运行,发送子单元4023向终端发送第一程序指针,第一程序指针用于指示固件的运行位置;
[0109](二)控制模块40223控制固件连续运行,发送子单元4023向终端发送第二目标信息,第二目标信息用于指示固件已连续运行。获取模块40224获取固件的第二程序指针,发送子单元4023向终端发送第二程序指针,第二程序指针用于指示固件的运行位置;
[0110]UART调试单元还可以通过其他方式控制固件运行,并向终端发送相应的运行结果,具体此处不作限定。
[0111]控制模块40223控制固件运行后,获取模块40224获取固件运行中变量、存储器中的数据及寄存器,并向终端发送该变量、数据及寄存器。
[0112]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0113]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0114]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0115]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0116]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0117]以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种芯片调试方法,其特征在于,包括: 片上系统SOC芯片通过自身的通用异步收发传输器UART接口与终端建立通信; 所述SOC芯片通过自身的UART调试单元接收所述终端发送的调试命令; 所述SOC芯片通过所述UART调试单元根据预置调试协议解析及执行所述调试命令得到执行结果,并向所述终端发送所述执行结果。
2.根据权利要求1所述的方法,其特征在于,所述调试命令包括:固件下载命令、控制固件运行命令和获取数据命令。
3.根据权利要求2所述的方法,其特征在于,所述SOC芯片通过所述UART调试单元根据预置调试协议解析及执行所述调试命令得到执行结果,并向所述终端发送所述执行结果包括: 所述SOC芯片通过所述UART调试单元根据预置协议解析所述调试命令; 所述SOC芯片通过所述UART调试单元将固件下载到程序存储器中,并向所述终端发送第一目标信息,所述第一目标信息用于指示所述固件下载完成; 所述SOC芯片通过所述UART调试单元控制所述固件运行,并向所述终端发送运行结果; 所述SOC芯片通过所述UART调试单元获取所述固件运行中的变量、存储器中的数据及寄存器,并向所述终端发送所述变量、所述存储器中的数据及所述寄存器; 所述执行结果包括:所述第一目标信息、所述运行结果、所述变量、所述存储器中的数据及所述寄存器。
4.根据权利要求3所述的方法,其特征在于,所述SOC芯片通过所述UART调试单元控制所述固件运行,并向所述终端发送运行结果包括: 所述SOC芯片通过所述UART调试单元控制所述固件单步运行,并向所述终端发送第一程序指针,所述第一程序指针用于指示固件的运行位置。
5.根据权利要求3所述的方法,其特征在于,所述SOC芯片通过所述UART调试单元控制所述固件运行,并向所述终端发送运行结果包括: 所述SOC芯片通过所述UART调试单元控制所述固件连续运行,并向所述终端发送第二目标信息,所述第二目标信息用于指示所述固件已连续运行; 所述SOC芯片通过所述UART调试单元获取所述固件的第二程序指针,并向所述终端发送所述第二程序指针,所述第二程序指针用于指示固件的运行位置。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述SOC芯片通过自身的UART接口与终端建立通信包括: 所述SOC芯片利用自身的UART管脚通过232电平转换电路及串口数据线与终端建立连接。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述预置调试协议为Monitor-51调制协议,或为自定义调试协议。
8.一种片上系统SOC芯片,其特征在于,包括: UART接口,用于与终端建立通信; UART调试单元; 所述UART调试单元包括: 接收子单元,用于接收所述终端发送的调试命令; 执行子单元,用于根据预置调试协议解析及执行所述调试命令得到执行结果; 发送子单元,用于向所述终端发送所述执行子单元执行得到的所述执行结果。
9.根据权利要求8所述的SOC芯片,其特征在于,所述执行子单元包括: 解析模块,用于根据预置协议解析所述调试命令; 下载模块,用于将固件下载到程序存储器中; 控制模块,用于控制所述固件运行; 获取模块,用于获取所述固件运行中的变量、存储器中的数据及寄存器。
10.根据权利要求8所述的SOC芯片,其特征在于,所述UART接口具体用于利用自身的UART管脚通过232电平转换电路及串口数据线与终端建立连接。
【文档编号】G06F11/267GK104461815SQ201410765065
【公开日】2015年3月25日 申请日期:2014年12月11日 优先权日:2014年12月11日
【发明者】程鹏 申请人:深圳芯邦科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1