CN107111546B - 用于在多核心微控制器中产生跨核心断点的系统及方法 - Google Patents

用于在多核心微控制器中产生跨核心断点的系统及方法 Download PDF

Info

Publication number
CN107111546B
CN107111546B CN201680004616.3A CN201680004616A CN107111546B CN 107111546 B CN107111546 B CN 107111546B CN 201680004616 A CN201680004616 A CN 201680004616A CN 107111546 B CN107111546 B CN 107111546B
Authority
CN
China
Prior art keywords
breakpoint
processor core
integrated circuit
logic
emulator
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.)
Active
Application number
CN201680004616.3A
Other languages
English (en)
Other versions
CN107111546A (zh
Inventor
布赖恩·克里斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of CN107111546A publication Critical patent/CN107111546A/zh
Application granted granted Critical
Publication of CN107111546B publication Critical patent/CN107111546B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2231Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test interrupt circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

在一种用于具有多个处理核心的集成电路装置的调试方法中,激活所述集成电路装置中的第一处理器核心处的调试断点。在激活之后,所述调试断点停止所述第一处理器核心中指令的执行,且将所述调试断点传递到所述集成电路装置中的第二处理器核心。

Description

用于在多核心微控制器中产生跨核心断点的系统及方法
相关专利申请案
本申请案主张于2015年2月5日申请的共同拥有的第62/112,552号美国临时专利申请案的优先权,所述美国临时专利申请案特此出于全部目的而以引用的方式并入本文中。
技术领域
本发明涉及处理器,且特定地说,涉及用于在多核心处理器(特定地说非对称多核心处理器)中产生跨核心断点的系统及方法。
背景技术
处理器断点是为调试目的而放置于适当位置的程序中的停止位置,还称为暂停。处理器断点通常在存取特定存储器位置时被触发。在中断期间,检查存储器、寄存器等环境以确定程序是否如预期那样运作。所述存储器位置可在程序存储器中且可包括特定指令,当由处理器提取时,所述特定指令可触发断点且停止执行。这些类型的断点可仅需要比较程序计数器与相应存储器地址。然而,所述存储器位置还可在数据存储器中,且写入或读取操作中的任一者或两者可触发断点且停止指令的进一步执行。
大多数多处理器装置使用对称处理器核心。按定义,所述核心是可互换的、共享存储器、外围设备及软件任务。在系统软件变为自由时,为其分配可用处理器。因此,调试局限于特定核心。因此,无需确定另一核心同时在做什么。
然而,在具有非对称处理器核心的多处理器装置中,非对称核心具有不同的存储器及外围设备集合,还可按不同速度操作且执行不同软件程序。在此情况中,一个处理器的功能由此可影响另一处理器。
因此,需要使特定处理器的断点事件与其它处理器正进行的事件相关。
发明内容
如下文将更详细说明,实施例提供在多核心处理装置中将处理器断点传递到其它处理器核心。实施例可尤其适用于多核心处理装置。
根据实施例,一种用于包括多个处理核心的集成电路装置的调试方法可包括:激活所述集成电路装置中的第一处理器核心处的调试断点,其中所述调试断点停止指令在所述第一处理器核心中的执行;及将所述调试断点传递到所述集成电路装置中的第二处理器核心。
根据又一实施例,所述方法进一步可包括:设置断点寄存器中的一或多个跨断点启用位,由此启用传递所述调试断点的步骤。根据又一实施例,传递所述调试断点可包括:断言所述第二处理器核心处的断点,其中所述断点停止指令在所述第二处理器核心中的执行。根据又一实施例,所述方法进一步可包括:设置断点寄存器中的一或多个跨断点中断启用位,由此启用传递所述调试断点的所述步骤。根据又一实施例,传递所述调试断点可包括:断言与所述第二处理器核心相关联的中断控制器处的断点中断。根据又一实施例,在接收到所述断点中断之后,所述第二处理器核心可执行中断服务例程。根据又一实施例,所述中断服务例程可产生与所述调试断点有关的数据。根据又一实施例,可将所述数据传递到主机系统。根据又一实施例,所述第一处理器核心可由第一系统时钟计时且所述第二处理器核心是由不同于所述第一系统时钟的第二系统时钟计时。根据又一实施例,传递所述调试断点可包括:使所述调试断点与所述第二系统时钟同步。根据又一实施例,所述调试断点可由多个可编程断点产生。根据又一实施例,所述可编程断点可包括指令断点及数据断点。根据又一实施例,所述第一处理器核心可为主控核心且所述第二处理器核心可为从属核心。根据又一实施例,所述第一处理器核心可为从属核心且所述第二处理器核心是主控核心。
根据另一实施例,一种具有多个处理器核心的集成电路装置包括:第一处理器核心,其包含用于激活第一处理器核心断点的第一仿真器逻辑;第二处理器核心,其通信耦合到所述第一处理器核心且包含第二仿真器逻辑;及第一跨断点逻辑,其在所述第一仿真器逻辑内且经配置以将由所述第一处理器核心处的所述第一仿真器逻辑激活的断点传递到所述第二处理器核心。
根据又一实施例,所述第一跨断点逻辑可将所述断点传递到所述第二处理器核心的所述第二仿真器逻辑,由此停止指令在所述第二处理器核心处的执行。根据又一实施例,所述集成电路装置进一步可包括断点寄存器,所述断点寄存器包括可操作以启用所述第一跨断点逻辑以将所述断点传递到所述第二仿真器逻辑的一或多个跨断点启用位。根据又一实施例,所述第二仿真器逻辑可包括第二跨断点逻辑,其经配置以将由所述第二处理器核心处的所述第二仿真器逻辑激活的断点传递到所述第一处理器核心。根据又一实施例,所述跨断点逻辑可将所述断点作为中断请求传递到与所述第二处理器核心相关联的中断输入。根据又一实施例,所述集成电路装置进一步可包括断点寄存器,所述断点寄存器包括可操作以启用所述跨断点逻辑以将所述中断请求传递到与所述第二处理器核心相关联的所述中断输入的一或多个跨断点中断启用位。根据又一实施例,每一仿真器逻辑可包括与一组外部引脚耦合的接口。根据又一实施例,第一组外围装置可集成于所述集成电路装置内且与所述第一处理器核心耦合,由此形成第一微控制器,且第二组外围装置可集成于所述集成电路装置内且与所述第二处理器核心耦合,由此形成第二微控制器。根据又一实施例,所述第一微控制器可作为主控器操作且所述第二微控制器可作为从属器操作。根据又一实施例,所述第一处理器核心可由第一系统时钟计时且所述第二处理器核心可由不同于所述第一系统时钟的第二系统时钟计时。根据又一实施例,所述集成电路装置进一步可包括使所述跨断点逻辑与所述第二处理器核心介接的跨时钟电路。根据又一实施例,所述跨时钟电路可耦合于所述跨断点逻辑与相关联于所述第二处理器核心的中断控制器之间。根据又一实施例,所述第一组外围装置及/或所述第二组外围装置可包括串行通信外围设备。根据又一实施例,所述第一及/或第二仿真器逻辑可操作以配置多个可编程断点。根据又一实施例,所述可编程断点可包括指令断点及数据断点。
附图说明
随附于本说明书且形成本说明书的部分的图式经包含以描绘本发明的特定方面。应注意,图式中所说明的特征不一定按比例绘制。通过结合附图参考以下描述可获得对本发明及其优点的更全面理解,在图式中,相似参考数字指示相似特征,且其中:
图1是说明根据实施例的示范性多核心处理装置的图。
图2是说明根据实施例的示范性断点寄存器的图。
图3说明根据实施例的示范性断点控制逻辑。
图4说明根据实施例的示范性断点中断控制逻辑。
图5是说明根据实施例的示范性断点状态寄存器的图。
图6说明根据实施例的示范性跨时钟电路。
图7说明根据实施例的用于对多核心处理装置进行调试的示范性系统。
图8说明于图7的实施例中使用的示范性同步器脉冲产生器。
图9展示具有两个仿真器及目标板的开发系统。
图10展示集成电路的外壳,所述集成电路包括双核心微控制器及其相应单功能及多功能引脚。
具体实施方式
参考在附图中说明且在以下描述中详述的示范性实施例更全面说明本发明及其各种特征及有利细节。
现参考图式且特别关注图1,展示且整体通过参考数字100标示说明根据各种实施例的示范性非对称多核心处理装置(即,微处理器或微控制器)的图。在本申请案的内容背景中,术语“非对称”用以描述两个或两个以上核心独立操作。处理器核心可为相同的,但依据不同存储器操作,且如果为微控制器实施方案那么用不同外围装置操作。根据其它实施例,可实施两个不同核心或可实施用不同系统时钟运行的两个相同核心。然而,本申请案的原理不限于此类实施方案,而是还可于具有用相同系统时钟运行的两个相同核心但每一核心独立于另一核心操作的实施方案中使用。
在图1中说明的实施例中,处理装置100可包含第一核心102及第二核心104。在一些实施例中,第一核心102可为例如第一微处理器核心(中央处理单元),而第二核心104可为第二微处理器核心或DSP(数字信号处理器)。两个核心的其它配置是可行的。如下文将更详细说明,第一核心102及第二核心104可分别包含集成于所述核心内的仿真器逻辑106、108或与其通信耦合。仿真器逻辑106、108进一步可分别包含跨间断逻辑(cross breaklogic)114、115,如下文将更详细说明。每一核心102及104还分别包括中断控制器120及122。最后,每一核心102、104可分别与一组控制及状态寄存器110、112相关联。取决于核心的架构,这些寄存器可集成于所述核心内或如图1中所展示那样布置于核心102、104的外部。特定地说,一些实施例提供状态寄存器110、112以将断点作为断点请求及/或中断启用请求从一个处理器核心传播到另一处理器核心,且设置指示已接收到断点的状态位。另外,在一些实施例中,处理装置100可包含如上文提及的可编程中断控制器120、122以断言每一对应核心处的中断。此外,图1中展示主从接口107,其提供两个核心102与104之间的通信。所展示的配置仅为示范性的。其它配置是可行的。举例来说,一些处理装置可采用两个以上核心及相关联控制及状态寄存。
两个核心可布置成集成电路装置150内的主从核心配置,如图2中所展示,例如,第一微处理器核心可实施为主控核心,而第二微处理器或DSP核心是实施为从属器。此配置允许主控器控制特定功能。具有多个核心的集成电路(IC)装置进一步可经设计以实施两个微控制器。根据一些实施例,如图2中所展示,将每一核心的相应独立外围装置(例如DMA、PMD以及存储器、I/O端口)集成于IC内以形成单个IC装置内的两个单独微控制器。IC进一步可包括主控及从属装置的可配置共享资源。举例来说,主控器可具有具ECC及16K RAM的64Kbytes到128Kbytes的程序快闪存储器。根据一个实施例,从属器可装备有具ECC的24Kbytes的程序RAM(PRAM)(其可为易失性的)及4K数据存储器RAM。其它配置是可行的。可使用消息框及FIFO(MSI)在主控核心与从属核心之间进行通信。可实施其它硬件功能。
根据如图2中所展示的实施例,从属处理器子系统是基于程序RAM的应用程序加速器。从属核心的编程将驻留在主控处理器的快闪存储器中。在系统启动后的某一时间,主控处理器在用户控制下将从属器的编程图像从快闪存储器传送到从属器的程序RAM。从属器的初始化一经完成,主控器就启用从属器。由从属处理器执行从属器码,且其第一任务在于初始化其外围设备。一旦主控及从属处理器操作,其便通过MSI模块107向彼此传递信息、命令及状态。MSI模块107提供数个寄存器(邮件信箱),通过所述寄存器,可在处理器之间共享信息。中断逻辑与MSI寄存器相关联,其用作旗号(旗标)以在信息准备开始传送时获得另一处理器的关注。存在用于此非对称双核心架构的许多使用模型:客户产生的功能可包含小型密集计算(滤波器,PID);中型任务(BLDC控制);或大型程序(BLDC自动调谐)。从属处理器核心的意图在于充当“应用程序加速器”。用户确定应用程序代码的哪一小部分需要加速。在许多电机控制及功率控制应用程序中,总体应用程序的极小子集(数K字节)经常运行使得其消耗大量处理器的时间(可能80%)。应用程序加速器帮助将应用程序软件分割成两个区块:小控制回路及较大一般应用程序(通信、安全检查、用户接口等)。控制软件通常是由与开发一般用途及通信软件的人不同的一组人开发。具有两个处理器帮助“硬实时”控制软件与应用程序的较大但较不具时效性的部分的系统集成。虽然从属处理器的程序存储器是基于RAM的,但其它实施例还可针对从属处理器实施快闪存储器(内部或外部)。虽然使用从属快闪存储器是昂贵的,但其可提供极高的安全等级。
根据一个实施例,如图2中所展示的主控核心可实施为由100MHz系统时钟计时的dsPIC处理器核心。此核心的基本架构在所属领域中是众所周知的,且其可购自本申请案的受让人微芯技术公司(Microchip Technology Inc.)。第二核心还可实施为以120MHz运行的dsPIC处理器。第二核心(从属)比第一核心运行得更快的事实是基于由更快速易失性随机存取存储器提供的程序存储器的实施方案,而第一核心依据非易失性快闪存储器运行。然而,其它配置是可行的。虽然这些核心各自具有其自身的外围设备,如图2中所展示,但可共享特定特征,例如振荡器、复位逻辑、欠压复位模块、电压调节器、JTAG等。此外,还可通过相应多路复用控制逻辑(未展示)共享外部引脚。所述引脚的所有权可为可配置的。
现参考图3,展示示范性断点寄存器的图。处理装置中的每一核心可与其自身的断点寄存器相关联。断点寄存器200包含跨断点启用(CBE)位202及跨断点中断启用(CBIE)位204。通常,针对每一断点提供断点寄存器。如下文将更详细说明,当遇到断点时,核心将更新对应状态寄存器(包含跨断点启用位202或跨断点中断启用位204)以将所述断点传播到相应另一核心。以同时模式使用跨断点启用位202,在所述模式中可同时对多个核心进行调试。以准同时模式使用跨断点中断启用位204,在所述模式中对核心进行调试而另一核心运行程序代码。在此情况中,触发中断以引起所述另一核心得以调试而第一核心继续运行程序代码。
特定地说,根据实施例,CBE位启用来自一个处理器核心的调试模块的间断信号以传播到另一处理器核心的调试模块。这允许处理器上的间断条件大约同时还使另一处理器间断。另一方面,CBIE位启用来自处理器核心的调试模块的间断信号以传播到另一处理器核心的中断控制器。这允许处理器上的间断条件大约同时中断另一处理器。此特征在客户可能不希望另一处理器在其处于控制回路中时停止的控制应用程序中是有用的。间断中断允许在间断事件时在另一处理器上收集信息。相应状态位可用以指示从所述另一处理器接收到间断事件请求。
图4展示对应跨断点请求逻辑300。此逻辑可为图1的逻辑114、115的实施例。可在允许对多个处理器同时调试的模式中采用跨断点启用逻辑。在所说明的实施例中,逻辑包含OR门302、AND门304a、…、304k。通常,针对每一断点提供一个这样的AND门。在操作中,到每一AND门的一个输入是对应断点状态指示符,即状态旗标。另一输入是在激活对应断点时设置的来自断点寄存器200(图3)的跨断点启用位202。因此,在操作中,当断点在作用中时,核心设置对应跨断点启用位。这引起逻辑300的输出断言在另一核心的仿真器逻辑的断点输入(未展示)处接收的跨断点请求。应注意,可采用其它等效逻辑。
类似地,图5中展示跨断点中断启用逻辑400。此逻辑可为图1的逻辑114、115的实施例。可在准同时调试的模式中采用此跨断点中断启用逻辑,在所述模式中对多个处理器中的一者进行调试而其它处理器运行应用程序代码。在所说明的实施例中,逻辑包含OR门402、AND门404a到404k。通常,针对每一断点提供AND门。在操作中,到每一AND门的一个输入是对应断点状态指示符,即状态旗标。另一输入是在激活对应断点时设置的来自断点寄存器200(图3)的跨断点中断启用位204。因此,在操作中,当断点在作用中时,核心设置对应跨断点中断启用位。这引起逻辑400的输出断言在另一核心的中断逻辑112的输入处接收的跨断点中断请求。另外,可采用任何适合等效逻辑。
在实施准同时模式时,采用处理装置中断控制器来断言对应核心处的中断且设置所述核心的中断状态寄存器。图6中展示示范性中断状态寄存器500。每一处理器核心的断点状态寄存器500包含对应于适当断点中断的一或多个中断状态旗标且在接收到中断请求时被设置。
图7展示用于每一处理核心的断点接口650的实例。如所展示,可使用OR门670产生且组合各个断点。举例来说,断点逻辑660可经提供以产生用户断点。其它外围装置(例如(举例来说)监视器外围设备、电力节省功能或时钟切换单元)可产生单独断点。可实施在内部或外部事件之后产生断点的其它单元。同步器脉冲产生器600用以转送来自另一核心的信号。此同步器脉冲产生器600可通过图8中所展示的用于中断请求的对应跨时钟电路实施。特定地说,电路600包含触发器602、604、606。触发器604、606是由接收处理器核心的时钟计时。触发器602的时钟输入是从请求处理器核心的跨断点中断(即,跨断点中断启用逻辑400的输出)提供。电路600的输出反馈到触发器602的复位(RESET)输入,且输出到接收处理器的中断控制器112(图1)且用以设置状态寄存器500的中断状态旗标502。
因此,各种实施例使得用户能够对多核心处理装置、特定地说具有以不同(特定地说)独立系统时钟运行的两个核心的非对称多核心处理装置进行调试。图9中展示可结合本文中的系统及方法一起使用的示范性调试环境700。如所展示,环境700包含目标板703上的目标多核心IC装置702,所述目标板703包含用于通向对应内电路仿真器(ICE)704、706的接口710、712。在其中期望对一个以上处理器同时调试的实施例中,针对每一处理器提供ICE。因此,在所说明的实施例中,可同时对多达两个处理核心进行调试。ICE704、706可具体实施为由本申请案的受让人微芯技术公司(Microchip technologies Inc.)制造且销售的REALICE仿真器,然而其它类型是可行的。每一ICE 704、706耦合到计算机708,例如个人计算机、膝上型计算机、工作站或运行集成开发环境(IDE)(例如还可购自本申请案的受让人的MPLABX环境)的其它装置。
图10展示仅具有28个引脚及两个处理核心的集成电路装置中的可能引脚输出。三组外部引脚PGECx及PGEDx以及任选地SMCLRx提供第一及/或第二处理核心的串行编程接口。此类串行接口是具有单独时钟及数据信号线的同步接口。摸拟系统提供内电路调试器能力。ICD能力需要使用客户的功能引脚。图9展示典型ICD连接。处理器核心在客户目标板的IC 702中。IC 702必须专用PGCx及PGDx引脚以一次支持对一个处理器的调试。为支持对两个处理器的同时调试,客户板必须将2个PGCx及2个PGDx引脚外加用于从属核心的另一引脚(SMCLRx)专用为到如图10中所展示的REAL ICE的接口。主控器及从属器ICD两者(分别)在FICD及SLVICD1寄存器中的快闪存储器(BKBUG及ICS[1:0])中具有其自身的配置位。选择其相应的PGC/D引脚对及用于从属器的相关联SMCLRx引脚。装置上电复位及欠压复位POR/BOR将复位主控器且迫使从属器进入复位状态,直到控制寄存器中的SLVEN位由主控器再次设置。根据实施例,装置MCLR将复位主控器但不影响从属器。从属器SMCLR将迫使从属器进入复位状态,直到SLVEN位由主控器再次设置。主控器运行时间复位将不会影响从属器。从属器运行时间复位将复位从属器但不会使其停止。
如上文提及,在一些实施例中,多种调试模式可为可用的。这些模式可包含仅主控内核模式;仅从属内核模式;同时调试模式;及准同时调试模式。
在仅主控内核模式中,调试类似于对常规dsPIC或PIC MCU或任何其它微控制器进行调试。通常,在此模式中,单个ICE电路仿真器704耦合到目标板703及运行IDE的主计算机708。
在仅从属内核模式中,调试与传统dsPIC或MCU相同。同样,单个ICE仿真器706经提供且耦合到目标板及运行IDE的计算机708。
在同时模式中,对多核心装置702中的主控核心102及从属核心104两者实施同时调试。如上文讨论,跨核心断点响应于断言跨断点及启用位而同时使两个核心停止(间断)。在此情况中,调试环境包含ICE 704、706两者(每一处理器核心一个ICE)且两者再次耦合到主计算机708上运行的IDE。
准同时主控器及从属器调试模式用以对主控器或从属器中的一者或另一者调试,且使另一处理器保持运行应用程序代码。在此情况中,跨核心断点响应于设置对应状态寄存器中的跨断点中断启用位而产生到另一核心的中断。调试环境可包含一个或两个ICE。举例来说,产生馈送到另一核心的断点中断的处理器核心可与ICE 704连接,而另一核心可无需连接到ICE。相反地,另一核心可通过串行或并行接口与主机耦合以接收在相应中断服务例程中产生的信息。根据另一实施例,另一核心还可与包括跟踪接口的ICE 706耦合,所述跟踪接口可接收在调试中断服务例程中产生的信息。

Claims (15)

1.一种包括多个微控制器的集成电路装置,所述多个微控制器互相独立操作,所述集成电路进一步包括:
所述多个微控制器中的第一微控制器,其包括第一处理器核心、相关第一程序存储器以及用于激活第一处理器核心断点的第一仿真器逻辑,
所述第一微控制器进一步包括多个第一外围装置,其中所述第一外围装置中的一者是串行通信外围设备;断点寄存器,其位于所述第一微控制器之内且与所述第一处理器核心耦合以用于配置所述第一处理器核心处的调试断点,所述断点寄存器包括用于激活跨断点的至少一个位;
所述多个微控制器中的第二微控制器,其包括第二处理器核心,其通信耦合到所述第一处理器核心且包含第二仿真器逻辑;
其中所述第二微控制器包括与所述第二处理器核心相关联的第二程序存储器以及多个第二外围装置,其中所述第二外围装置中的一者是串行通信外围设备;以及第一跨断点逻辑,其在所述第一仿真器逻辑内,当所述至少一个位被设置时,所述第一跨断点逻辑经配置以通过所述第一处理器核心处的所述第一仿真器逻辑将跨断点信号传递到所述第二处理器核心,由此停止所述第二处理器核心中指令的执行。
2.根据权利要求1所述的集成电路装置,其中所述第二仿真器逻辑包括第二跨断点逻辑,其经配置以将由所述第二处理器核心处的所述第二仿真器逻辑激活一断点传递到所述第一处理器核心。
3.根据权利要求1所述的集成电路装置,其中所述第一跨断点逻辑将所述断点作为中断请求传递到与所述第二处理器核心相关联的中断输入。
4.根据权利要求3所述的集成电路装置,其中所述断点寄存器包括可操作以启用所述第一跨断点逻辑以将所述中断请求传递到与所述第二处理器核心相关联的所述中断输入的一或多个跨断点中断启用位。
5.根据权利要求1所述的集成电路装置,其中每一仿真器逻辑包括与一组外部引脚耦合的接口。
6.根据权利要求5所述的集成电路装置,其中第一组外围装置集成于所述集成电路装置内且与所述第一处理器核心耦合,由此形成第一微控制器,且第二组外围装置集成于所述集成电路装置内且与所述第二处理器核心耦合,由此形成第二微控制器。
7.根据权利要求5所述的集成电路装置,其中所述第一微控制器作为主控器操作,且所述第二微控制器作为从属器操作。
8.根据权利要求6所述的集成电路装置,其中所述第一组外围装置及/或所述第二组外围装置包括串行通信外围设备。
9.根据权利要求1所述的集成电路装置,其中所述第一处理器核心是由第一系统时钟计时,且所述第二处理器核心是由不同于所述第一系统时钟的第二系统时钟计时。
10.根据权利要求9所述的集成电路装置,其进一步包括使所述第一跨断点逻辑与所述第二处理器核心介接的跨时钟电路。
11.根据权利要求10所述的集成电路装置,其中所述跨时钟电路耦合于所述第一跨断点逻辑与相关联于所述第二处理器核心的中断控制器之间。
12.根据权利要求1所述的集成电路装置,其中所述第一及/或第二仿真器逻辑可操作以配置多个可编程断点。
13.根据权利要求12所述的集成电路装置,其中所述可编程断点包括指令断点及数据断点。
14.一种包括根据权利要求1所述的集成电路装置的系统,其进一步包括:主计算机,其与内电路仿真器或调试器耦合,其中所述内电路仿真器或调试器与所述第一微控制器的所述第一仿真器逻辑耦合,且其中所述第二微控制器经由第二串行通信外围设备与所述主计算机耦合。
15.一种包括根据权利要求1所述的集成电路装置的系统,其进一步包括:主计算机,其与第一内电路仿真器或调试器和第二内电路仿真器或调试器耦合,其中所述第一内电路仿真器或调试器与所述第一微控制器的所述第一仿真器逻辑耦合,且其中所述内电路仿真器或调试器与所述第二微控制器的所述第二仿真器逻辑耦合。
CN201680004616.3A 2015-02-05 2016-02-03 用于在多核心微控制器中产生跨核心断点的系统及方法 Active CN107111546B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562112552P 2015-02-05 2015-02-05
US62/112,552 2015-02-05
US15/012,287 US10102050B2 (en) 2015-02-05 2016-02-01 System and method for generating cross-core breakpoints in a multi-core microcontroller
US15/012,287 2016-02-01
PCT/US2016/016293 WO2016126774A1 (en) 2015-02-05 2016-02-03 System and method for generating cross-core breakpoints in a multi-core microcontroller

Publications (2)

Publication Number Publication Date
CN107111546A CN107111546A (zh) 2017-08-29
CN107111546B true CN107111546B (zh) 2021-05-07

Family

ID=55451561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680004616.3A Active CN107111546B (zh) 2015-02-05 2016-02-03 用于在多核心微控制器中产生跨核心断点的系统及方法

Country Status (6)

Country Link
US (1) US10102050B2 (zh)
EP (1) EP3254199B1 (zh)
KR (1) KR20170110072A (zh)
CN (1) CN107111546B (zh)
TW (1) TW201633129A (zh)
WO (1) WO2016126774A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9921988B2 (en) * 2014-06-05 2018-03-20 Microchip Technology Incorporated Device and method to assign device pin functionality for multi-processor core devices
US9921982B2 (en) * 2014-06-05 2018-03-20 Microchip Technology Incorporated Device and method to assign device pin ownership for multi-processor core devices
CN105354136B (zh) * 2015-09-25 2018-06-15 华为技术有限公司 一种调试方法、多核处理器和调试设备
CN105224454B (zh) * 2015-09-25 2018-06-05 华为技术有限公司 一种调试方法、多核处理器和调试设备
US10552270B2 (en) 2016-12-22 2020-02-04 Intel Corporation Systems and methods for in-field core failover
JP2018128767A (ja) * 2017-02-07 2018-08-16 ルネサスエレクトロニクス株式会社 デバッグシステム及び半導体装置
CN108415842B (zh) 2018-03-21 2021-01-29 杭州中天微系统有限公司 多核处理器
JP6981920B2 (ja) * 2018-05-25 2021-12-17 ルネサスエレクトロニクス株式会社 半導体装置、およびデバッグ方法
KR20210014365A (ko) 2019-07-30 2021-02-09 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640542A (en) * 1993-10-29 1997-06-17 Intel Corporation On-chip in-circuit-emulator memory mapping and breakpoint register modules
US6205560B1 (en) * 1996-02-27 2001-03-20 Via-Cyrix, Inc. Debug system allowing programmable selection of alternate debug mechanisms such as debug handler, SMI, or JTAG
US6598178B1 (en) * 1999-06-01 2003-07-22 Agere Systems Inc. Peripheral breakpoint signaler
DE10116861A1 (de) * 2001-04-04 2002-10-31 Infineon Technologies Ag Programmgesteuerte Einheit
US6859892B2 (en) * 2001-04-25 2005-02-22 Hewlett-Packard Development Company, L.P. Synchronous breakpoint system and method
US7131114B2 (en) 2001-07-16 2006-10-31 Texas Instruments Incorporated Debugger breakpoint management in a multicore DSP device having shared program memory
US7058855B2 (en) * 2002-07-24 2006-06-06 Infineon Technologies Ag Emulation interface system
US7689867B2 (en) * 2005-06-09 2010-03-30 Intel Corporation Multiprocessor breakpoint
JP4222370B2 (ja) 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US20070226740A1 (en) * 2006-02-28 2007-09-27 Xiao-Feng Li Method and apparatus for global breakpoint for parallel debugging on multiprocessor systems
CN101154212B (zh) * 2006-09-29 2012-01-25 上海海尔集成电路有限公司 一种8位兼容c51指令集微控制器
US8161311B2 (en) * 2007-08-23 2012-04-17 Stratus Technologies Bermuda Ltd Apparatus and method for redundant and spread spectrum clocking
US20090113211A1 (en) * 2007-10-31 2009-04-30 Chun-Hung Liu Processing unit including a wireless module and method thereof
US20100049956A1 (en) * 2008-08-20 2010-02-25 Moyer William C Debug instruction for use in a multi-threaded data processing system
JP5229326B2 (ja) * 2008-09-24 2013-07-03 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム
US7913118B2 (en) * 2008-10-15 2011-03-22 Andes Technology Corporation In-circuit debugging system and related method
US8108730B2 (en) * 2010-01-21 2012-01-31 Arm Limited Debugging a multiprocessor system that switches between a locked mode and a split mode
US8806446B2 (en) * 2010-03-22 2014-08-12 Analog Devices, Inc. Methods and apparatus for debugging programs in shared memory
US20120226839A1 (en) * 2011-03-02 2012-09-06 Texas Instruments Incorporated Method and System for Monitoring and Debugging Access to a Bus Slave Using One or More Throughput Counters
US8874965B2 (en) 2011-10-26 2014-10-28 Hitachi, Ltd. Controlling program code execution shared among a plurality of processors
US10120785B2 (en) * 2016-10-21 2018-11-06 Rosemount Aerospace Inc. Automatic generation of data coupling and control coupling test conditions

Also Published As

Publication number Publication date
EP3254199B1 (en) 2020-12-30
US10102050B2 (en) 2018-10-16
EP3254199A1 (en) 2017-12-13
WO2016126774A1 (en) 2016-08-11
CN107111546A (zh) 2017-08-29
TW201633129A (zh) 2016-09-16
US20160231376A1 (en) 2016-08-11
KR20170110072A (ko) 2017-10-10

Similar Documents

Publication Publication Date Title
CN107111546B (zh) 用于在多核心微控制器中产生跨核心断点的系统及方法
US7089175B1 (en) Combined in-circuit emulator and programmer
US7206733B1 (en) Host to FPGA interface in an in-circuit emulation system
JP3105223B2 (ja) マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
EP2787444B1 (en) Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
US7689867B2 (en) Multiprocessor breakpoint
US7010722B2 (en) Embedded symmetric multiprocessor system debug
KR20150008447A (ko) 인터럽트 상태에 기초한 구성 가능한 브레이크포인트를 갖는 디바이스
WO2009123848A2 (en) Apparatus and method for low overhead correlation of multi-processor trace information
Nowotsch et al. Monitoring and WCET analysis in COTS multi-core-SoC-based mixed-criticality systems
JP5336228B2 (ja) 複数のクロックドメインにおいて決定性を促進するテクニック
Asokan Designing multiprocessor systems in platform studio
Shannon et al. Performance monitoring for multicore embedded computing systems on FPGAs
US8103496B1 (en) Breakpoint control in an in-circuit emulation system
Boger Rhealstone benchmarking of FreeRTOS and the Xilinx Zynq extensible processing platform
Ko et al. Hardware-in-the-loop simulation for CPU/GPU heterogeneous platforms
WO2009123952A2 (en) Apparatus and method for condensing trace information in a multi-processor system
Delange et al. Design and analysis of multi-core architecture for cyber-physical systems
US8914274B1 (en) Method and system for instruction set simulation with concurrent attachment of multiple debuggers
Harden et al. A performance monitor for the MSPARC multicomputer
Guerrieri et al. Snap-on user-space manager for dynamically reconfigurable system-on-chips
US6606590B1 (en) Emulation system with address comparison unit and data comparison unit ownership arbitration
US8160864B1 (en) In-circuit emulator and pod synchronized boot
Stollon et al. Infineon multicore debug solution

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant