芯片调试系统及方法与系统芯片与流程

文档序号:11918111阅读:354来源:国知局
芯片调试系统及方法与系统芯片与流程

本发明是有关于一种芯片调试系统及方法与系统芯片,且特别是有关于一种可保留调试信息的芯片调试系统及方法与系统芯片。



背景技术:

随着各式电子产品的蓬勃发展,在电子产品中的系统芯片的研发与制造的过程中,开发人员必须对所设计或制造出的系统芯片花费更大量的时间与人力,来进行系统芯片的侦错以及除错。因此,发展出在系统芯片内建立量测线路,并由少数的测试引脚以及串列传输的方式来取代探针检测。而目前此种架构已被定工业标准,并且称之为JTAG(Joint Test Action Group)。目前大部分的系统芯片都提供JTAG边界扫描测试结构以供测试、开发与仿真。一般来说,系统芯片内大多有一个嵌入式的处理器,而此处理器必须包括其可运行的软件或指令才有办法工作。也就是说,处理器所运行的软件的调试对系统芯片的开发来说是一个重要的环节。

一般来说,当系统芯片发生系统当机时,开发人员不一定可清楚得知问题的发生点。于现今的开发过程中,如果系统芯片中的处理器发生当机的情况时,开发人员通常会利用调试工具连接至系统芯片的JTAG接口来查看程序出错点,但此时可能发生调试工具无法成功连接上处理器的现象。开发人员往往需要重置(reset)系统芯片好让调试工具可重新成功连结至处理器,但处理器中可用来侦错的调试信息将因为处理器的重置而被清除,导致开发人员无法得知程序出错点而延长开发时间。进一步来说,当处理器中的调试信息被清除时,开发人员由于不清楚程序出错点因此也难以复制相同的错误来进行侦错。因此,如何完整的保留系统芯片中的调试信息好让开发人员可快速定位出错点并进行调试实为本领域技术人员所关心的重要议题之一。



技术实现要素:

有鉴于此,本发明提供一种芯片调试系统及方法与系统芯片,可让系统芯片于当机时成功重置并同时保留处理器中的调试信息,以利于系统芯片的开发。

本发明提出一种可保留调试信息的芯片调试系统,所述芯片调试系统包括发出控制命令的调试器以及系统芯片。系统芯片包括调试接口模块、重置模块、程序记录与选择模块,以及处理器。调试接口模块连接调试器以接收控制命令,依据该控制命令而产生控制信号与重置信号。重置模块耦接调试接口模块,响应于接收所述重置信号而产生系统重置信号。程序记录与选择模块耦接调试接口模块,以接收控制信号并根据控制信号调整其工作状态。处理器耦接重置模块,响应于接收到系统重置信号而进行系统重启(reboot),以依据程序记录与选择模块的工作状态而运行无穷循环程序或正常启动程序。

在本发明的一实施例中,当处理器运行正常启动程序,处理器进行初始化的设定,并清除记录于处理器中的调试信息。当处理器运行无穷循环程序,处理器不清除记录于处理器中的调试信息。

在本发明的一实施例中,上述的调试接口模块解析控制指令,以根据控制指令当中的第一位元数据而决定控制信号的准位,并根据控制指令当中的第二位元数据而决定重置信号的准位。

在本发明的一实施例中,上述的程序记录与选择模块包括存储器模块以及系统暂存器。存储器模块记录有正常启动程序与无穷循环程序。系统暂存器记录一旗标,响应于接收控制信号而依据控制信号的准位设定旗标的位元值。处理器于系统重启时检查旗标,并依据旗标的位元值运行存储器模块中的正常启动程序或无穷循环程序。

在本发明的一实施例中,在上述的调试接口模块产生控制信号而致使旗标的位元值被设置之后,调试接口模块再发出重置信号而驱动重置模块发出系统重置信号。

在本发明的一实施例中,上述的存储器模块包括一启动只读存储器(bootrom),该启动只读存储器记录有一状态指令。处理器于系统重启时执行存储器模块中的状态指令以检查旗标。

