CN105550118A - 调试系统和调试方法 - Google Patents
调试系统和调试方法 Download PDFInfo
- Publication number
- CN105550118A CN105550118A CN201610057410.9A CN201610057410A CN105550118A CN 105550118 A CN105550118 A CN 105550118A CN 201610057410 A CN201610057410 A CN 201610057410A CN 105550118 A CN105550118 A CN 105550118A
- Authority
- CN
- China
- Prior art keywords
- bus controller
- debug
- breakpoint
- program
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种调试系统和调试方法,包括与嵌入式系统处理器单元连接的内嵌有调试模块的片上总线控制器和与片上总线控制器连接的至少一个外部总线控制器;外部总线控制器用于将调试设备输入的调试命令传输至该片上总线控制器,或将该片上总线控制器输出的调试结果传输至调试设备;片上总线控制器内嵌的调试模块用于在接收到任一外部总线控制器输入的调试命令后对调试命令进行解析,并根据解析后的调试命令执行相应调试动作,从而不再需要配置专门的仿真器,并且可以通过通用外部总线控制器接入互联网,方便实现远程调试。
Description
技术领域
本发明涉及嵌入式系统调试技术领域,更具体地说,涉及一种调试系统和调试方法。
背景技术
现有技术中,嵌入式程序的编辑、编译、链接过程都是在计算机(或工作站)上完成的,我们通常称之为宿主机(Host),而程序的最终运行却是在和宿主机有很大区别的嵌入式设备上进行的,我们通常称之为目标机(Target)。其中,目标机和宿主机的主要差别为:一、硬件环境不同,即CPU(CentralProcessingUnit,处理器)类型不同;二、软件环境不同,宿主机上有成熟的操作系统的应用软件支持,而目标机一般是裸机或者需要调试的嵌入式系统。基于此,调试是嵌入式系统软件开发过程中必不可少的环节。
现有的嵌入式系统的调试系统通常是通过仿真器和特定调试总线进行的,例如ARM系列处理器通过JTAG/SWD总线和连接计算机的ARM仿真器进行调试,MIPS系列处理器通过EJTAG总线和连接计算机的MIPS仿真器进行调试。但是,由于每个处理器架构都需要配置专门的调试总线和仿真器,因此,会带来使用不便的问题。并且,其不能实现远程调试。
发明内容
有鉴于此,本发明提供了一种调试系统和调试方法,以解决现有技术中每个处理器架构都需要配置专门的调试总线和仿真器而导致使用上的不便以及不能实现远程调试的问题。
为实现上述目的,本发明提供如下技术方案:
一种调试系统,包括内嵌有调试模块的片上总线控制器和与所述片上总线控制器连接的至少一个外部总线控制器;
每一所述外部总线控制器与一调试设备连接,不同的所述外部总线控制器通过不同的通讯方式与所述调试设备通讯,所述外部总线控制器用于将所述调试设备输入的调试命令传输至所述片上总线控制器,将所述片上总线控制器输出的调试结果传输至所述调试设备;
所述片上总线控制器与嵌入式系统的处理器单元连接,所述片上总线控制器内嵌的调试模块用于在接收到任一所述外部总线控制器输入的调试命令后对所述调试命令进行解析,并根据所述解析后的调试命令执行相应调试动作。
优选的,所述调试模块包括通讯控制单元、调试命令解析单元和调试执行单元;
所述通讯控制单元用于接收所述外部总线控制器输入的调试命令,并将所述调试命令传输至所述调试命令解析单元,将调试结果传输至所述外部总线控制器;
所述调试命令解析单元用于按照预设格式对所述调试命令进行解析,并将解析后的调试命令传输至所述调试执行单元;
所述调试执行单元根据所述解析后的调试命令触发相应的调试功能模块执行相应调试操作。
优选的,所述调试执行单元中的调试功能模块包括物理地址空间读写模块、硬件程序断点处理模块、硬件数据断点处理模块、程序暂停处理模块和程序流程追踪模块;
所述物理地址空间读写模块用于根据解析后的物理地址空间读写命令触发片上总线控制器的读写动作,并通过所述通讯控制单元将片上总线控制器的读写结果传输至所述外部总线控制器;
所述硬件程序断点处理模块用于根据解析后的硬件程序断点设置命令保存程序断点地址,并在所述处理器单元读取所述断点地址的指令时,以特殊指令替换所述断点地址处的原始指令,以将所述处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
所述硬件程序断点处理模块还用于根据解析后的硬件程序断点清除命令删除相应的程序断点地址;
所述硬件数据断点处理模块用于根据解析后的硬件数据断点设置命令保存数据断点地址,并在所述处理器单元读或写所述断点地址时向所述处理器单元发出特定中断,以将所述处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
所述硬件数据断点处理模块还用于根据解析后的硬件数据断点清除命令删除相应的数据断点地址;
所述程序暂停处理模块用于根据解析后的程序暂停命令向所述处理器单元发出特定中断,以将所述处理器单元引导到特定的调试程序,即刻停止运行等待其它调试命令;
所述程序流程追踪模块用于根据解析后的程序流程追踪命令监测和保存所述处理器单元读取的指令流的地址,并在压缩之后传输至所述外部总线控制器,以便所述调试设备获得被追踪程序的指令流。
优选的,所述片上总线控制器与所述外部总线控制器通过片上输入输出总线连接,所述片上总线控制器与所述外部总线控制器之间以双向字节流的方式进行数据的传输。
优选的,所述片上总线控制器通过所述处理器单元的专有调试接口与所述处理器单元连接。
优选的,所述外部总线控制器通过UART串口、SPI串口、USB接口或以太网口与所述调试设备连接。
一种调试方法,应用于如上任一项所述的调试系统,所述调试方法包括:
片上总线控制器内嵌的调试模块对接收到的调试命令进行解析;
所述片上总线控制器内嵌调试模块根据所述解析后的调试命令执行相应调试动作。
优选的,所述片上总线控制器对接收到的调试命令进行解析之前还包括:
所述片上总线控制器的内嵌调试模块通过外部总线控制器接收调试设备输入的调试命令。
优选的,根据所述解析后的调试命令执行相应调试动作之后还包括:
所述片上总线控制器的内嵌调试模块通过所述外部总线控制器将调试结果传输至所述调试设备。
优选的,根据所述解析后的调试命令执行相应调试动作包括:
根据解析后的物理地址空间读写命令触发所述片上总线控制器进行读写动作,并将所述片上总线控制器的读写结果传输至所述外部总线控制器;
根据解析后的硬件程序断点设置命令保存程序断点地址,并在所述处理器单元读取所述断点地址的指令时,以特殊指令替换所述断点地址处的原始指令,以将所述处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
根据解析后的硬件数据断点设置命令保存数据断点地址,并在所述处理器单元读或写所述断点地址时向所述处理器单元发出特定中断,以将所述处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
根据解析后的硬件程序断点清除命令删除相应程序断点地址;
根据解析后的硬件数据断点清除命令删除相应数据断点地址;
根据解析后的程序暂停命令向所述处理器单元发出特定中断,以将所述处理器单元引导到特定的调试程序,即刻停止运行等待其它调试命令;
根据解析后的程序流程追踪命令监测和保存所述处理器单元读取的指令流的地址,并将所述指令流的地址压缩之后传输至所述外部总线控制器,以便所述调试设备获得被追踪程序的指令流。
与现有技术相比,本发明所提供的技术方案具有以下优点:
本发明所提供的调试系统和调试方法,在与嵌入式系统的处理器单元连接的片上总线控制器上内嵌了调试模块,从而可以通过片上总线控制器内嵌的调试模块对所述嵌入式系统中的软件进行调试,进而不再需要配置专门的仿真器,并且,还可以通用外部总线控制器连接互联网实现远程调试,使嵌入式系统调试更加方便。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种调试系统的结构示意图;
图2为本发明实施例提供的一种调试模块的结构示意图;
图3为本发明实施例提供的一种调试方法的流程图;
图4为本发明实施例提供的另一种调试方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供了一种调试系统,应用于系统级芯片上的嵌入式软件的调试,其中嵌入式软件是固化在系统级芯片里的固化程序,例如空调主控微控制器的控制程序等,如图1所示,本实施例中的调试系统包括内嵌有调试模块的片上总线控制器1和与片上总线控制器1连接的至少一个外部总线控制器2。
其中,片上总线控制器1与嵌入式系统的处理器单元即处理器3连接。具体地,片上总线控制器1通过片上系统总线5与芯片上的处理器、RAM/ROM如易失性存储器和非易失性存储器以及其它功能模块连接,通过输入输出总线和输入输出总线桥接器6与至少一个外部总线控制器2连接,也就是说,片上总线控制器1是内部片上系统总线和输入输出总线的主控设备,基于此,本实施例中在片上总线控制器1上内嵌了调试模块,使其与通用的外部总线控制器2构成了一个便于使用的统一的内嵌于系统级片上的调试系统。
具体地,本实施例中的片上总线控制器1内嵌的调试模块的用于在接收到任一外部总线控制器2输入的调试命令后对调试命令进行解析,并根据解析后的调试命令执行相应调试动作。
每一外部总线控制器2可以与一调试设备4连接,不同的外部总线控制器2可以通过不同的通讯方式与调试设备4通讯,该外部总线控制器2用于将调试设备4输入的调试命令传输至片上总线控制器1,或将片上总线控制器1输出的调试结果传输至调试设备4。其中,根据片上系统总线和输入输出总线的实现方式不同,片上总线控制器1与外部总线控制器2的通讯方式也不同,例如,一种情况下,片上总线控制器1需要采用查询的方式访问外部总线控制器2,来接收到外部总线控制器2输入的调试命令。
此外,外部总线控制器2可以通过UART(UniversalAsynchronousReceiver/Transmitter,异步串行通信接口)串口、SPI(SerialPeripheralInterface,串行外设接口)接口、USB(UniversalSerialBus,通用串行接口)接口或以太网口与调试设备4连接,也就是说,本实施例中的一个外部总线控制器2可以通过UART串口与一个调试设备4连接,一个外部总线控制器2可以通过SPI串口与一个调试设备4连接,一个外部总线控制器2可以通过以太网口接入互联网,与一个接入互联网的调试设备4进行远程连接。
本实施例中,片上总线控制器1与外部总线控制器2以双向字节流的形式进行数据的传输。片上总线控制器1在接收到外部总线控制器2输入的调试命令后才进行调试,用户可以根据测试需要或开发经验,手动地通过调试设备4的人机操作界面选择或输入调试命令,或者,调试设备4可以根据其内部的自检模块定时地向片上总线控制器1发送调试命令。
进一步需要说明的是,如图2所示,片上总线控制器1内嵌的调试模块包括通讯控制单元10、调试命令解析单元11和调试执行单元12,其中,通讯控制单元10为双向字节流通讯控制器,用于接收外部总线控制器2输入的调试命令,并将调试命令传输至调试命令解析单元11,或者将调试结果传输至外部总线控制器2;调试命令解析单元11用于按照预设格式对调试命令进行解析,并将解析后的调试命令传输至调试执行单元12;调试执行单元12触发相应的调试功能模块执行相应的调试动作;调试执行单元12与处理器3连接的接口包括系统总线接口01、NMI中断信号接口02和处理器专有调试接口03比如JTAG接口。
本实施例中,调试执行单元12中的调试功能模块包括物理地址空间读写模块、硬件程序断点处理模块、硬件数据断点处理模块、程序暂停处理模块和程序流程追踪模块,当然,调试执行单元还可包括其他调试功能模块,本发明并不仅限于此,设计者可以根据需要对调试执行单元的调试功能进行设计和修改。
其中,物理地址空间读写模块用于根据解析后的物理地址空间读写命令触发片上总线控制器1进行读写动作,并通过通讯控制单元10将片上总线控制器1的读写结果传输至外部总线控制器2;
硬件程序断点处理模块用于根据解析后的硬件程序断点设置命令保存程序断点地址,并在所述处理器3运行至该断点地址时即读取该断点地址的指令时,以特殊指令替换断点地址处的原始指令,以将所述处理器单元3引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
所述硬件程序断点处理模块还用于根据解析后的硬件程序断点清除命令删除相应的程序断点地址;
硬件数据断点处理模块用于根据解析后的硬件数据断点命令保存或清除数据断点地址,并在所述处理器3读或写所述断点地址时向处理器单元3发出特定中断,以将处理器3引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
所述硬件数据断点处理模块还用于根据解析后的硬件数据断点清除命令删除相应的数据断点地址;
程序暂停处理模块用于根据解析后的程序暂停命令向所述处理器单元3发出特定中断,以将所述处理器3引导到特定的调试程序,即刻停止运行等待其它调试命令;
程序流程追踪模块用于根据解析后的程序流程追踪命令监测和保存处理器单元3读取的指令流的地址,并在压缩之后传输至外部总线控制器2,以便调试设备4获得被追踪程序的指令流。
具体地,当内嵌调试模块的片上总线控制器1接收到调试设备4通过外部总线控制器2输入的物理地址空间读写命令后,调试命令解析单元会对物理地址空间读写命令进行解析,然后调试执行单元12中的物理地址空间读写模块会根据解析后的物理地址空间读写命令触发片上总线控制器1进行读写动作,物理地址空间读写模块会监测片上总线控制器1的读写动作,并将读写结果以字节流的形式又通过片上总线控制器1发送给外部总线控制器2,以使外部总线控制器2传输至调试设备4,便于用户或调试设备4根据输出结果进行下一步调试。
当内嵌调试模块的片上总线控制器1接收到调试设备4通过外部总线控制器2输入的硬件程序断点设置命令后,调试命令解析单元11会对硬件程序断点设置命令进行解析,然后调试执行单元12中的硬件程序断点处理模块会保存硬件程序断点设置命令中的断点的地址,然后硬件程序断点处理模块会监测处理器3的读指令命令,当处理器3的读指令命令的地址是该断点地址时,硬件程序断点处理模块会采用断点指令或其它自陷指令或跳转指令替换断点地址处的原始指令,以使处理器3执行到该断点时,断点指令或其它自陷指令或跳转指令将处理器3引导到特定的调试程序,以使程序停止正常运行等待其它调试命令。
处理器3是按照预设顺序执行指令的,当在处理器3的执行指令中插入断点指令后,处理器3会中断执行当前程序,转而执行断点指令引导的调试程序,此时处理器3会停止正常运行进入调试模式,用户或调试设备4可以通过其它调试命令对嵌入式系统进行调试例如进行查看内存的情况、寄存器的状态以及查看源代码等操作。
调试完毕后,用户或调试设备4会向片上总线控制器1发送硬件程序断点清除命令,当片上总线控制器1接收到硬件程序断点清除命令后,调试命令解析单元11会对硬件程序断点清除命令进行解析,调试执行单元12中的硬件程序断点处理模块会清除相应的程序断点地址,并停止监测该程序断点地址,即硬件程序断点处理模块会停止在处理器3读取该程序断点地址时替换断点处的原始指令,使处理器3按照原顺序执行指令。
同样,片上总线控制器1接收到硬件数据断点设置命令后,调试命令解析单元11会对硬件数据断点设置命令进行解析,然后调试执行单元12中的硬件数据断点处理模块会保存硬件数据断点设置命令中的数据断点地址,然后硬件数据断点处理模块根会监测处理器3的读写数据命令,当处理器3的读写数据命令的地址是该数据断点地址时,硬件数据断点处理模块会发出特定中断例如不可屏蔽的中断NMI,以使处理器3被引导到特定的调试程序,停止正常运行并等待其它调试命令。调试完毕后,处理器3会退出中断并退出调试程序,而从当前程序被中断处开始运行。
对于有指令缓冲的处理器3,由于指令缓冲可能保存了断点处的原始指令,硬件程序断点设置和清除可能是无效的,基于此,可以在调试程序中增加清理指令缓冲功能,在处理器3当前程序已经中断运行的情况下,通过调试程序辅助清除断点地址的指令缓冲区,同样,在接收到清除硬件断点命令时,也可通过调试程序辅助清除断点地址的指令缓冲区。
对于没有指令缓冲的处理器3,片上总线控制器1接收到程序流程追踪的命令后,调试命令解析单元11会对程序流程追踪命令进行解析,调试执行单元12中的程序流程追踪模块会根据解析后的程序流程追踪命令监测和保存处理器的读指令的地址并将获得的追踪的指令流程经过简单压缩后发送给外部总线控制器2。
片上总线控制器1接收到程序暂停命令后,调试命令解析单元11会对程序暂停命令进行解析,然后调试执行单元12中的程序暂停处理模块会根据解析后的程序暂停命令向处理器3发送一个特定中断如不可屏蔽中断NMI并屏蔽其他中断,使处理器3停止运行当前程序,并将处理器3引导到特定的调试程序,使处理器3进入调试模式等待用户或调试设备4输入的其它调试命令进行调试。
本实施例中的调试程序是片上总线控制器1内部的固化的调试程序,片上总线控制器1的内嵌调试模块能重映射中断向量和调试程序地址空间,以便将处理器3引导到自身内嵌的固化调试程序。
此外,本实施例中的片上总线控制器1还可以发出特定调试总线波形,与处理器3的特定调试接口即JTAG接口通讯,以实现程序暂停、硬件单步、程序流程追踪等功能,在存在数据缓冲或指令缓冲等的情形下,使用这种方法实现这些功能会更加准确。
本实施例提供的调试系统,在与嵌入式系统的处理器连接的片上总线控制器上内嵌了调试模块,从而可以通过片上总线控制器对所述嵌入式系统中的软件进行调试,进而不再需要配置专门的仿真器,并且,还可以通用外部总线控制器连接互联网实现远程调试,使嵌入式系统调试更加方便。
本发明的实施例还提供了一种调试方法,应用于上述实施例提供的调试系统,如图3所示,该调试方法包括:
S301:片上总线控制器的调试模块对接收到的调试命令进行解析;
S302:片上总线控制器的调试模块根据解析后的调试命令执行相应调试动作。
进一步地,如图4所示,该调试方法可以包括:
S401:片上总线控制器通过外部总线控制器接收调试设备输入的调试命令;
S402:片上总线控制器内嵌的调试模块对接收到的调试命令进行解析;
S403:片上总线控制器内嵌的调试模块根据解析后的调试命令执行相应调试动作;
S304:片上总线控制器通过所述外部总线控制器将调试结果传输至所述调试设备。
其中,根据所述解析后的调试命令执行相应调试动作包括:
根据解析后的物理地址空间读写命令触发片上总线控制器进行读写动作,并将片上总线控制器的读写结果传输至外部总线控制器;
根据解析后的硬件程序断点设置命令保存程序断点地址,并在所述处理器单元运行至该断点地址时即读取该断点地址的指令时,以特殊指令替换断点地址处的原始指令,以将所述处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
根据解析后的硬件数据断点设置命令保存数据断点地址,并在所述处理器单元读或写所述断点地址时向处理器单元发出特定中断,以将处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
根据解析后的硬件程序断点清除命令删除相应程序断点地址,也即停止在所述处理器单元运行至所述断点地址时替换所述断点地址处的原始指令;
根据解析后的硬件数据断点清除命令删除相应数据断点地址,也即停止在所述处理器单元读取所述断点地址时产生特定中断;
根据解析后的程序暂停命令向所述处理器单元发出特定中断,以将所述处理器单元引导到特定的调试程序,即刻停止运行等待其它调试命令;
根据解析后的程序流程追踪命令监测和保存处理器单元读取的指令流的地址,并在压缩之后传输至外部总线控制器,以便调试设备获得被追踪程序的指令流。
具体地,当片上总线控制器接收到调试设备通过外部总线控制器输入的物理地址空间读写命令后,调试命令解析单元会对物理地址空间读写命令进行解析,然后调试执行单元中的物理地址空间读写模块会根据解析后的物理地址空间读写命令触发片上总线控制器进行读写动作,物理地址空间读写模块会监测片上总线控制器的读写动作,并将读写结果以字节流的形式发送给外部总线控制器,以使外部总线控制器传输至调试设备,便于用户或调试设备根据输出结果进行下一步调试。
当片上总线控制器接收到调试设备通过外部总线控制器输入的设置硬件程序断点命令后,调试命令解析单元会对设置硬件程序断点命令进行解析,然后调试执行单元中的断点处理模块会保存设置硬件程序断点命令中的断点的地址,然后断点处理模块会监测处理器的读指令命令,当处理器的读指令命令的地址是该断点地址时,断点处理模块会采用断点指令或其它自陷指令或跳转指令替换断点处的原始指令,以使处理器执行到该断点时,断点指令或其它自陷指令或跳转指令将处理器引导到特定的调试程序,以使程序停止正常运行等待其它调试命令。
调试完毕后,用户或调试设备会向片上总线控制器的内嵌调试模块发送清除断点命令,当片上总线控制器的内嵌调试模块接收到清除断点命令后,调试命令解析单元会对清除断点命令进行解析,调试执行单元中的断点处理模块会清除断点的地址,并停止监测该断点地址,使处理器按照原顺序执行指令。
同样,片上总线控制器接收到设置硬件数据断点命令后,调试命令解析单元会对设置硬件数据断点命令进行解析,然后调试执行单元中的断点处理模块会保存设置硬件数据断点命令中的断点的地址,然后断点处理模块根据解析后的设置硬件数据断点命令监测处理器的读或写数据的命令,当处理器读或写该断点地址时,断点处理模块会发出特定中断例如不可屏蔽的中断NMI,以将处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令。调试完毕后,处理器会退出中断,从当前程序中断处开始运行。
片上总线控制器接收到程序暂停命令后,调试命令解析单元会对程序暂停命令进行解析,然后调试执行单元中的程序暂停处理模块会根据解析后的程序暂停命令向处理器发送一个特定中断如不可屏蔽中断NMI并屏蔽其他中断,使处理器停止运行当前程序,并将处理器引导到特定的调试程序,使处理器进入调试模式等待用户或调试设备输入的调试命令进行调试。
本实施例提供的调试方法,在与嵌入式系统的处理器单元连接的片上总线控制器上增加了调试功能,从而可以通过片上总线控制器和与之相连的通用外部总线控制器如UART、SPI、Ethernet、USB等对所述嵌入式系统中的或软件进行调试,进而不再需要配置专门的仿真器,并且,如果通用外部总线控制器直接或间接接入互联网,还可以方便地实现远程调试。。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种调试系统,其特征在于,包括内嵌有调试模块的片上总线控制器和与所述片上总线控制器连接的至少一个外部总线控制器;
每一所述外部总线控制器与一调试设备连接,不同的所述外部总线控制器通过不同的通讯方式与所述调试设备通讯,所述外部总线控制器用于将所述调试设备输入的调试命令传输至所述片上总线控制器,将所述片上总线控制器输出的调试结果传输至所述调试设备;
所述片上总线控制器与嵌入式系统的处理器单元连接,所述片上总线控制器内嵌的调试模块用于在接收到任一所述外部总线控制器输入的调试命令后对所述调试命令进行解析,并根据所述解析后的调试命令执行相应调试动作。
2.根据权利要求1所述的调试系统,其特征在于,所述调试模块包括通讯控制单元、调试命令解析单元和调试执行单元;
所述通讯控制单元用于接收所述外部总线控制器输入的调试命令,并将所述调试命令传输至所述调试命令解析单元,将调试结果传输至所述外部总线控制器;
所述调试命令解析单元用于按照预设格式对所述调试命令进行解析,并将解析后的调试命令传输至所述调试执行单元;
所述调试执行单元根据所述解析后的调试命令触发相应的调试功能模块执行相应调试操作。
3.根据权利要求2所述的调试系统,其特征在于,所述调试执行单元中的调试功能模块包括物理地址空间读写模块、硬件程序断点处理模块、硬件数据断点处理模块、程序暂停处理模块和程序流程追踪模块;
所述物理地址空间读写模块用于根据解析后的物理地址空间读写命令触发片上总线控制器的读写动作,并通过所述通讯控制单元将片上总线控制器的读写结果传输至所述外部总线控制器;
所述硬件程序断点处理模块用于根据解析后的硬件程序断点设置命令保存程序断点地址,并在所述处理器单元读取所述断点地址的指令时,以特殊指令替换所述断点地址处的原始指令,以将所述处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
所述硬件程序断点处理模块还用于根据解析后的硬件程序断点清除命令删除相应的程序断点地址;
所述硬件数据断点处理模块用于根据解析后的硬件数据断点设置命令保存数据断点地址,并在所述处理器单元读或写所述断点地址时向所述处理器单元发出特定中断,以将所述处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
所述硬件数据断点处理模块还用于根据解析后的硬件数据断点清除命令删除相应的数据断点地址;
所述程序暂停处理模块用于根据解析后的程序暂停命令向所述处理器单元发出特定中断,以将所述处理器单元引导到特定的调试程序,即刻停止运行等待其它调试命令;
所述程序流程追踪模块用于根据解析后的程序流程追踪命令监测和保存所述处理器单元读取的指令流的地址,并在压缩之后传输至所述外部总线控制器,以便所述调试设备获得被追踪程序的指令流。
4.根据权利要求1所述的调试系统,其特征在于,所述片上总线控制器与所述外部总线控制器通过片上输入输出总线连接,所述片上总线控制器与所述外部总线控制器之间以双向字节流的方式进行数据的传输。
5.根据权利要求1所述的调试系统,其特征在于,所述片上总线控制器同时通过所述处理器单元的系统总线接口、NMI中断信号接口和专有调试接口与所述处理器单元连接。
6.根据权利要求1所述的调试系统,其特征在于,所述外部总线控制器通过UART串口、SPI串口、USB接口或以太网口与所述调试设备连接。
7.一种调试方法,其特征在于,应用于权利要求1~6任一项所述的调试系统,所述调试方法包括:
片上总线控制器内嵌的调试模块对接收到的调试命令进行解析;
所述片上总线控制器内嵌调试模块根据所述解析后的调试命令执行相应调试动作。
8.根据权利要求7所述的调试方法,其特征在于,所述片上总线控制器对接收到的调试命令进行解析之前还包括:
所述片上总线控制器的内嵌调试模块通过外部总线控制器接收调试设备输入的调试命令。
9.根据权利要求8所述的调试方法,其特征在于,根据所述解析后的调试命令执行相应调试动作之后还包括:
所述片上总线控制器的内嵌调试模块通过所述外部总线控制器将调试结果传输至所述调试设备。
10.根据权利要求9所述的调试方法,其特征在于,根据所述解析后的调试命令执行相应调试动作包括:
根据解析后的物理地址空间读写命令触发所述片上总线控制器进行读写动作,并将所述片上总线控制器的读写结果传输至所述外部总线控制器;
根据解析后的硬件程序断点设置命令保存程序断点地址,并在所述处理器单元读取所述断点地址的指令时,以特殊指令替换所述断点地址处的原始指令,以将所述处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
根据解析后的硬件数据断点设置命令保存数据断点地址,并在所述处理器单元读或写所述断点地址时向所述处理器单元发出特定中断,以将所述处理器单元引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
根据解析后的硬件程序断点清除命令删除相应程序断点地址;
根据解析后的硬件数据断点清除命令删除相应数据断点地址;
根据解析后的程序暂停命令向所述处理器单元发出特定中断,以将所述处理器单元引导到特定的调试程序,即刻停止运行等待其它调试命令;
根据解析后的程序流程追踪命令监测和保存所述处理器单元读取的指令流的地址,并将所述指令流的地址压缩之后传输至所述外部总线控制器,以便所述调试设备获得被追踪程序的指令流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610057410.9A CN105550118B (zh) | 2016-01-27 | 2016-01-27 | 调试系统和调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610057410.9A CN105550118B (zh) | 2016-01-27 | 2016-01-27 | 调试系统和调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105550118A true CN105550118A (zh) | 2016-05-04 |
CN105550118B CN105550118B (zh) | 2018-01-30 |
Family
ID=55829312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610057410.9A Active CN105550118B (zh) | 2016-01-27 | 2016-01-27 | 调试系统和调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105550118B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201649A (zh) * | 2016-06-29 | 2016-12-07 | 武汉电信器件有限公司 | 用于光模块监控的虚拟机 |
CN107450512A (zh) * | 2017-07-24 | 2017-12-08 | 核动力运行研究所 | 一种用于核电站dcs控制器状态存取的系统及方法 |
CN108361918A (zh) * | 2018-03-20 | 2018-08-03 | 奥克斯空调股份有限公司 | 空调调试装置、方法及空调器 |
CN109857642A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种ui自动化脚本的阻塞式调试方法及调试工具 |
CN111176997A (zh) * | 2019-12-25 | 2020-05-19 | 珠海格力电器股份有限公司 | 通用化参数管理系统及参数管理方法 |
CN112565036A (zh) * | 2020-11-24 | 2021-03-26 | 炬芯科技股份有限公司 | 数据传输方法、装置、存储介质及通信系统 |
CN113454607A (zh) * | 2019-03-21 | 2021-09-28 | 杭州飞步科技有限公司 | 调试方法、装置及片上系统 |
CN113590470A (zh) * | 2021-06-30 | 2021-11-02 | 龙芯中科(成都)技术有限公司 | 软件调试方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1779653A (zh) * | 2004-11-26 | 2006-05-31 | 上海芯华微电子有限公司 | 片上系统的片上调试器 |
CN101042815A (zh) * | 2007-01-19 | 2007-09-26 | 华南理工大学 | 基于在线可编程逻辑器件的单片机教学实验装置 |
CN102129408A (zh) * | 2011-04-14 | 2011-07-20 | 电子科技大学 | 一种基于记录回放技术的嵌入式软件调试装置和方法 |
CN102968364A (zh) * | 2012-11-16 | 2013-03-13 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于通用调试接口的SoC硬件调试器 |
CN104834587A (zh) * | 2014-02-11 | 2015-08-12 | 珠海格力电器股份有限公司 | 在线调试rs-485总线从机的方法及系统 |
CN205375453U (zh) * | 2016-01-27 | 2016-07-06 | 珠海格力电器股份有限公司 | 调试系统 |
-
2016
- 2016-01-27 CN CN201610057410.9A patent/CN105550118B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1779653A (zh) * | 2004-11-26 | 2006-05-31 | 上海芯华微电子有限公司 | 片上系统的片上调试器 |
CN101042815A (zh) * | 2007-01-19 | 2007-09-26 | 华南理工大学 | 基于在线可编程逻辑器件的单片机教学实验装置 |
CN102129408A (zh) * | 2011-04-14 | 2011-07-20 | 电子科技大学 | 一种基于记录回放技术的嵌入式软件调试装置和方法 |
CN102968364A (zh) * | 2012-11-16 | 2013-03-13 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于通用调试接口的SoC硬件调试器 |
CN104834587A (zh) * | 2014-02-11 | 2015-08-12 | 珠海格力电器股份有限公司 | 在线调试rs-485总线从机的方法及系统 |
CN205375453U (zh) * | 2016-01-27 | 2016-07-06 | 珠海格力电器股份有限公司 | 调试系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201649A (zh) * | 2016-06-29 | 2016-12-07 | 武汉电信器件有限公司 | 用于光模块监控的虚拟机 |
CN106201649B (zh) * | 2016-06-29 | 2019-05-03 | 武汉电信器件有限公司 | 用于光模块监控的虚拟机 |
CN107450512A (zh) * | 2017-07-24 | 2017-12-08 | 核动力运行研究所 | 一种用于核电站dcs控制器状态存取的系统及方法 |
CN108361918A (zh) * | 2018-03-20 | 2018-08-03 | 奥克斯空调股份有限公司 | 空调调试装置、方法及空调器 |
CN109857642A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种ui自动化脚本的阻塞式调试方法及调试工具 |
CN113454607A (zh) * | 2019-03-21 | 2021-09-28 | 杭州飞步科技有限公司 | 调试方法、装置及片上系统 |
CN113454607B (zh) * | 2019-03-21 | 2023-08-22 | 杭州飞步科技有限公司 | 调试方法、装置及片上系统 |
CN111176997A (zh) * | 2019-12-25 | 2020-05-19 | 珠海格力电器股份有限公司 | 通用化参数管理系统及参数管理方法 |
CN112565036A (zh) * | 2020-11-24 | 2021-03-26 | 炬芯科技股份有限公司 | 数据传输方法、装置、存储介质及通信系统 |
CN112565036B (zh) * | 2020-11-24 | 2022-08-30 | 炬芯科技股份有限公司 | 数据传输方法、装置、存储介质及通信系统 |
CN113590470A (zh) * | 2021-06-30 | 2021-11-02 | 龙芯中科(成都)技术有限公司 | 软件调试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105550118B (zh) | 2018-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105550118A (zh) | 调试系统和调试方法 | |
CN109800159B (zh) | 程序调试方法、程序调试装置、终端设备及存储介质 | |
EP1754156B1 (en) | Data processing system with trace co-processor | |
Mera et al. | DICE: Automatic emulation of DMA input channels for dynamic firmware analysis | |
CN101154183B (zh) | 一种微控制器嵌入式在线仿真调试系统 | |
US6598178B1 (en) | Peripheral breakpoint signaler | |
KR101519845B1 (ko) | 안티디버깅 방법 | |
US20160092327A1 (en) | Debugging system and debugging method of multi-core processor | |
KR20180057687A (ko) | 디버깅 방법, 멀티 코어 프로세서, 및 디버깅 장비 | |
CN101084485A (zh) | 用于改善片上仿真系统中高级语言的仿真速度的装置和方法 | |
Li et al. | μAFL: non-intrusive feedback-driven fuzzing for microcontroller firmware | |
CN102508753A (zh) | Ip核验证系统 | |
CN101482848A (zh) | 一种在嵌入式软件运行状态下的动态调试方法及系统 | |
CN105740139B (zh) | 一种基于虚拟环境的嵌入式软件调试方法 | |
CN111367742A (zh) | 调试mvp处理器的方法、装置、终端和计算机可读存储介质 | |
CN205375453U (zh) | 调试系统 | |
CN100474266C (zh) | 一种用于数字信号处理器的调试系统及其调试方法 | |
US5903719A (en) | Emulator apparatus and emulation method for efficiently analyzing program faults | |
CN114265786A (zh) | 自动化测试方法、装置,计算机设备及可读存储介质 | |
Gui et al. | Firmnano: Toward iot firmware fuzzing through augmented virtual execution | |
CN112015649A (zh) | 一种利用片上协计算核心对主计算核心进行调试的方法 | |
KR20050063023A (ko) | 제이티에이지를 이용한 임베디드 시스템의 디버깅 장치 및방법 | |
Li et al. | Research of “Stub” remote debugging technique | |
Hu et al. | Applications of on-chip trace on debugging embedded processor | |
Shilaskar et al. | Post Silicon Validation for I2C (SMBUS) Peripheral |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |