具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的SOC芯片的调试方法的流程图。
如图1所示,根据本发明的实施例的SOC芯片的调试方法,包括:步骤102,将SOC芯片通过UART接口连接至电平转换装置,并将电平转换装置连接至控制主机;步骤104,控制主机将通过图形用户界面接收到的调试操作指令生成调试命令;步骤106,电平转换装置对调试命令进行电平转换,生成电平转换调试命令;步骤108,SOC芯片获取并运行电平转换调试命令。
在该技术方案中,利用了SOC芯片上的UART接口,相比于USB或是JTAG,UART接口更为通用。在使用USB或JTAG等调试接口时,则需要对应的专门的一套调试工具及调试开发环境,但具有USB或JTAG等调试接口的SOC芯片的数量只占小部分,因而添置的调试工具及调试开发环境可以使用的范围远小于基于UART接口的调试套件,因而对于UART接口的利用,可以大大降低调试过程的费用。
这里的电平转换装置,比如TTL电平转换芯片,主要是由于对UART接口和RS-232接口的利用,从而在将调试命令从控制主机发送至SOC芯片上时,需要对信号的电平进行调整。其中,RS-232接口用于连接控制主机和电平转换装置,从而对应于UART接口,实现信号传输过程中的电平转换,确保信号的成功传输。
这里的图形用户界面是被安装在控制主机上的一套调试环境,通过图形化的方式,在人机交互界面上显示出调试界面,则用户可以在该调试界面上对SOC芯片上需要进行调试的功能模块或是寄存器进行选择,以及对希望进行的调试方式进行选择,然后由控制主机将图形用户界面接收到的调试指令,生成对应的调试命令,其中,对应于SOC芯片上的各个功能模块,已经提前对其地址进行了定义,因而能够同时将调试命令应用于用户希望进行调试的模块,并得到对应的调试结果,实现对SOC芯片上的功能模块或是寄存器的批处理。
在上述技术方案中,还包括:控制主机通过图形用户界面接收选择操作指令,并根据选择操作指令确定调试对象,其中,调试对象包括:SOC芯片中的至少一个寄存器、SOC芯片中的至少一个功能模块和/或SOC芯片。
在该技术方案中,通过图形用户界面,用户可以对SOC芯片中希望进行调试的功能模块或是寄存器或是SOC芯片本身进行选择。一方面,由于可以自由进行选择,而且在SOC芯片或是控制主机运行状况允许的情况下,也没有对调试对象的数目或种类的限制,另一方面,根据用户对于调试对象以及对应的调试方法的选择结果,控制主机可以据此自动生成对应的调试命令,因而可以方便地实现对多个调试对象进行批处理。
在上述技术方案中,还包括:控制主机根据确定的调试对象的属性,选择对应的打包方式并对调试命令进行打包,生成调试数据包;以及SOC芯片获取调试数据包,对调试数据包进行解析得到调试命令,并运行调试命令。
在该技术方案中,可以将生成的调试命令按照UART接口协议对应的格式进行打包,生成数据包,并将该数据包发送至SOC芯片。该数据包的生成过程是由控制主机根据用户的预设参数、采用对应于UART接口协议的格式自动进行打包生成的,简化用户的操作过程。由于预定义了SOC芯片中的各个功能模块的地址,因而可以将该地址信息体现在对应的打包方式中,从而确保调试命令准确地发送至对应的功能模块,以及接收到对应模块传回的调试结果信息。
在上述技术方案中,SOC芯片使用包括在SOC芯片中的基于UART接口协议的驱动软件运行来自控制主机的调试命令。
在该技术方案中,针对通过UART接口接收到的来自控制主机的调试命令,在SOC芯片中进行运行,则可以得到调试信息,完成调试过程。但SOC芯片在运行调试命令时,需要对应的运行环境,这由基于UART接口协议的驱动软件来提供。
在上述技术方案中,还包括:SOC芯片在运行调试命令时,对调试对象进行写操作和/或读操作;在对调试对象进行读操作后,SOC芯片向控制主机反馈读取数据,并接收来自控制主机的确认信息;以及在确认信息为失败信息时,SOC芯片向控制主机重新发送读取数据,直至确认信息为成功信息。
在该技术方案中,调试命令中存在对SOC芯片进行数据或信息读取的命令,这些数据或信息被读取后,需要反馈至控制主机,便于用户进行进一步分析,对本次调试过程及结果进行了解。这里通过控制主机对来自SOC芯片的数据的确认机制,确保数据成功被反馈至控制主机,并在出错时及时进行重新发送,简化了用户的操作步骤,提高了控制主机对于需要数据的获取成功率。
图2示出了根据本发明的实施例的SOC芯片的调试***的框图。
如图2所示,根据本发明的实施例的SOC芯片的调试***200,包括:SOC芯片206、电平转换装置204和控制主机202,其中,控制主机202,连接至电平转换装置204,包含图形用户界面,具体包括:指令接收单元208,通过图形用户界面接收用户的调试操作指令;生成单元210,根据指令接收单元208接收到的调试操作指令,生成调试命令;发送单元212,将调试命令发送至电平转换装置204;电平转换装置204,通过UART接口连接至SOC芯片206,包括:传送单元218,从控制主机202获取调试命令,或将生成的电平转换调试命令发送至SOC芯片206;电平转换单元220,对来自所述传送单元218的调试命令进行电平转换,生成电平转换调试命令;SOC芯片206,包括:命令接收单元222,通过UART接口接收来自电平转换装置204的电平转换调试命令;运行单元224,运行电平转换调试命令。
在该技术方案中,利用了SOC芯片206上的UART接口,相比于USB或是JTAG,UART接口更为通用。在使用USB或JTAG等调试接口时,则需要对应的专门的一套调试工具及调试开发环境,但具有USB或JTAG等调试接口的SOC芯片的数量只占小部分,因而添置的调试工具及调试开发环境可以使用的范围远小于基于UART接口的调试套件,因而对于UART接口的利用,可以大大降低调试过程的费用。
这里的电平转换装置204,比如TTL电平转换芯片,主要是由于对UART接口和RS-232接口的利用,从而在将调试命令从控制主机202发送至SOC芯片206上时,需要对信号的电平进行调整。其中,RS-232接口用于连接控制主机202和电平转换装置204,从而对应于UART接口,实现信号传输过程中的电平转换,确保信号的成功传输。
这里的图形用户界面是被安装在控制主机202上的一套调试环境,通过图形化的方式,在人机交互界面上显示出调试界面,则用户可以在该调试界面上对SOC芯片206上需要进行调试的功能模块或是寄存器进行选择,以及对希望进行的调试方式进行选择,然后由控制主机将图形用户界面接收到的调试指令,生成对应的调试命令,其中,对应于SOC芯片206上的各个功能模块,已经提前对其地址进行了定义,因而能够同时将调试命令应用于用户希望进行调试的模块,并得到对应的调试结果,实现对SOC芯片206上的功能模块或是寄存器的批处理。
在上述技术方案中,指令接收单元208还用于:通过图形用户界面接收用户的选择操作指令;以及控制主机202还包括:对象确定单元214,根据指令接收单元208接收到的选择操作指令,确定调试对象,其中,调试对象包括:SOC芯片206中的至少一个寄存器、SOC芯片206中的至少一个功能模块和/或SOC芯片206。
在该技术方案中,通过图形用户界面,用户可以对SOC芯片206中希望进行调试的功能模块或是寄存器或是SOC芯片206本身进行选择。一方面,由于可以自由进行选择,而且在SOC芯片206或是控制主机202运行状况允许的情况下,也没有对调试对象的数目或种类的限制,另一方面,根据用户对于调试对象以及对应的调试方法的选择结果,控制主机202可以据此自动生成对应的调试命令,因而可以方便地实现对多个调试对象进行批处理。
在上述技术方案中,控制主机202还包括:调制单元216,根据确定的调试对象的属性,选择对应的打包方式并对调试命令进行打包,生成调试数据包;发送单元212还用于:将调试数据包发送至电平转换装置204;传送单元218还用于:从控制主机202获取调试数据包,或将电平转换调试数据包发送至SOC芯片206;电平转换单元220还用于:对调试数据包进行电平转换,生成电平转换调试数据包;SOC芯片206还包括:数据包接收单元226,通过UART接口接收来自电平转换装置204的电平转换调试数据包;解析单元228,对数据包接收单元226接收到的电平转换调试数据包进行解析,得到调试命令。
在该技术方案中,可以将生成的调试命令按照UART接口协议对应的格式进行打包,生成数据包,并将该数据包发送至SOC芯片206。该数据包的生成过程是由控制主机202根据用户的预设参数、采用对应于UART接口协议的格式自动进行打包生成的,简化用户的操作过程。由于预定义了SOC芯片206中的各个功能模块的地址,因而可以将该地址信息体现在对应的打包方式中,从而确保调试命令准确地发送至对应的功能模块,以及接收到对应模块传回的调试结果信息。
在上述技术方案中,SOC芯片206中集成有基于UART接口协议的驱动软件;以及运行单元224使用基于UART接口协议的驱动软件运行调试命令。
在该技术方案中,针对通过UART接口接收到的来自控制主机202的调试命令,在SOC芯片206中进行运行,则可以得到调试信息,完成调试过程。但SOC芯片206在运行调试命令时,需要对应的运行环境,这由基于UART接口协议的驱动软件来提供。
在上述技术方案中,在SOC芯片206中,运行单元224还包括:写操作子单元2240,在运行调试命令时,对调试对象进行写操作;读操作子单元2242,在运行调试命令时,对调试对象进行读操作;SOC芯片206还包括:反馈单元230,在读操作子单元2242对调试对象进行读操作后,向控制主机202发送读取数据或接收来自控制主机202的确认信息;处理单元,在反馈单元230接收到的确认信息为失败信息时,控制反馈单元230重新发送读取数据,直至确认信息为成功信息。
在该技术方案中,调试命令中存在对SOC芯片206进行数据或信息读取的命令,这些数据或信息被读取后,需要反馈至控制主机202,便于用户进行进一步分析,对本次调试过程及结果进行了解。这里通过控制主机202对来自SOC芯片206的数据的确认机制,确保数据成功被反馈至控制主机202,并在出错时及时进行重新发送,简化了用户的操作步骤,提高了控制主机202对于需要数据的获取成功率。
针对上述图形用户界面,下面结合图3A至3C进行具体描述,其中,图3A至3C示出了根据本发明的实施例的图形用户界面的示意图。
如图3A所示,是根据本发明的技术方案下的一种图形用户界面300的显示界面,在该图形用户界面300上,用户可以通过自己的直接对功能模块、寄存器以及希望进行的调试方式进行直接选择,发出调试指令,并由图形用户界面300据此直接自动生成对应的调试命令,对SOC芯片进行调试。
具体而言,在图形用户界面300上包括功能模块选择区302、寄存器选择区304、调试方式选择区306、结果编辑区308和处理区310,其中,在功能模块选择区302中,显示出了第一模块、第二模块等所有被集成在当前连接的SOC芯片中的功能模块,则用户可以通过点击对应的模块,在寄存器选择区304中,查看并选择其中的寄存器。
同时,对于被用户选中的功能模块或是寄存器,可以通过在调试方式选择区306中,根据用户的要求选择对应的调试方式。然后,可以通过结果编辑区308,对于已经选择好的功能模块或寄存器以及对应的调试方式进行查看和编辑。
最后,由处理区310中,通过“生成”按键,可以将用户确认无误的调试过程自动转换并生成对应的调试命令或包含调试命令的数据包;通过“录入”按键,可以将生成的调试命令或数据包,由UART接口输入到SOC芯片中;通过“运行”按键,可以由SOC芯片运行接收到的调试命令或对数据包进行解析,并运行得到的调试命令,然后得到调试结果。
对于具体的操作方式,如图3B所示,在图形用户界面300中,对于功能模块选择区302而言,可以通过点击每个功能模块后面的选择按钮311而直接选中对应的功能模块,比如点击“第一模块”后面的选择按钮311之后,便直接选中了“第一模块”作为调试对象。
也可以对每个功能模块中的具体寄存器进行选择,比如在点击“第二模块”之后,在寄存器选择区304中显示出寄存器选择界面312,其中显示出“第二模块”所包含的所有寄存器,而对于用户需要进行调试的寄存器,用户可以通过点击在图中显示出的每个寄存器前方的选择按钮311进行选择,比如图3B中选择的“第二寄存器”和“第三寄存器”被选择后,在其名称的前方被标记上“√”的标识,然后可以在调试方式选择区306中,选择出对应的希望进行的调试方式,比如选择“第一方式”,则在结果编辑区308中,显示出了相应的组合结果,比如图3B中所示的:选择以“第一方式”进行调试的功能模块或寄存器包括“第二模块”中的“第二寄存器”和“第三寄存器”。
在图3C中,在功能模块选择区302中,可以直接选择对应的模块,而不必进行具体的寄存器的选择,比如可以通过点击如图3B中所示的“第二模块”或“第三模块”后面的选择按钮311而直接进行选择,并在调试方式选择区306中进行对应的调试方式的选择。然后,在结果编辑区308中,可以查看最后的选择结果并进行编辑,具体的编辑方式,比如可以对采用某种调试方式的某个寄存器或功能模块进行删除,并重新从功能模块选择区302等进行添加。
最后,通过点击处理区310中的“生成”按键,进行生成对应于用户的选择指令的调试命令或包含该调试命令的数据包;通过点击处理区310中的“录入”按键,将生成的调试命令或包含该调试命令的数据包发送至通过UART接口连接至控制主机的SOC芯片;通过点击处理区310中的“运行”按键,则SOC芯片运行得到的调试命令或通过解析数据包得到的调试命令,并将得到的调试结果反馈至控制主机,由用户进行查看和分析。
需要说明的是,上述由图形用户界面300“生成”调试命令、“确定”选择对象的过程,本领域的技术人员应该理解为由安装有该图形用户界面300的控制主机,根据图形用户界面300接收到的用户操作指令,生成对应的调试命令、确定选择对象。
图4示出了根据本发明的实施例的SOC芯片的调试***的示意图。
如图4所示,根据本发明的实施例的SOC芯片的调试***400,包括上位机402(相当于上文所述的控制主机)、硬件调试工具406(相当于上文所述的电平转换工具)和SOC芯片408,其中,上位机402和硬件调试工具406之间通过RS-232接口进行连接,而硬件调试工具406和SOC芯片408之间通过UART接口进行连接,具体而言,由硬件调试工具406通过UART接口连接至SOC芯片408中的处理器410。
上位机402中包含有上位机软件404(相当于上文所述的图形用户界面),可以由用户根据需要,在SOC芯片408中的多个功能模块412中,选择出希望进行调试的功能模块412甚至功能模块412中的一个或多个寄存器,并选择出对应于功能模块412的调试方式,则上位机软件404根据用户的选择指令,自动生成对应的调试指令,并进行打包生成数据包,然后发送至SOC芯片408运行,实现对SOC芯片408调试过程的批处理。
在利用UART接口时,为了支持对SOC芯片408内部一个或多个寄存器的读写、芯片测试及调试功能,需要定义传输数据的协议,包括读写操作以及应答,具体如表1所示。
表1数据包格式
其中:
Command:1byte:
Command(7:4) |
Check Way(3:0) |
对于Command这高4个Bit:用来表示读写命令。
(1)用0001表示读寄存器;
(2)用1000表示写寄存器。
对于Check Way这低4个Bit:用来表示校验方式。
(1)用0000表示无校验;
(2)用0001表示校验和校验。
PageAddr:1byte:可表示256页;
SubAddr:1byte:可表示256个寄存器;
DataLength:2byte高字节在前,其中DataLengthHigh为高字节,DataLengthLow为低字节。
(1)若CheckWay为0则无校验DataLength=实际数据的长度;
(2)若CheckWay为1则表示校验和校验Datalength=实际数据长度+1(Checksum为1byte)。
发送读指令时,其后不需要添加Data部分;
发送写指令时,其后Data的字节数应与DataLength保持一致。
响应信号:
(1)如果上位机软件404接收到数据并验证成功且动作完成则发送0x02;
(2)如果上位机软件404接收到但验证未成功或动作完成出错则发送0x04。
而针对上述定义的协议,上位机软件404对于包含有调试命令的数据包进行打包生成时,也需要参考如表1所示的参数,具体而言,当在上位机软件中进行批处理操作时,首先要选中要操作的某个模块、某些模块或者整个芯片,这样就包含了选中目标的所有寄存器,然后再进行读写操作,在进行批处理时,上位机软件404会根据选择模块的不同,按照表1定义的数据包格式打包数据,其中command定义操作类型,比如读操作或者写操作,还有定义数据校验类型。根据所要操作模块的不同,PageAddr的内容也不同,这是本方法预先对每个功能模块定义好地址。当选择批处理操作后,上位机软件404会自动计算出所要发送数据包的长度,然后给数据包中的DataLengthHigh和DataLengthLow赋值,经过上述过程,完成对批处理操作的自动打包和发送。
此外,SOC芯片408接收到这些指令数据后进行解析,正确识别后,处理器410执行相应的并行总线读写操作,读操作时需要返回上位机402需要的数据,如果接收到出错的应答则要重发。这样就形成一套对SOC芯片408调试的流程。
以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,采用的USB或JTAG接口不通用,会导致调试成本的提高,或者无法实现UART接口下调试的批处理,因此,本发明通过提供了一种SOC芯片的调试方法和一种SOC芯片的调试***,可以由UART接口实现对SOC芯片的调试,极大地降低了调试过程的费用,同时,采用图形用户界面接收操作指令,从而生成调试命令,便于实现对SOC芯片的批处理,提升调试效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。