在本发明的一实施例中,上述的程序记录与选择模块包括第一存储器模块、第二存储器模块,以及切换装置。第一存储器模块记录有正常启动程序,而第二存储器模块记录有无穷循环程序。切换装置耦接第一存储器模块、第二存储器模块以及处理器。切换装置的控制端耦接调试接口模块以接收控制信号。切换装置根据控制信号的准位选择连接处理器与第一存储器模块或选择连接处理器与第二存储器模块,致使处理器响应于接收系统重置信号而运行第一存储器模块中的正常启动程序或第二存储器模块中的无穷循环程序。

从另一观点来看,本发明提出一种可保留调试信息的系统芯片,其包括、调试接口模块、重置模块、程序记录与选择模块,以及处理器。调试接口模块连接调试器以接收控制命令,接收该控制命令而产生控制信号与重置信号。重置模块耦接调试接口模块,响应于接收所述重置信号而产生系统重置信号。程序记录与选择模块耦接调试接口模块,以接收控制信号并根据控制信号调整其工作状态。处理器耦接重置模块,响应于接收到系统重置信号而进行系统重启,以依据程序记录与选择模块的工作状态而运行无穷循环程序或正常启动程序。

从再一观点来看,本发明提出一种可保留调试信息的芯片调试方法,适用于处于异常状态下的系统芯片。所述芯片调试方法包括下列步骤。从调试器接收控制命令。依据控制命令产生控制信号与重置信号。响应于接收控制信号而根据控制信号调整工作状态,再响应于接收重置信号而产生系统重置信号。响应于接收到系统重置信号而进行系统重启,以依据工作状态而运行无穷循环程序或正常启动程序。

基于上述,在本发明的芯片调试系统中,系统芯片中的调试接口模块可以解析调试器所发出的自定义控制指令而决定控制信号与重置信号的准位。如此,系统芯片中的程序记录与选择模块可根据控制信号而调整其工作状态,而处理器可响应于重置信号的控制而依据程序记录与选择模块的工作状态而执行正常启动或无穷循环程序。如此,系统芯片可依据控制指令而进行系统复位,而处理器可于系统重启时执行无穷循环程序而避免处理器内的调试信息被清除。本发明可提高对系统芯片进行软件调试的便利性,以及避免因处理器当机而导致调试信息丢失的状况,从而大幅提高芯片开发的速度与效率。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。

附图说明

图1是依据本发明一实施例所绘示的芯片调试系统的方块示意图。

图2是依据本发明一实施例所绘示的芯片调试方法的流程图。

图3是依据本发明一实施例所绘示的芯片调试系统的方块示意图。

图4是依据本发明一实施例所绘示的芯片调试方法的流程图。

图5是依据本发明一实施例所绘示的芯片调试系统的方块示意图。

附图标记说明

10:芯片调试系统

100:调试器

200:系统芯片

210:调试接口模块

220:重置模块

230:程序记录与选择模块

240:处理器

230a:正常启动程序

230b:无穷循环程序

240a:调试信息

cmd:控制指令

Ctr:控制信号

rst_1:重置信号

rst_2:系统重置信号

231:系统暂存器

232:存储器模块

233:切换装置

234:第一存储器模块

235:第二存储器模块

230c:状态指令

231a:旗标

S201~S206、S401~S406:步骤

具体实施方式

为了使本发明的内容更为明了,以下列举实施例作为本发明确实能够据以实施的范例。另外,凡可能之处,在图式及实施方式中使用相同标号的元件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的元件/构件/步骤可以相互参照相关说明。

图1是依据本发明一实施例所绘示的芯片调试系统的方块示意图。请参照图1,芯片调试系统10包括调试器100以及系统芯片200。系统芯片100是透过在单一芯片上建构了许多种类且具有不同功能的电路模块而成。举例来说,系统芯片100可能包括处理器、数位信号处理器或存储器等元件。调试器100为一种用于调试(debug)其它程序的电脑程序及工具,其能够让程序码在指令组模拟器中可以检查运行状况以及选择性地运行,以便侦错与除错。举例而言,调试器212可以是GDB(Gun Debugger)调试器,其具有针对多种不同处理器核心架构上所执行的软件进行调试与侦错的能力。

系统芯片200包括调试接口模块210、重置模块220、程序记录与选择模块230,以及处理器240。于一实施例中,调试接口210模块可包括用以调试处理器240所需的硬件元件(例如,特定电路或储存单元等)及/或软件元件(例如,专门用以实现特定功能的软件模块或函式等)。处理器240例如是封装成单一芯片的嵌入式微处理器或微控制器等,在此并不限制其范围。处理器240的核心架构例如是ARM公司开发的ARM、IBM公司开发的System/370、Intel公司开发的X86及X86-64、MIPS公司开发的MIPS等等,在此并不限制其范围。处理器240可包括暂存器列或其他存储元件,其用来记录软件执行时的相关信息。举例来说,处理器240的暂存器列可包括位址暂存器、指令暂存器、程序计数器或旗标暂存器等等,本发明对此不限制。于本范例实施例中,调试信息240a为处理器240执行软件而记录于暂存器列或其他存储元件中的相关数据。

调试器100可经由调试接口模块210连接至处理器240,致使处理器240接受调试器100所下达的调试指令并将调试结果回传至调试器100。上述调试指令例如是开始调试指令、结束调试指令、设定中断点(breakpoint)指令或设定监视点(watch point)指令等。调试接口模块210例如是支援JTAG协议(IEEE1149.1)的信号传输接口,但本发明并不限制调试接口模块210的种类。举例来说,调试接口模块210也可以是支援高速数位电路边界扫描测试协议(IEEE1149.6)的信号传输接口。

于本范例实施例中,调试接口模块210连接调试器100以接收控制命令cmd,并依据控制命令cmd而产生控制信号Ctr与重置信号rst_1。重置模块220可响应于重置信号rst_1的准位而发出系统重置信号到系统芯片内的大部分功能模块,使大部分的功能模块可以复位为预设状态。于本实施例中,重置模块220可响应于重置信号rst_1的准位而发出系统重置信号rst_2至处理器240。需说明的是,重置模块220并不会发 送模块重置信号至系统芯片200内的时脉产生模块(clock generator module)(未绘示)、接脚模块(strap pin module)(未绘示),以及调试接口模块210。

程序记录与选择模块230耦接调试接口模块210与处理器240,其包括用以记录正常启动程序230a以及无穷循环程序230b的程序存储元件。处理器240耦接至程序记录与选择模块230,以执行程序记录与选择模块230所储存的正常启动程序230a或无穷循环程序230b。需说明的是,当处理器240执行正常启动程序230a时,处理器240将进行初始化的设定,致使处理器240将其暂存器列中的数据清除或将多个控制参数恢复成预设值。无穷循环程序230b为一程序码段,当处理器240执行无穷循环程序230b时,处理器240不会进行初始化的设定而是不中断地反复执行相同的设定动作。

也就是说,当处理器240进行系统重启时,处理器240将因为执行正常启动程序230a或无穷循环程序230b而相对应地清除或不清除调试信息240a。于本范例实施例中,程序记录与选择模块230接收控制信号Ctr并根据控制信号Ctr调整其工作状态。于是,处理器240将响应于接收到系统重置信号rst_2而进行系统重置(reboot),以依据程序记录与选择模块230的工作状态而运行无穷循环程序230b或正常启动程序230a。

图2是依据本发明一实施例所绘示的芯片调试方法的流程图。本实施例的方法适用于图1所示的芯片调试系统10,以下即搭配图1所示的各模块与元件来说明本实施例的详细步骤。

