具体实施方式
下面参照附图描述根据本发明的信息处理设备。
[第一实施例]
图1是方框图,示出根据本发明的信息处理设备中与调试操作有关的构造。信息处理设备包括微控制器(MCU)101和外部工具501。这里,可将外部工具501设置在信息处理设备中或与信息处理设备分离。外部工具向用户提供人机接口。微控制器101设置有发送和接收部301、发送部401、CPU部201、调试时钟产生部150、同步电路130和140、时钟速率显示寄存器120以及时钟产生部110。除了CPU部201之外的部分构成所谓的调试单元,并且CPU部201具有支持调试操作的功能。在这些部分中,发送和接收部301、发送部401和时钟速率显示寄存器120是本发明的特征。本发明的特征还在于,将调试时钟产生部150输出的调试时钟信号DCLK提供给发送和接收部301,将CPU部201产生的系统时钟信号SCLK提供给发送部401。本实施例将实现RAM监视器功能的示例示出为调试功能之一。同步电路130和140是用于将在其中基准操作时钟信号不同的部分之间输入/输出的信号同步的电路。因为在同步前后信号的含义不变,所以通过将表示同步之前的信号的符号加上“(SYN)”来表示同步之后的信号。
图2是方框图,示出CPU部201的构造。CPU部201包括CPU 210、ROM 220、RAM 230、系统时钟控制部240、RAM地址设定寄存器250以及RAM监视器控制部260,并且CPU部201支持RAM监视器功能作为调试功能。ROM 220是在其中存储用户应用程序的只读存储器。RAM230是在其中保持执行用户应用程序所需数据的随机访问存储器。RAM230有一个访问端口来自CPU 201,有一个访问端口来自RAM监视器控制部260。CPU 201是执行在ROM 220中存储的用户应用程序的中央处理单元。
RAM地址设定寄存器250是保持用于访问RAM 230的地址的寄存器,以用于调试操作。通过调试局部总线DLB,将要访问的地址设定在RAM地址设定寄存器250中。设定的地址被通知给RAM监视器控制部260。RAM监视器控制部260基于从RAM地址设定寄存器250通知的RAM地址向RAM 230产生访问周期。通过RAM监视器数据信号RMNT将作为访问结果获得的数据输出到发送部401。通过调试局部总线DLB,通过在RAM监视器控制部260中设定RAM访问开始控制位来进行对RAM 230的访问。
系统时钟控制部240将基于输入时钟信号ICLK产生的系统时钟信号SCLK输出。也就是说,系统时钟控制部240具有将时钟信号ICLK分频并停止时钟信号的功能,并且可以从CPU 210设定。此外,系统时钟控制部240在进行时钟速率的改变之前例如分频和停止时钟之前输出时钟速率改变请求信号CREQ。之后,当响应时钟速率改变请求信号CREQ从发送和接收部301输出的时钟速率改变确认信号CACK被设定为生效时,系统时钟控制部240改变时钟速率。在本实施例中,将未经过分频的系统时钟信号的时钟速率称为“高速系统时钟速率”,将经过分频的系统时钟信号的时钟速率称为“低速系统时钟速率”,将系统时钟信号被停止的状态称为“系统时钟停止”。当然,在“系统时钟停止”状态中,CPU部201停止其操作。响应向CPU部201输入复位请求、以及中断等,进行“系统时钟停止”状态的取消。在初始状态中,已经设定“高速系统时钟速率”。
如图3所示,发送和接收部301包括序列控制部311、发送部405、接收数据采样部321、接收移位器330、指令缓冲部340、写入数据缓冲部350以及指令执行部360。序列控制部311在实现RAM监视器处理中起主要作用,并进行发送/接收程序控制、指令分析、指令执行的指示、系统时钟控制部240的时钟速率改变确认控制以及添加INFO位的指示。下面描述详细操作。
接收数据采样部321基于调试时钟信号DCLK对表示从外部工具501传输的数据的调试通信输入信号DI异步地采样,并将获得的1位数据输出到接收移位器330。接收数据采样部321还具有检测开始位(STR位)和停止位(STP位)的功能,用于识别接收的开始和结束。当开始位被用于仅检测接收的开始并且不作为1位数据输出时,将停止位的2位数据值输出到接收移位器330。
接收移位器330是11位移位寄存器,其从接收数据采样部321接收1位数据,并逐位移位以进行串行-并行转换。当移位了11位时,接收移位器330通过接收数据信号RCVD将位0至位7输出作为接收数据。同时,接收移位器330激活接收结束信号RVED并通知序列控制部311已经从外部工具501接收到接收数据。
当将指令获得信号CMGT设定为生效时,指令缓冲部340通过接收数据信号RCVD接收8位接收数据,从接收到的数据中提取指令代码(CMD[0:1]),并通过指令数据信号CD将提取的指令代码输出到序列控制部311。
当将写入数据获得信号WDGT设定为生效时,写入数据缓冲部350通过接收数据信号RCVD接收8位接收数据,并通过写入数据信号WD将接收数据输出到指令执行部360。
当将指令执行开始信号CST设定为生效时,指令执行部360进行与每个指令相对应的操作。指令执行开始信号CST包含正在处理的指令数据。当指令处理被结束时,指令执行部360向序列控制部311输出指令执行结束信号CED。例如,当正在处理的指令数据指示写入数据传输指令“02H”(RAM地址设定寄存器写入),指令执行部360通过8位写入数据信号WD接收数据并将数据输出到指令执行部写入总线WB。将数据输出后,指令执行部360输出指令执行结束信号CED。当指令数据指示读取数据传输指令“00H”(时钟速率显示寄存器读取)时,指令执行部360通过指令执行部读取总线RB接收8位数据,通过指令执行部读取数据输出信号CRDO将数据输出到发送部405,并将指令执行结束信号CED输出到序列控制部311。例如“00H”这样的符号表示十六进制数字。
图4是方框图,示出发送部400的构造。发送部405安装在发送和接收部301中,并且发送部401与图4所示发送部400相同的构造,包括读取数据缓冲部410和发送移位器420。读取数据缓冲部410通过数据输入信号RDI接收和保持8位数据,并输出读取缓冲部有效信号BVD。这里,对于发送部405,数据输入信号RDI与从指令执行部360提供的指令执行部读取数据输出信号CRDO相对应,对于发送部401,数据输入信号RDI与从CPU部201输出的RAM监视器数据信号RMNT相对应。对于发送部405,读取缓冲部有效信号BVD与输出到序列控制部311的读取缓冲部有效信号BVDB相对应,对于发送部401,读取缓冲部有效信号BVD与通过同步电路140输出到序列控制部311的读取缓冲部有效信号BVDA相对应。
发送移位器420是12位移位寄存器。当将发送开始信号SST设定为生效时,将存储在读取数据缓冲部410中的8位数据设定到发送移位器420,并根据图8A至图8D所示的读取数据传输格式,在输入时钟信号CLK的时钟速率下将其移位和输出作为发送部输出信号RDO。当在移位和输出中将INFO信息设定请求信号SIQ设定为生效时,发送移位器420将位9的INFO位设定为在激活状态中的“1”。当完成12位数据的移位和输出时,发送移位器420激活发送结束信号SED。这里,对于发送部401,输入时钟信号CLK与系统时钟信号SCLK相对应,对于发送部405,输入时钟信号CLK与调试时钟信号DCLK相对应。对于发送部401,发送开始信号SST与发送开始信号SSTA(SYN)相对应,对于发送部405,发送开始信号SST与发送开始信号SSTB相对应。对于发送部401,发送部输出信号RDO与发送部输出信号SDO相对应,对于发送部405,发送部输出信号RDO与发送部输出信号SRO相对应。对于发送部401,INFO信息设定请求信号SIQ与INFO信息设定请求信号SIQA(SYN)相对应,对于发送部405,INFO信息设定请求信号SIQ与INFO信息设定请求信号SIQB相对应。对于发送部401,发送结束信号SED与发送结束信号SEDA相对应,对于发送部405,发送结束信号SED与发送结束信号SEDB相对应。
图5是方框图,示出外部工具501的构造。外部工具501包括工具控制部511、通信速率管理表521、工具发送部530以及工具接收部540。工具发送部530基于预定的传输格式,通过调试通信输入/输出信号DIO将来自外部工具501的数据发送到微控制器101。工具接收部540基于预定的传输格式,通过调试通信输入/输出信号DIO接收从微控制器101发送到外部工具501的数据。参照通信速率管理表521,工具控制部511此时控制通信速率。
图6示出通信速率管理表521的构造。通信速率管理表521与指令代码CMD相关联地存储与微控制器101相通信的发送时钟速率和接收时钟速率的数据。参照表格,工具控制部511基于每个发出的指令,适当地转换发送时钟速率和接收时钟速率。工具控制部511根据必要性更新表格的内容。
图7示出本实施例中所述指令的内容。通过从外部工具501发出这些指令并通过微控制器101处理指令来实现本实施例中所述的RAM监视器功能。
图8A至图8B是示意图,示出通过使用调试通信输入/输出信号DIO在微控制器101与外部工具501之间的通信中的读取/写入传输格式。固定为“0”的开始位(STR)被分配到位0,8位数据被分配到位1至位8,预定数据被分配到位9,固定为“1”的停止位(STP)被分配到位10至位11。以传输格式来传输通过外部工具501发出并通过微控制器101执行的指令。如图8A所示,根据读取指令传输格式,指令代码CMD被分配到位1至位2,不使用位3至位8,位9固定为“0”。如图8B所示,根据读取数据传输格式,传输的8位读取数据被分配到位1至位8。根据读取数据传输格式,指示时钟速率显示寄存器120已经被更新的INFO位被分配到位9。如图8C所示,根据写入指令传输格式,指令代码CMD被分配到位1至位2,不使用位3至位8,位9固定为“0”。如图8D所示,根据写入数据传输格式,传输的8位写入数据被分配到位1至位8。
下面,描述本实施例的操作的要点。通过使用单针,发送和接收部301和发送部401通过使用调试通信输入/输出信号DIO异步地与外部工具501通信。根据图8A至图8D所示的读取/写入传输格式进行通信。
进行写入传输如下。当图7所示的要求写入传输的指令代码(CMD[0:1])从外部工具501传输到发送和接收部301时,发送和接收部301接收并分析指令,然后执行指令。例如,当指令代码(CMD[0:1])为“02H”(RAM地址设定寄存器写入)时,发送和接收部301在指令的传输之后接收从外部工具501传输的数据,并通过同步电路130将数据输出到调试局部总线DLB以进行写入周期。传输的数据被写入设置在CPU部201中的RAM地址设定寄存器250中。
进行读取传输如下。当图7所示要求读取传输的指令代码(CMD[0:1])从外部工具501传输到发送和接收部301时,发送和接收部301接收并分析指令,然后执行指令。例如,当指令代码(CMD[0:1])为“03H”(RAM监视器读取)时,发送和接收部301通过同步电路130将控制数据输出到调试局部总线DLB以进行写入周期,并指示RAM监视器控制部260开始对RAM 230的读取访问。
响应来自发送和接收部301的指示,RAM监视器控制部260基于保持在RAM地址设定寄存器250中的RAM地址进行对RAM 230的读取访问。通过RAM监视器数据信号RMNT将作为读取访问的结果获得的数据输出到发送部401。发送部401以系统时钟信号SCLK的时钟速率通过发送部输出信号SDO输出RAM监视器数据。根据图8B所示的传输格式传输RAM监视器数据。用于发送部输出信号SDO的总线是与用于调试通信输入/输出信号DIO的总线相连接的三态总线。因此,通过调试通信输入/输出信号DIO将从发送部401输出的RAM监视器数据传输到外部工具501。
在将指令“03H”(RAM监视器读取)传输到微控制器101之后,外部工具501准备通过调试通信输入/输出信号DIO获得从微控制器101输出的RAM监视器数据。换言之,参考通信速率管理表521,工具控制部511将用于接收响应指令“03H”而被传输的数据的接收时钟速率设定到工具接收部540。之后,工具接收部540通过调试通信输入/输出信号DIO接收从CPU部201输出到外部工具501的RAM监视器数据。然后,外部工具501在显示单元等上显示获得的RAM监视器数据,以将RAM监视器数据通知给进行调试的用户。
类似地,当指令代码(CMD[0:1])为“00H”(时钟速率显示寄存器读取)时,发送和接收部301通过指令执行部读取总线RB读取设置到时钟速率显示寄存器120的数据。发送部405以调试时钟速率通过发送和接收部输出信号SRO输出读取数据。
在将指令“00H”(时钟速率显示寄存器读取)传输到微控制器101之后,外部工具501准备通过调试通信输入/输出信号DIO获得从微控制器101输出的数据。换言之,参考通信速率管理表521,工具控制部511将用于接收响应指令“00H”而被传输的数据的接收时钟速率设定到工具接收部540。之后,工具接收部540通过调试通信输入/输出信号DIO接收从微控制器101输出到外部工具501的数据。获得的数据用于控制工具接收部540的接收速率。
微控制器101具有降低时钟速率以转换到低功耗模式的功能。因此,在包括上述通信处理的调试处理过程中,微控制器101可降低系统时钟速率。在这种情况下,根据以下程序改变系统时钟信号SCLK的速率。
例如,给出一个示例为,在处理指令“03H”(RAM监视器读取)之前或处理指令“03H”(RAM监视器读取)的过程中,CPU 210请求系统时钟控制部240改变时钟速率。在这种情况下,系统时钟控制部240激活时钟速率改变请求信号CREQ,将其通知发送和接收部301并将指示已改变的速率的数据设定到时钟速率显示寄存器120。
当将时钟速率改变请求信号CREQ设定为生效时,发送和接收部301激活INFO信息设定请求信号SIQA,将其通知发送部401。当将INFO信息设定请求信号SIQA设定为生效时,发送部401将位9的INFO位激活为生效状态(“1”)并进行读取数据传输。
当将接收到的数据的INFO位设定为生效时,外部工具501发出指令“00H”(时钟速率显示寄存器读取),获得并分析时钟速率显示寄存器120的内容。当将位7的“请求”位设定为生效时(参照图7),外部工具501根据在位0至位2显示的系统时钟速率更新在通信速率管理表521中的指令“03H”的接收时钟速率列(参照图6)。之后,当发出指令“03H”以接收RAM监视器数据时,使用更新的接收时钟速率数据。因此,工具接收部540能以改变的系统时钟速率正常地接收数据。
一旦读取之后,在位7的“请求”位就自动清除。当在位0至位2显示的系统时钟速率表示“系统时钟停止”时,外部工具501重复地读取时钟速率显示寄存器120并等待直到系统时钟速率表示“高速系统时钟速率”或“低速系统时钟速率”。
当完成来自发送部401的包括INFO位的数据的发送以后,发送部401通过同步电路140将发送结束信号SEDC通知发送和接收部301以指示发送的结束。当从发送部401被通知发送的结束时,发送和接收部301激活发送到CPU部201的系统时钟控制部240的时钟速率改变确认信号CACK。当将时钟速率改变确认信号CACK设定为生效时,系统时钟控制部240改变系统时钟信号SCLK的时钟速率。
下面进一步描述每个部分的详细操作。图9和图10示出与实现RAM监视器功能所需的指令处理有关的操作以及用于系统时钟信号SCLK的改变确认控制的操作。
图9是流程图,示出在RAM监视器功能以及系统时钟信号SCLK的改变确认控制中外部工具501的操作。参照图9,下面描述外部工具501的操作。
在步骤S102,参考通信速率管理表521,工具控制部511将在发出指令“02H”(RAM地址设定寄存器写入)中的适合于写入指令传输和写入数据传输的时钟速率设定到工具发送部530。对于指令“02H”,如图6所示,发送时钟速率变为“调试时钟速率”。
在步骤S104,以调试时钟速率通过调试通信输入/输出信号DIO将CMD[0:1]=“02H”发送到微控制器101。
在步骤S106,以调试时钟速率通过调试通信输入/输出信号DIO发送期望的8位RAM地址值。
在步骤S108,参考通信速率管理表521,工具控制部511将在发出指令“03H”(RAM监视器读取)中的适合于读取指令传输和读取数据传输的时钟速率设定到工具发送部530和工具接收部540。对于指令“03H”,如图6所示,发送时钟速率变为“调试时钟速率”,接收时钟速率变为“高速系统时钟速率(初始值)”。
在步骤S110,工具发送部530以调试时钟速率通过调试通信输入/输出信号DIO将CMD[0:1]=03H的数据发送到微控制器101。
在步骤S112,工具接收部540以高速系统时钟速率通过调试通信输入/输出信号DIO接收从微控制器101的发送部401输出的8位RAM监视器数据和INFO位。
在步骤S114,外部工具501进行处理,以在显示单元上显示接收到的RAM监视器数据。
在步骤S120,工具控制部511检查接收到的INFO位的值。当INFO位的值为“0”时,控制流程返回步骤S102,工具控制部511进行处理以读取随后监视的RAM数据。当INFO位的值为“1”时,也就是说,当时钟速率显示寄存器120已经被更新时,在步骤S122至步骤S130,工具控制部511进行处理以更新通信速率管理表521。
在步骤S122,参考通信速率管理表521,工具控制部511将在发出指令“00H”(时钟速率显示寄存器读取)中的适合于写入指令传输和读取数据传输的时钟速率设定到工具发送部530和工具接收部540。对于指令“00H”,如图6所示,将发送时钟速率和接收时钟速率设定为“调试时钟速率”。
在步骤S124,工具发送部530以调试时钟速率通过调试通信输入/输出信号DIO将CMD[0:1]=00H的数据发送到微控制器101。
在步骤S126,工具接收部540以调试时钟速率通过调试通信输入/输出信号DIO接收从发送部405输出的在时钟速率显示寄存器120中的8位值。
在步骤S128,工具控制部511基于接收到的时钟速率显示寄存器120的值更新通信速率管理表521。
在步骤S130,工具控制部511检查时钟速率显示寄存器120的值。当将位2“停止”设定为生效时,控制流程返回步骤S124,工具控制部511再次读取时钟速率显示寄存器120的值并等待直到将位0“高速”或位1“低速”被设定为生效。这是因为在“系统时钟停止”的状态中,CPU部201已经停止其操作,并且RAM监视器控制部260不能进行RAM监视器处理。当没有将位2“停止”设定为生效时,控制流程返回步骤S102,工具控制部511进行处理以读取随后监视的RAM数据。
下面描述发送和接收部301的详细操作,主要关于发送部405和序列控制部311。图10是流程图,示出发送和接收部301的详细操作,主要关于发送部401和序列控制部311。
在步骤S201,为了检测读取指令传输或写入指令传输,接收数据采样部321监视调试通信输入信号DI并等待直到检测到STR位。
在步骤S203,接收数据采样部321通过基于调试时钟信号DCLK产生的时钟信号对调试通信输入/输出信号DIO采样,并将获得的1位数据输出到接收移位器330。接收移位器330接收从接收数据采样部321发送的数据,同时逐位地移位数据。然后,当完成11位的数据的存储时,接收移位器330通过接收数据信号RCVD输出8位数据的一部分,激活接收结束信号RVED,并将接收的结束通知给序列控制部311。当将接收结束信号RVED设定为生效时,序列控制部311激活指令获得信号CMGT并指示指令缓冲部340接收指令。当将指令获得信号CMGT设定为生效时,指令缓冲部340通过接收数据信号RCVD接收8位数据并将指令数据信号CD输出到序列控制部311。
在步骤S205,序列控制部311提取从指令缓冲部340输出的指令数据信号CD的指令部分(CMD[0:1]的2位数据)并分析指令。当指令(CMD[0:1])为“00H”时,控制流程进入步骤S210,当指令(CMD[0:1])为“02H”时,控制流程进入步骤S222,并且当指令(CMD[0:1])为“03H”时,控制流程分支到步骤S230。当指令(CMD[0:1])为其他值时,控制流程返回步骤S201,并且序列控制部311等待指令输入。
在步骤S210,序列控制部311激活指令执行开始信号CST并指示指令执行部360执行指令。指令执行开始信号CST包含指示正在处理指令“00H”(时钟速率显示寄存器读取)的数据。当将指令执行开始信号CST设定为生效时,指令执行部360通过指令执行部读取总线RB进行对时钟速率显示寄存器120的读取访问。当接收设定到时钟速率显示寄存器120的8位值时,指令执行部360通过指令执行部读取数据输出信号CRDO输出读取数据,激活指令执行结束信号CED并将读取的结束通知给序列控制部311。当将从指令执行部360输出的指令执行部读取数据输出信号CRDO的8位数据存储在内部读取数据缓冲部410中时,发送部405激活读取缓冲部有效信号BVDB并将完成发送准备通知给序列控制部311。
在步骤S212,当将读取缓冲部有效信号BVDB设定为生效时,序列控制部311检查时钟速率改变请求信号CREQ的状态。当将时钟速率改变请求信号CREQ设定为生效时,序列控制部311将INFO信息设定请求信号SIQB激活为生效状态(“1”)(步骤S214)。当没有将时钟速率改变请求信号CREQ设定为生效时,序列控制部311将INFO信息设定请求信号SIQB去激活为失效状态(“0”)(步骤S215)。
在步骤S217,序列控制部311激活发送开始信号SSTB并指示发送部405发送数据。发送部405将通过组合存储在读取数据缓冲部410中的8位数据、通过INFO信息设定请求信号SIQB指定的1位数据、STR位的1位和STP位的2位而获得的12位数据存储在发送移位器420中。与调试时钟信号DCLK同步地,发送移位器420逐位地移位和输出数据作为发送和接收部输出信号SRO。当完成12位的移位和输出以后,发送移位器420激活发送结束信号SEDB。
在步骤S219,序列控制部311激活时钟速率改变确认信号CACK。当将时钟速率改变确认信号CACK设定为生效时,系统时钟控制部240改变系统时钟信号SCLK的速率。之后,控制流程返回到步骤S201,并且发送和接收部301等待下一个指令。
在步骤S222,为了检测写入数据传输,接收数据采样部321监视调试通信输入/输出信号DIO并等待直到检测到STR位。
在步骤S224,接收数据采样部321通过基于调试时钟信号DCLK产生的信号对调试通信输入/输出信号DIO采样,并将获得的数据输出到接收移位器330。接收移位器330接收从接收数据采样部321发送的数据,同时逐位地移位数据。当完成11位数据的存储以后,接收移位器330通过接收数据信号RCVD输出8位数据部分,激活接收结束信号RVED并将接收的结束通知给序列控制部311。序列控制部311激活写入数据获得信号WDGT并指示写入数据缓冲部350接收数据。写入数据缓冲部350接收接收数据信号RCVD的8位数据并将写入数据信号WD输出到指令执行部360。
在步骤S226,序列控制部311激活指令执行开始信号CST并将其通知指令执行部360。指令执行开始信号CST包含指示正在处理指令“02H”的数据。当将指令执行开始信号CST设定为生效时,指令执行部360通过指令执行部写入总线WB将要写入RAM地址设定寄存器250的数据输出到调试局部总线DLB,以执行写入周期。指令执行部360激活指令执行结束信号CED并将执行的结束通知给序列控制部311。之后,发送和接收部301返回到步骤S201并等待下一个指令。
当调试局部总线DLB处于向RAM地址设定寄存器250的写入周期时,RAM地址设定寄存器250从调试局部总线DLB接收8位写入数据并保持该数据在其中。将保持内容通知给RAM监视器控制部260。
在步骤S230,序列控制部311激活指令执行开始信号CST并通知指令执行部360执行指令。指令执行开始信号CST包含指示正在处理指令“03H”的数据。当将指令执行开始信号CST设定为生效时,指令执行部360通过指令执行部写入总线WB输出指示RAM监视器控制部260中的RAM访问开始控制位被设定到调试局部总线DLB的控制数据,以执行写入周期。指令执行部360激活指令执行结束信号CED并将指令执行的结束通知给序列控制部311。
在步骤S231,当设定RAM访问开始控制位时,RAM监视器控制部260通过利用从RAM地址设定寄存器250提供的8位RAM地址进行到RAM 230的读取访问。通过RAM监视器数据信号RMNT将作为读取访问的结果获得的8位读取数据输出。发送部501将包含在RAM监视器数据信号RMNT中的8位读取数据存储在内部读取数据缓冲部410中,并激活读取缓冲部有效信号BVDA。通过同步电路140将作为读取缓冲部有效信号BVDA(SYN)的读取缓冲部有效信号BVDA通知给序列控制部311。
在步骤S232,当将读取缓冲部有效信号BVDA设定为生效时,序列控制部311检查时钟速率改变请求信号CREQ的状态。当将时钟速率改变请求信号CREQ设定为生效时,序列控制部311将INFO信息设定请求信号SIQA激活为生效状态(“1”)(步骤S234)。当没有将时钟速率改变请求信号CREQ设定为生效时,序列控制部311将INFO信息设定请求信号SIQA去激活为失效状态(“0”)(步骤S235)。
在步骤S237,序列控制部311激活发送开始信号SSTA并通过同步电路140将其通知给发送部401。当将发送开始信号SSTA(SYN)设定为生效时,发送部401将包括存储在读取数据缓冲部410中的8位数据、通过经同步电路140输入的INFO信息设定请求信号SIQA(SYN)指定的1位数据、STR位的1位和STP位的2位的12位数据存储在发送移位器420中。与系统时钟信号SCLK同步地,发送移位器420逐位地移位和输出发送数据作为发送和接收部输出信号SRO。当完成12位的移位和输出后,发送移位器420激活发送结束信号SEDC。为了结束发送,通过同步电路140向序列控制部311通知作为发送结束信号SEDA(SYN)的发送结束信号SEDC。
在步骤S239,当将发送结束信号SEDA(SYN)设定为生效时,序列控制部311激活发送到CPU部201中的系统时钟控制部240的时钟速率改变确认CACK。当将时钟速率改变确认信号CACK设定为生效时,系统时钟控制部240将系统时钟信号SCLK的时钟速率改变为通过CPU 210设定的系统时钟速率。之后,控制流程返回到步骤S201,并且发送和接收部301等待下一个指令。
如上所述,根据本发明,信息处理设备包括基于一般低速不停止调试时钟信号DCLK操作的发送和接收部301、基于具有可变时钟速率的一般高速系统时钟操作的发送部401以及显示速率可变系统时钟的速率数据的时钟速率显示寄存器120,发送和接收部301中的序列控制部311具有与CPU部201中的系统时钟控制部240同步信息交互的功能,和向发送部401通知指示时钟速率显示寄存器120中的显示内容被改变的数据的功能,从而向外部发送数据。因此,微控制器能进行控制,使得微控制器与外部工具之间的调试通信速率同步。因此,即使当根据应用程序,与调试通信异步地改变系统时钟速率时,也能正常进行调试通信。
[第二实施例]
图11示出根据本发明第二实施例的信息处理设备的构造。在本实施例中,分别用发送和接收部302、发送部402、CPU部202和外部工具502替代第一实施例中的发送和接收部301、发送部401、CPU部201和外部工具501,这些替代部分相对于第一实施例中的各个部分被部分地改变。第一实施例中的调试时钟产生部150被省略,并且从外部工具502提供调试时钟信号DCLK。此外,没有INFO信息设定请求信号SIQA从发送和接收部302输出,并且到发送部402的对应输入被固定为失效(“0”)。其他组件与第一实施例的相同,因此省略其描述。
图12是方框图,示出CPU部202的构造,CPU部202用于进行数据跟踪功能作为调试功能之一。CPU 210、系统时钟控制部240、RAM 230以及ROM 220与第一实施例的相同,并且它们的操作相同。但是,RAM230的调试访问端口未被连接。第一实施例中执行RAM监视器功能的RAM地址设定寄存器250和RAM监视器控制部260被用于执行数据跟踪功能的数据跟踪控制部270替代。数据跟踪控制部270监视CPU 210的操作,当CPU 210向RAM 230等发出存储指令时产生跟踪数据,并与系统时钟信号SCLK同步地通过跟踪输出信号TRO输出跟踪数据。跟踪数据是在图19A的格式A中的16位数据。当将从系统时钟控制部240输出的时钟速率改变请求信号CREQ设定为生效时,通过跟踪输出信号TRO产生并输出在图19B的格式B中的8位数据。当在将读取缓冲部繁忙信号RBSY设定为生效的同时产生数据时,将数据保持在内部,并且然后,在将读取缓冲部繁忙信号RBSY设定为失效以后,将数据输出。通过调试局部总线DLB,操作数据跟踪控制部270中的控制位来进行数据跟踪控制部270的有效/无效的设定。
在本实施例中,为了进行作为一个调试功能的数据跟踪功能,将图7所示的指令改为图16所示的指令。图16示出本实施例中所述的指令。通过这些指令来进行数据跟踪功能。
图13是方框图,示出发送和接收部302的构造。发送和接收部302包括序列控制部312、发送部405、接收数据采样部322、接收移位器330、指令缓冲部340、写入数据缓冲部350以及指令执行部360。在这些部分中,接收移位器330、写入数据缓冲部350、指令缓冲部340、指令执行部360以及发送部405与第一实施例中的相同,并且它们的操作相同。接收数据采样部322与调试时钟信号DCLK同步地进行采样。除此操作外,与接收数据采样部321相似,接收数据采样部322也对从外部工具502传输的调试通信输入信号DI采样,以获得1位数据。与序列控制部311相似,序列控制部312分析从指令缓冲部340提供的指令(CMD[0:2]),并通过利用写入数据缓冲部350、指令执行部360、发送部405以及时钟速率改变确认信号CACK进行与指令相对应的处理。
图14是方框图,示出发送部402的构造。发送部402包括发送控制部430、发送移位器420以及读取数据缓冲部411。发送移位器420与第一实施例中的相同并进行相同的操作。读取数据缓冲部411是包括M缓冲部412和L缓冲部413的存储单元,M缓冲部412和L缓冲部413均保持8位数据。M缓冲部412和L缓冲部413均保持从发送控制部430写入的8位数据。发送控制部430控制跟踪数据的存储和发送移位器420的操作。
当通过跟踪输出信号TRO从CPU部202提供的跟踪数据是格式A(参照图19A)的跟踪数据时,发送控制部430将位0至位7的8位数据存储在读取数据缓冲部411的M缓冲部412中,将位8至位15的8位数据存储在读取数据缓冲部411的L缓冲部413中。发送控制部430激活读取缓冲部有效信号BVDC。之后,当将发送开始信号SST设定为生效时,发送控制部430向发送移位器420发送存储在M缓冲部412和L缓冲部413的每个中的8位数据,并将数据作为发送部输出信号SSO输出到外部工具502。当发送移位器420通过发送部输出信号SSO完成16位数据的输出时,发送控制部430激活发送结束信号SEDC。
当通过跟踪输出信号TRO提供的跟踪数据是格式B(参照图19B)的数据时,将位0至位7的8位数据存储在M缓冲部412中。然后,发送控制部430激活读取缓冲部有效信号BVDC。之后,当将发送开始信号SSTC(SYN)设定为生效时,将存储在M缓冲部412中的8位数据发送到发送移位器420,激活移位开始信号SFTS,并通过发送部输出信号SSO将该信号输出。当发送移位器420完成8位数据的输出时,发送移位器420激活指示发送结束的移位结束信号SFTE。当从移位结束信号SFTE检测到发送的结束时,发送控制部430激活发送结束信号SEDC并向发送和接收部302(序列控制部312)通知发送的结束。
图15是方框图,示出外部工具502的构造。外部工具502包括工具控制部512、通信速率管理表522、工具发送部530、工具接收部540、跟踪存储部550以及调试时钟产生部560。工具接收部540与第一实施例中的相同,并且进行相同的操作。本实施例中的工具发送部530与第一实施例中的工具发送部具有不同的同步时钟。本实施例中的工具发送部530与调试时钟信号DCLK同步地以图18A至图18E中所示的传输格式发送数据。与调试时钟产生部150相似,调试时钟产生部560产生调试时钟信号DCLK。在本实施例中,从外部工具502将调试时钟信号DCLK提供给微控制器102。跟踪存储部550是存储单元,用于将通过工具接收部540接收的跟踪数据存储在其中。工具控制部512参考通信速率管理表522控制接收时钟速率。当工具接收部540接收到图19A中所示格式的跟踪数据时,工具控制部512向跟踪存储部550发送跟踪数据并将数据存储在跟踪存储部550中。工具控制部512还包括与第一实施例中的工具控制部511相同的功能。
图17是示意图,示出通信速率管理表522的构造。通信速率管理表522与指令代码CMD相关地存储如下的数据,即,所述数据指示在与微控制器102的通信中的发送时钟速率和接收时钟速率。与第一实施例中的通信速率管理表521相似,在与微控制器102的通信中,参考通信速率管理表522。在本实施例中,为了描述作为一个调试功能的数据跟踪功能,改变了一些指令。因为是通过外部工具502的调试时钟产生部560产生指令(CMD[0:2])“00H”的发送时钟速率和接收时钟速率,所以将时钟速率固定为调试时钟速率。但是,时钟速率可变。
图18A至图18E为示意图,示出通过调试通信输入信号DI和调试通信输出信号DO在微控制器102与外部工具502通信的传输格式。传输格式包括读取指令传输格式(图18A)、读取数据传输格式(图18B)、数据跟踪传输格式(图18C和图18D)、控制指令传输格式(图18E)。如图18C和图18D所示,通过发送8位数据两次来实现在数据跟踪传输中的16位数据的发送。当数据跟踪控制部270产生多个16位跟踪数据时,重复地进行跟踪传输L和跟踪传输M。类似地,当产生8位跟踪数据时,重复地进行跟踪传输L。在第一实施例中分配用于读取数据传输的位9的INFO位未使用并固定为“0”。
图19A至图19C示出发送/接收数据的格式。图19A示出通过数据跟踪控制部270产生的16位跟踪数据的数据格式(格式A)。图19B示出8位数据的格式(格式B),该8位数据指示已经将从系统时钟控制部240输出的时钟速率改变请求信号CREQ设定为生效。格式B的跟踪数据充当第一实施例中的INFO位信息的替代物。图19C示出在每种格式中通过分配给位0至位2的TCODE表示的数据。
下面将描述实现数据跟踪功能中和系统时钟信号SCLK的改变确认控制的操作。图20是流程图,示出外部工具502的操作。
在步骤S301,工具控制部512与调试时钟信号DCLK同步地通过调试通信输入信号DI向微控制器102发送CMD[0:2]=04H(“数据跟踪开始”)作为控制指令数据。
在步骤S303,参照通信速率管理表522,工具控制部512将适合于随后待传输的指令“06H”(跟踪传输L、跟踪传输M)的接收时钟速率设定到工具接收部540。
在步骤S304,工具控制部512与调试时钟信号DCLK同步地通过调试通信输入信号DI向微控制器102发送CMD[0:2]=06H(“跟踪数据获得”)作为读取指令数据。
在步骤S305,作为CPU 210的执行的结果,因为通过调试通信输出信号DO传输由数据跟踪控制部270产生的跟踪数据,所以工具接收部540接收跟踪数据。跟踪数据是采取格式A的低8位跟踪数据或采取格式B的8位跟踪数据。将接收到的跟踪数据暂时存储在工具控制部512中。
在步骤S306,工具控制部512分析包含在通过工具接收部540接收的8位数据中的TCODE[0:1]。如果TCODE[0:1]=01H,则通过工具接收部540接收随后传输的采取格式A的高8位跟踪数据(步骤S308)。工具控制部512基于步骤S308接收的8位跟踪数据和步骤S305接收的8位跟踪数据而恢复采取格式A的跟踪数据,并将恢复数据存储在跟踪存储部550中(步骤S309)。
如果TCODE[0:1]=02H,则微控制器102请求改变时钟速率。因此,进行以下处理。
在步骤S311,参考通信速率管理表522,工具控制部512将适合于随后待传输的指令“00H”的读取数据传输的接收时钟速率设定到工具接收部540。
在步骤S313,工具控制部512发出CMD[0:2]=00H(“时钟速率显示寄存器读取”)作为读取指令数据,并且工具发送部530与调试时钟信号DCLK同步地通过调试通信输入信号DI向微控制器102发送指令。
在步骤S314,工具接收部540通过调试通信输出信号DO接收以调试时钟速率提供的数据。接收的数据是在时钟速率显示寄存器120中的8位值。
在步骤S316,工具控制部512根据时钟速率显示寄存器120的接收值将通信速率管理表522更新。
在步骤S317,工具控制部512发出CMD[0:2]=01H(“时钟速率改变确认”)作为控制指令。工具发送部530与调试时钟信号DCLK同步地通过调试通信输入信号DI向微控制器102发送指令。
在步骤S319,工具控制部512检查接收到的时钟速率显示寄存器120的值,并且当将位2“停止”被设定为生效时,控制流程返回到步骤S313。工具控制部512再次读取时钟速率显示寄存器120的值,并等待直到将位0“高速”或位1“低速”设定为生效。因为在“系统时钟停止”状态中数据跟踪控制部270停止,所以不产生跟踪数据。当“系统时钟停止”状态被清除时(步骤S319中的否),控制流程返回到步骤S303,并且工具控制部512重新开始处理以获得跟踪数据。
图21示出在完成数据跟踪处理中工具控制部512的操作。在步骤S350,工具控制部512发出CMD[0:2]=05H(“数据跟踪结束”)作为控制指令,并且工具发送部530与调试时钟信号DCLK同步地通过调试通信输入信号DI向微控制器102发送指令。通过发出该指令,将步骤S301至步骤S319的数据跟踪处理结束。
图22A和图22B是流程图,示出微控制器102的操作,也就是,发送和接收部302的操作,主要关于发送部402和序列控制部312。
在步骤S402(图22A),为了检测读取指令传输或控制指令传输,接收数据采样部322监视调试通信输入信号DI并等待直到检测到STR位。
在步骤S404,接收数据采样部322基于调试时钟信号DCLK对调试通信输入/输出信号DIO进行采样,并将获得的1位数据输出到接收移位器330。在逐位地移位的同时,接收移位器330接收从接收数据采样部321发送的数据。当完成11位数据的存储时,接收移位器330通过接收数据信号RCVD输出8位数据部分,激活接收结束信号RVED,并将接收的结束通知给序列控制部312。序列控制部312激活指令获得信号CMGT并指示指令缓冲部340接收指令。指令缓冲部340接收接收数据信号RCVD的8位数据并将指令数据信号CD输出到序列控制部312。
在步骤S410,序列控制部312从通过来自指令缓冲部340的指令数据信号CD输出的8位数据中提取指令(CMD[0:2])的3位并分析指令。当指令(CMD[0:2])为“00H”时,控制流程进入步骤S412(图22B),当指令(CMD[0:2])为“01H”时,控制流程进入步骤S422(图22B),当指令(CMD[0:2])为“04H”时,控制流程进入步骤S432(图22B),当指令(CMD[0:2])为“05H”时,控制流程进入步骤S442(图22B),当指令(CMD[0:2])为“06H”时,控制流程分支到步骤S452(图22A)。
在步骤S412(图22B),指令(CMD[0:2])表示“00H”(时钟速率显示寄存器读取),并且序列控制部312激活指令执行开始信号CST,并指示指令执行部360执行指令。指令执行开始信号CST包含指示正在处理指令“00H”(时钟速率显示寄存器读取)的数据。当将指令执行开始信号CST设定为生效时,指令执行部360通过指令执行部读取总线RB进行对时钟速率显示寄存器120的读取访问。指令执行部360通过指令执行部读取数据输出信号CRDO输出读取的8位数据,激活指令执行结束信号CED并将读取的结束通知给序列控制部312。同时,发送部405将从指令执行部360输出的指令执行部读取数据输出信号CRDO的8位数据存储在内部读取数据缓冲部410中,激活读取缓冲部有效信号BVDB,并向序列控制部312通知发送准备的结束。
在步骤S414,序列控制部312激活发送开始信号SSTB,并指示发送部405进行发送。发送部405将包括存储在读取数据缓冲部410中的8位数据、通过INFO信息设定请求信号SIQB指定的1位数据(值固定为“0”)、1个STR位和2个STP的12位数据存储在内部发送移位器420中。发送移位器420与调试时钟信号DCLK同步地通过发送和接收部输出信号SRO逐位地移位和输出数据。当完成12位的移位和输出以后,发送移位器420激活发送结束信号SEDB。
在步骤S422,指令(CMD[0:2])表示“01H”(时钟速率改变确认),并且序列控制部312激活时钟速率改变确认信号CACK,并通知系统时钟控制部240时钟速率的改变被确认。CPU部201中的系统时钟控制部240改变系统时钟信号SCLK的速率。
在步骤S432,指令(CMD[0:2])表示“04H”(数据跟踪开始),并且序列控制部312激活指令执行开始信号CST,并指示指令执行部360开始数据跟踪。指令执行开始信号CST包含指示正在处理指令“04H”的数据。指令执行部360通过指令执行部写入总线WB操作数据跟踪控制部270中的内部控制位,并指示数据跟踪的开始。同时,指令执行部360激活指令执行结束信号CED,并通知序列控制部312数据跟踪开始。
在步骤S442,指令(CMD[0:2])表示“05H”(数据跟踪结束),并且序列控制部312激活指令执行开始信号CST,并指示指令执行部360完成数据跟踪。指令执行开始信号CST包含指示正在处理指令“05H”的数据。指令执行部360通过指令执行部写入总线WB操作数据跟踪控制部270中的控制位,并指示数据跟踪的结束。同时,指令执行部360激活指令执行结束信号CED,并通知序列控制部312数据跟踪完成。
在步骤S452(图22A),指令(CMD[0:2])表示“06H”(跟踪数据获得),并且发送控制部430等待直到8位跟踪数据,也就是格式A的低8位跟踪数据或格式B的跟踪数据,通过跟踪输出信号TRO从CPU部202传输。当传输8位跟踪数据时(步骤S452中的是),发送控制部430进入下一操作(步骤S454)。
在步骤S454,发送控制部430将通过跟踪输出信号TRO传输的8位跟踪数据存储在M缓冲部412中。
在步骤S456,发送控制部430检查传输的跟踪数据的TCODE。当TCODE为“01H”(CPU写入)时,控制流程进入步骤S458,当TCODE为“02H”(INFO生效)时,控制流程分支到步骤S472。
在步骤S458,发送控制部430等待直到通过跟踪输出信号TRO传输接下来的8位跟踪数据,也就是格式A的高8位跟踪数据。
在步骤S462,发送控制部430将传输的8位跟踪数据存储在L缓冲部413中。
在步骤S463,发送控制部430激活读取缓冲部繁忙信号RBSY,并通知CPU部202已经保持待输出的跟踪数据。发送控制部430激活读取缓冲部有效信号BVDC,并通知发送和接收部302已经将格式A的16位跟踪数据存储在M缓冲部412和L缓冲部413中。当将读取缓冲部繁忙信号RBSY设定为生效时,即使产生了跟踪数据,CPU部202中的数据跟踪控制部270仍然保持跟踪数据并等待直到读取缓冲部繁忙信号RBSY被设定为失效。
在步骤S465,当将通过同步电路140提供的读取缓冲部有效信号BVDC(SYN)设定为生效时,序列控制部312激活发送开始信号SSTC。当将通过同步电路140提供的发送开始信号SSTC(SYN)设定为生效时,发送控制部430激活发送开始信号SFTS,并指示发送移位器420开始发送。发送移位器420与系统时钟信号SCLK同步地通过发送部输出信号SSO逐位地移位和输出如下的12位数据,即,该12位数据包括从发送控制部430输出的M缓冲部412的8位数据、1个STR位、固定值为“0”的1个位以及2个STP位。当完成12位的移位和输出时,发送移位器420激活指示发送结束的发送结束信号SFTE。
在步骤S466,当将发送结束信号SFTE设定为生效时,发送控制部430激活发送开始信号SFTS,并指示发送移位器420发送接下来的数据。发送移位器420与系统时钟信号SCLK同步地通过发送部输出信号SSO逐位地移位和输出如下的12位数据,即,该12位数据包括从发送控制部430输出的L缓冲部413的8位数据、1个STR位、固定值为“0”的1个位以及2个STP位。当完成12位的移位和输出时,发送移位器420激活发送结束信号SFTE,并向发送控制部430通知发送结束。发送控制部430激活发送结束信号SEDC,并向序列控制部312通知16位跟踪数据的发送结束。
在步骤S468,发送控制部430去激活读取缓冲部繁忙信号RBSY。序列控制部312基于通过同步电路140提供的发送结束信号SEDC(SYN)被设定为生效的事实,而检测数据发送结束,返回到指令分析(步骤S410),并重复数据发送直到指令被改变。
在步骤S472,TCODE表示“02H”(INFO生效),发送控制部430激活读取缓冲部繁忙信号RBSY和读取缓冲部有效信号BVDC。读取缓冲部有效信号BVDC指示格式B的8位跟踪数据已经被存储在M缓冲部412中。
在步骤S474,当将通过同步电路140提供的读取缓冲部有效信号BVDC(SYN)设定为生效时,序列控制部312激活发送开始信号SSTC,并指示发送部402开始8位数据的发送。当将通过同步电路140提供的发送开始信号SSTC(SYN)设定为生效时,发送控制部430激活发送开始信号SFTS,并指示发送移位器420开始发送。发送移位器420与系统时钟信号SCLK同步地通过发送部输出信号SSO逐位地移位和输出如下的12位数据,即,该12位数据通过组合从发送控制部430输出的在M缓冲部412中的8位数据、1个STR位、固定值为“0”的1个位以及2个STP位而获得。当完成12位的移位和输出时,发送移位器420激活发送结束信号SFTE,并向发送控制部430通知发送结束。发送控制部430激活发送结束信号SEDC,并向序列控制部312通知8位数据的发送被完成。
在步骤S476,发送控制部430去激活读取缓冲部繁忙信号RBSY。序列控制部312基于通过同步电路140提供的发送结束信号SEDC(SYN)已经被设定为生效的事实,而检测数据发送结束,返回到指令分析(步骤S410),并重复数据发送直到指令被改变。
在本实施例中,示出了操作示例,其中能不受限地进行数据跟踪,不需要从外部工具502进行读取指令传输。换言之,因为能从微控制器102向外部工具502发送数据,而不需要从外部工具502进行读取指令传输,所以可以将能够监视对CPU 210的数据写入访问的执行状态的数据跟踪功能实现作为微控制器102与外部工具502之间的通信的一部分。
根据本发明,因为将微控制器中的系统时钟信号用作调试通信时钟,所以有这样的情况:即使与调试通信状态无关地改变系统时钟的速率(包括停止),也不能正确进行用于调试的通信。因此,可以继续基于用于调试的通信的调试操作,而不需要依靠系统时钟的速率。此外,可将微控制器中的高速时钟用作用于调试通信的时钟,从而有助于增加通信速率和改善调试功能的执行。
在以上描述中,除了CPU部之外,调试设备具有与微控制器等同的构造。
虽然参照实施例描述了本发明,但是本发明并不限于上述实施例,并且可以被组合和实施从而不至于引起任何矛盾。可以理解,本领域技术人员对本发明可实现落入本发明范围的多种改型。