于步骤S201,调试接口模块210从调试器100接收控制命令cmd。于步骤S202,调试接口模块210依据控制命令cmd而产生控制信号Ctr与重置信号rst_1。进一步来说,调试接口模块210解析控制指令cmd,以根据控制指令cmd当中的第一位元数据而决定控制信号Ctr的准位,并根据控制指令cmd当中的第二位元数据而决定重置信号rst_1的准位。详言之,调试接口模块210可依据其接口协议解析控制指令cmd并获取一个二进位的位元序列,调试接口模块210可从所述位元序列中的第一/二位元数据而决定控制信号Ctr/重置信号rst_1的准位。举例而言,当第一位元数据判读为‘0’时,调试接口模块210可控制控制信号Ctr维持为低准位。相反地,当第一位元数据判读为‘1’时,调试接口模块210可控制控制信号Ctr产生一脉冲或是维持为高准位,本发明对此并不限制。另外,本实施例中的第一位元数据及第二位元数据仅用以表达控制指令cmd具有多个位元数据,分别可关联于控制信号Ctr及重置信号rst_1,而非限制控制信号Ctr与重置信号rst_1对应的位元顺序。

于步骤S203,程序记录与选择模块230响应于接收控制信号Ctr而根据控制信号Ctr调整工作状态,再响应于接收重置信号rst_1而产生系统重置信号rst_2。具体来说,程序记录与选择模块230可根据控制信号Ctr的准位而将其工作状态调整为相异的第一状态或第二状态。于步骤S204,处理器240响应于接收到系统重置信号rst_2而进行系统重置,以便在重置后依据程序记录与选择模块230的工作状态而运行正常启动程序230a(步骤S205)或无穷循环程序230b(步骤S206)。于步骤S205,当处理器240运行正常启动程序230a,处理器240进行初始化的设定,并据以清除调试信息240a。于步骤S206,当处理器240运行无穷循环程序230b,处理器240并未进行初始化设定,因此不会清除记录于处理器240内的调试信息240a。如此一来,系统芯片200可在成功重置的条件下不丢失调试信息240a,此时,就可以方便开发人员利用调试工器100重新连接到处理器240读取试调信息240a,以快速定位程序错误点并进行调试。

然而,需特别说明的是,所述调整程序记录与选择模块230的工作状态可以是调整一个切换装置的连结状态或设置一旗标的二进位位元值。以下将分别列举实施例以详细说明之。

图3是依据本发明一实施例所绘示的芯片调试系统的方块示意图。请参照图3,于本范例实施例中,程序记录与选择模块230包括系统暂存器231以及存储器模块232。存储器模块232记录有正常启动程序230a、无穷循环程序230b以及状态指令230c。系统暂存器231记录一旗标231a,并响应于接收控制信号Ctr而依据控制信号Ctr的准位设定旗标231a的位元值。处理器240于系统重启时检查旗标231a,并依据旗标231a的位元值来决定运行存储器模块232中的正常启动程序230a或无穷循环程序230b。于一实施例中,存储器模块232例如是启动只读存储器(bootrom),当处理器240于系统重启时将自行载入启动只读存储器中的程序。于本范例实施例中,启动只读存储器记录有状态指令230c,且处理器240将于系统重启时率先执行启动只读存储器中的状态指令230c,以于执行正常启动程序230a或无穷循环程序230b之前先检查旗标231a。

图4是依据本发明一实施例所绘示的芯片调试方法的流程图。本实施例的方法适用于图3所示的芯片调试系统10,以下即搭配图3所示的各模块与元件来说明本实施例的详细步骤。

于步骤S401,调试接口模块210从调试器100接收控制命令cmd。于步骤S402,调试接口模块210依据控制命令cmd而产生控制信号Ctr与重置信号rst_1。需说明的 是,于本范例实施例中,调试接口模块210先产生控制信号Ctr而致使旗标231a的位元值被设置之后,调试接口模块210再发出重置信号rst_1而驱动重置模块220发出系统重置信号rst_2。

于是,于步骤S403,程序记录与选择模块230响应于接收控制信号Ctr设定系统暂存器231中的旗标231a的位元值,重置模块220再响应于接收重置信号rst_1而产生系统重置信号rst_2并据以进行系统重置。举例而言,当控制信号Ctr被调试接口模块210控制为高准位时,系统暂存器231中的旗标231a的位元值被设置为‘1’。相反地,当控制信号Ctr被调试接口模块210控制为低准位时,系统暂存器231中的旗标231a的位元值被设置为‘0’。然而,控制信号Ctr的准位与旗标231a的位元值之间的对应关系可视实际应用而设计之,本发明对此不限制。

于步骤S404,处理器240响应于接收到系统重置信号rst_2而执行存储器模块232中的状态指令230c,从而查看设定后的旗标231a,并依据旗标231a的位元值决定运行正常启动程序230a或无穷循环程序230b。于步骤S405,当处理器240运行正常启动程序230a,处理器240进行初始化的设定,并据以清除调试信息240a。于步骤S406,当处理器240运行无穷循环程序230b,处理器240不会清除记录于处理器240内的调试信息240a。

图5是依据本发明一实施例所绘示的芯片调试系统的方块示意图。请参照图5,于本范例实施中,程序记录与选择模块230包括第一存储器模块234、第二存储器模块235,以及切换装置233。第一存储器模块234记录有正常启动程序230a,而第二存储器模块235记录有无穷循环程序230b。第一存储器模块234例如是启动只读存储器。此外,于本实施例中,北桥芯片250耦接于处理器240以及程序记录与选择模块230之间。北桥芯片250是处理器240与系统芯片200内其他功能模块之间的连接桥梁,北桥芯片250与处理器240皆可响应于系统重置信号rst_2的准位而回复为预设状态。

切换装置233耦接第一存储器模块234、第二存储器模块235以及处理器240。切换装置233可以是开关、多工器、逻辑电路,或由其组合所组成的元件,本发明对此不限制。切换装置233的控制端耦接调试接口模块210以接收控制信号Ctr。于是,根据控制信号Ctr的准位,切换装置233选择连接处理器240与第一存储器模块234或者选择连接处理器240与第二存储器模块235,致使处理器240响应于接收系统重置信号rst_2而运行第一存储器模块234中的正常启动程序230a或第二存储器模块235 中的无穷循环程序230b。当处理器240运行第一存储器模块234中的正常启动程序230a时,处理器240进行初始化的设定,并且清除调试信息240a。另一方面,当处理器240运行第二存储器模块235中的无穷循环程序230b时,处理器240不清除调试信息240a。也就是说,于图5所示的实施例中,系藉由硬件实现的方式来控制处理器240于系统启时执行正常启动程序230a或无穷循环程序230b。

进一步说明,在上述各个实施例中,当调试器100成功连接到处理器240并取得保留在处理器240内的调试信息240a后,调试器100可再发出另一控制指令cmd,并使得调试接口模块210根据控制指令cmd产生新的控制信号Ctr及重置信号rst_1。此时的控制信号Ctr改变系统暂存器231中的旗标231a位元值,而重置信号rst_1同样用以驱动重置模块230发出系统重置信号rst_2,以使得系统因为响应系统重置信号rst_2重置而离开无限回圈程序230b,并且在重新启动后根据旗标231a的位元值而运行正常启动程序230a。

综上所述,于本发明的实施例中,透过解析自定义的控制指令,调试接口模块可分别输出重置信号与控制信号至重置模块与程序记录与选择模块。在处理器进行系统重启之前,程序记录与选择模块可依据控制信号而调整其工作状态。如此,当处理器接收到重置模块产生的系统重置信号时,处理器可进行系统重启并依据程序记录与选择模块的工作状态而执行正常启动程序或无穷循环程序,并据以保留或清除处理器中的调试信息。如此一来,即便系统芯片发生操作异常或进入当机状态,透过控制指令的下达,还是可将系统重置以便让调试器重新连接至处理器,并且同时将调试信息保留于处理器内。基此,本发明可提高芯片调试系统的便利性,以及避免因系统芯片的重置而导致调试信息丢失的现象,从而大幅提高芯片开发的速度与效率。

虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的申请专利范围所界定者为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1