[go: up one dir, main page]

KR19990070329A - Microprocessor Application Development System - Google Patents

Microprocessor Application Development System Download PDF

Info

Publication number
KR19990070329A
KR19990070329A KR1019980005107A KR19980005107A KR19990070329A KR 19990070329 A KR19990070329 A KR 19990070329A KR 1019980005107 A KR1019980005107 A KR 1019980005107A KR 19980005107 A KR19980005107 A KR 19980005107A KR 19990070329 A KR19990070329 A KR 19990070329A
Authority
KR
South Korea
Prior art keywords
address
counter
trace
memory
program
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.)
Withdrawn
Application number
KR1019980005107A
Other languages
Korean (ko)
Inventor
김창균
Original Assignee
윤종용
삼성전자 주식회사
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 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Priority to KR1019980005107A priority Critical patent/KR19990070329A/en
Publication of KR19990070329A publication Critical patent/KR19990070329A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

본 발명의 ICE(In-Circuit Emulator)는 프로그램의 테스트 동작 시에 각 명령들의 실행 시간을 알 수 있게 한다. 응용 프로그램의 실행 시에 각 명령들의 실행 시간을 카운터로 측정하고 이 측정된 값들은 트레이스 메모리에 저장된다. 이 카운터 값을 계산하면 각 명령들의 실행 시간을 알 수 있게 된다. 보다 정밀한 측정을 위해서는 프리스케일러의 분주값을 조정함으로서 가능하다.The In-Circuit Emulator (ICE) of the present invention makes it possible to know the execution time of each instruction during a test operation of the program. When the application runs, the execution time of each instruction is measured by a counter, and the measured values are stored in the trace memory. By calculating this counter value, you can see the execution time of each command. For more accurate measurements, this can be done by adjusting the prescaler's dispensing value.

Description

마이크로 프로세서 응용 프로그램 개발 시스템(MICRO PROCESSOR APPLICATION PROGRAM DEVELOPMENT SYSTEM)MICRO PROCESSOR APPLICATION PROGRAM DEVELOPMENT SYSTEM

본 발명은 마이크로 프로세서(Micro Processor) 또는 마이크로 컨트롤러(Micro Controller)용 응용프로그램 개발장치에 관한 것이다.The present invention relates to an application development apparatus for a microprocessor or a microcontroller.

마이크로 컨트롤러 유닛(MCU; Micro Controller Unit) 또는 마이크로 프로세서 유닛(MCU; Micro Processor Unit)의 응용 프로그램을 개발하는데 필요한 장치를 ICE(In-Circuit Emulator)라 한다. 이 ICE 장치에는 트레이스(Trace) 기능이 제공되고 있다. 트레이스 기능이란, 응용 프로그램의 디버깅을 위해 제공되는 것으로 응용프로그램의 실행 기록을 저장하여 프로그램의 진행 과정을 개발자가 확인하여 프로그램의 오류를 발견해 보도록 하는 기능이다. 즉, 트레이스 기능은 프로그램의 각 명령이 실행되는 순서들을 저장하였다가 보여주어 프로그램이 어떠한 형태로 실행이 되는지 확인 및 특정 부분에서 잘못된 수행을 하는지 등을 확인 할 수 있는 기능이다.A device required for developing an application program of a micro controller unit (MCU) or a micro processor unit (MCU) is called an in-circuit emulator (ICE). The ICE device is provided with a trace function. The trace function is provided for debugging an application program. The trace function stores a program execution record so that a developer can check a program's progress and detect a program error. In other words, the trace function saves and shows the order in which each command of the program is executed to check how the program is executed and to check whether the program performs wrongly in a certain part.

도 1은 종래의 ICE에서 트레이스 기능을 위한 하드웨어 구성의 블록도이다.1 is a block diagram of a hardware configuration for a trace function in a conventional ICE.

트레이스 기능을 수행하기 위해서는 ICE는 트레이스 어드레스 카운터(Trace Address Counter)(10)와, 트레이스 메모리(Trace Memory)(11)를 구비한다.In order to perform the trace function, the ICE includes a trace address counter 10 and a trace memory 11.

응용프로그램의 수행 시, 트레이스 메모리(11)에는 트레이스 어드레스 카운터(10)로부터 제공되는 트레이스 메모리 어드레스(Trace Memory Address)를 입력하여 해당되는 어드레스의 메모리 영역에 롬 어드레스 버스(ROM Address Bus)(12)를 통하여 입력되는 롬 어드레스가 저장된다. 그 내용은 개발자에 의해 확인 될 수 있도록 되어 실행중인 응용 프로그램이 어떤 순서로 실행이 되는지 알 수 있다. 그러므로 프로그램의 오류 여부를 검토하는 전형적인 트레이스 기능의 수행이 이루어진다.When the application program is executed, a trace memory address provided from the trace address counter 10 is input to the trace memory 11, and a ROM address bus 12 is input to a memory area of a corresponding address. The ROM address entered through is stored. The contents can be checked by the developer so that the running application can be seen in what order. Thus, a typical trace function is performed to check the program for errors.

트레이스 어드레스 카운터(10)는 각 명령이 패치(Fetch)되는 동안에 트레이스 메모리 어드레스를 하나씩 증가시켜 실행되는 응용프로그램이 저장될 어드레스를 지정하는 역할을 담당한다.The trace address counter 10 increases the trace memory address by one while each instruction is fetched, and designates an address where an application program to be executed is stored.

트레이스 메모리(2)는 기입 인에이블 신호(Write Enable Signal) nWE, 칩 인에이블 신호(Chip Enable Signal) nCE가 각각 인에이블된 상태에서, 출력 인에이블 신호(Out Enable Signal) nOE가 디스에이블(Disable) 일 때 롬 어드레스를 저장한다. 그리고, 기입 인에이블 신호 nWE가 디스에이블이고, 칩 인에이블 신호 nCE와 출력 인에이블 신호 nOE가 각각 인에이블 상태일 때 저장된 롬 어드레스가 출력된다.The trace memory 2 is configured to disable the output enable signal nOE when the write enable signal nWE and the chip enable signal nCE are enabled. ) Stores the ROM address. The stored ROM address is output when the write enable signal nWE is disabled, and the chip enable signal nCE and the output enable signal nOE are enabled.

이상과 같이, 종래의 트레이스 기능은 프로그램의 실행순서를 기록하여 보여주기 위하여 롬 어드레스만을 저장하여 보여주기 때문에 각 명령이 실행되는 시간을 측정하지 못하고 오실로스코프(Oscilloscope)나 로직 아날라이저(Logic Analyzer)등의 장비를 이용하여 시간을 측정하였다. 이와 같이 종래의 트레이스 기능은 프로그램의 실행 과정만을 보여줌으로 실제 각 명령이 실행되는 시간을 측정하기가 용이하지 않은 문제점이 있었다.As described above, the conventional trace function stores only the ROM address in order to record and show the execution order of the program. Therefore, the conventional trace function does not measure the execution time of each instruction and does not measure an oscilloscope or a logic analyzer. The time was measured using the equipment. As such, the conventional trace function shows only a process of executing a program, so that it is not easy to measure a time when each instruction is actually executed.

따라서, 본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로서 실행 중인 응용 프로그램의 각 명령이 실행되는 시간에 대한 정보를 실시간으로 측정할 수 있는 마이크로 프로세서 응용 프로그램 개발 시스템을 제공하는데 있다.Accordingly, it is an object of the present invention to provide a microprocessor application development system capable of measuring in real time information on the execution time of each instruction of a running application program as proposed to solve the above-mentioned problems.

도 1은 종래의 ICE에서 트레이스 기능을 위한 하드웨어 구성의 블록도;1 is a block diagram of a hardware configuration for a trace function in a conventional ICE;

도 2는 본 발명의 바람직한 실시예에 따른 ICE에서 트레이스 기능을 위한 하드웨어 구성의 블록도; 그리고2 is a block diagram of a hardware configuration for trace functionality in an ICE in accordance with a preferred embodiment of the present invention; And

도 3은 실행된 명령의 실행 시간을 보여주는 예를 보여주는 도면이다.3 is a diagram illustrating an example of an execution time of an executed command.

*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

10, 20 : 트레이스 어드레스 카운터 11, 21, 25 : 트레이스 메모리10, 20: trace address counter 11, 21, 25: trace memory

26 : 프리스케일러 27 : 카운터26: prescaler 27: counter

상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, 마이크로 프로세서 응용 프로그램 개발 시스템은: 응용 프로그램의 실행 동작에 따른 롬 어드레스를 저장하는 제 1 의 메모리 수단과; 상기 제 1 의 메모리 수단에 상기 롬 어드레스가 저장될 어드레스 신호를 발생하는 어드레스 발생 수단과; 소정의 주기를 갖는 기준 클락 신호를 분주하여 출력하는 클락 분주 수단과; 상기 클락 분주 수단으로부터 제공되는 클락 신호에 동기하여 카운팅하는 카운터와; 상기 어드레스 발생 수단으로부터 제공되는 어드레스 신호를 입력하여 해당되는 메모리 영역에 상기 카운터로부터 제공되는 카운트 데이터를 저장하는 제 2 의 메모리 수단을 포함하여, 상기 응용 프로그램의 실행시 단위 명령들의 실행 시간에 대응하여 상기 카운터에 의해 카운트된 카운트 데이터가 상기 제 2 의 메모리 수단에 저장된다.According to a feature of the present invention for achieving the object of the present invention as described above, a microprocessor application development system comprising: first memory means for storing a ROM address in accordance with an execution operation of an application program; Address generating means for generating an address signal for storing the ROM address in the first memory means; Clock division means for dividing and outputting a reference clock signal having a predetermined period; A counter for counting in synchronization with a clock signal provided from the clock divider; A second memory means for inputting an address signal provided from said address generating means and storing count data provided from said counter in a corresponding memory area, corresponding to the execution time of unit instructions when the application program is executed; Count data counted by the counter is stored in the second memory means.

(실시예)(Example)

이하 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 바람직한 실시예에 따른 ICE에서 트레이스 기능을 위한 하드웨어 구성의 블록도이다.2 is a block diagram of a hardware configuration for a trace function in an ICE according to a preferred embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명의 실시예에 따른 ICE는 트레이스 어드레스 카운터(20)와, 제 1 및 제 2 의 트레이스 메모리(21, 25)와, 프리스케일러(Prescaler)(26)와, 카운터(27)를 구비한다. 상기 제 1 및 제 2 의 트레이스 메모리(21, 25)의 입출력 동작은 도 1에 도시된 트레이스 메모리(11)의 동작과 동일하다.As shown in FIG. 2, an ICE according to an embodiment of the present invention includes a trace address counter 20, first and second trace memories 21 and 25, a prescaler 26, and a counter. (27) is provided. The input / output operations of the first and second trace memories 21 and 25 are the same as those of the trace memory 11 shown in FIG. 1.

상기 제 1 의 트레이스 메모리(20) 종래와 동일하게 트레이스 어드레스 카운터(20)로부터 제공되는 어드레스에 따라 롬 어드레스 버스(22)로부터 입력되는 롬 어드레스를 저장한다. 상기 제 2 의 트레이스 메모리(25)는 상기 카운터(27)의 출력을 입력하여 저장하는데, 저장되는 메모리 어드레스의 지정은 상기 트레이스 어드레스 카운터(20)로부터 제공된다. 상기 카운터(27)는 실행중인 각각의 명령들의 수행 시간을 계수하여 상기 제 2 의 트레이스 메모리(25)의 입력데이터로 제공한다.The first trace memory 20 stores the ROM address input from the ROM address bus 22 according to the address provided from the trace address counter 20 as in the conventional art. The second trace memory 25 inputs and stores the output of the counter 27, the designation of the memory address being stored is provided from the trace address counter 20. The counter 27 counts the execution time of each instruction being executed and provides the input data of the second trace memory 25.

상기 프리 스케일러(26)는 기준 클락 CLK1을 분주하여 그 분주된 클락 CLK2을 상기 카운터(27)의 카운트 클락으로 제공한다. 기준 클락 CLK1을 분주하는 것은 정밀도와 관련이 있는데, 만일 분주하는 값이 많게되면 명령이 실행된 시간을 측정하는 정밀도가 떨어지고, 분주값이 적으면 즉, 기준주기가 짧으면 정밀도가 높게된다. 예를 들어, 기준 클락 CLK1이 20MHz 일 때, 분주값이 2이면 상기 카운터(27)로 입력되는 클락 CLK2은 10MHz가 되고, 분주값이 10이면 2MHz가 된다. 상기 카운터(27)가 계수한 값을 저장하는 동작은 기입 인에이블 nWE1, 칩 인에이블 nCE1가 각각 인에이블 상태이고, 출력 인에이블 신호 nOE1가 디스에이블 일 때 저장한다. 상기 제 2 의 트레이스 메모리(25)에 저장이 완료되면 호스트(Host)(미도시됨)는 저장된 내용을 읽어서 그것을 시간으로 환산하여 사용자에게 각 명령이 실행된 시간을 알려주게 된다. 상기 호스트는 일반적으로 사용자 인터페이스(User Interface :UI)를 말한다. 호스트가 명령이 실행된 시간을 사용자에게 알려주는 방법은 두 가지가 있다. 그 하나는 도 3a에 도시된 바와 같이 각 명령이 실행된 시간을 누적하여 보여주는 방법이다. 다른 하나는 도 3b에 도시된 바와 같은 각 명령이 실행된 개별적 절대시간을 보여주는 방법이 있다. 그리고, 단위 시간은 사용자가 선택 가능하다. 즉, 상기 프리스케일러(26)의 분주값을 조정하는 것으로 정밀도를 선택하여 측정된 시간의 오차범위를 설정 할 수도 있다.The prescaler 26 divides the reference clock CLK1 and provides the divided clock CLK2 as a count clock of the counter 27. The division of the reference clock CLK1 is related to the precision. If the division value is high, the accuracy of measuring the time for executing the instruction is inferior. For example, when the reference clock CLK1 is 20 MHz, the clock CLK2 input to the counter 27 is 10 MHz when the division value is 2, and 2 MHz when the division value is 10. The operation of storing the value counted by the counter 27 is stored when the write enable nWE1 and the chip enable nCE1 are enabled and the output enable signal nOE1 is disabled. When the storage is completed in the second trace memory 25, the host (not shown) reads the stored contents and converts the stored contents into time to inform the user of the time when each command was executed. The host generally refers to a user interface (UI). There are two ways for the host to tell the user when the command is executed. One method is to accumulate and display the time each command is executed as shown in FIG. 3A. Another way is to show the individual absolute time each command was executed as shown in FIG. 3B. The unit time is user selectable. That is, by adjusting the dividing value of the prescaler 26, the accuracy of the measured time may be set by selecting precision.

이상과 같은 본 발명에 의하면, 마이크로 프로세서 또는 마이크로 컨트롤러의 응용 프로그램의 개발 시에 각 명령들의 동작시간을 실시간으로 저장함으로서 해당되는 프로그램의 실행 시간을 확인 할 수 있게 되어 보다 용이하게 프로그램의 개발이 가능해 지는 효과가 있다.According to the present invention as described above, it is possible to check the execution time of the corresponding program by storing the operating time of each instruction in real time at the time of development of the application program of the microprocessor or microcontroller, thereby making it easier to develop the program. It's losing.

Claims (1)

마이크로 프로세서 응용 프로그램 개발 시스템에 있어서:In a microprocessor application development system: 응용 프로그램의 실행 동작에 따른 롬 어드레스를 저장하는 제 1 의 메모리 수단과;First memory means for storing a ROM address according to an execution operation of an application program; 상기 제 1 의 메모리 수단에 상기 롬 어드레스가 저장될 어드레스 신호를 발생하는 어드레스 발생 수단과;Address generating means for generating an address signal for storing the ROM address in the first memory means; 소정의 주기를 갖는 기준 클락 신호를 분주하여 출력하는 클락 분주 수단과;Clock division means for dividing and outputting a reference clock signal having a predetermined period; 상기 클락 분주 수단으로부터 제공되는 클락 신호에 동기하여 카운팅하는 카운터와;A counter for counting in synchronization with a clock signal provided from the clock divider; 상기 어드레스 발생 수단으로부터 제공되는 어드레스 신호를 입력하여 해당되는 메모리 영역에 상기 카운터로부터 제공되는 카운트 데이터를 저장하는 제 2 의 메모리 수단을 포함하여,A second memory means for inputting an address signal provided from said address generating means and storing count data provided from said counter in a corresponding memory area, 상기 응용 프로그램의 실행시 단위 명령들의 실행 시간에 대응하여 상기 카운터에 의해 카운트된 카운트 데이터가 상기 제 2 의 메모리 수단에 저장되는 것을 특징으로 하는 마이크로 프로세서 응용 프로그램 개발 시스템.And the count data counted by the counter is stored in the second memory means corresponding to the execution time of the unit instructions when the application program is executed.
KR1019980005107A 1998-02-19 1998-02-19 Microprocessor Application Development System Withdrawn KR19990070329A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980005107A KR19990070329A (en) 1998-02-19 1998-02-19 Microprocessor Application Development System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980005107A KR19990070329A (en) 1998-02-19 1998-02-19 Microprocessor Application Development System

Publications (1)

Publication Number Publication Date
KR19990070329A true KR19990070329A (en) 1999-09-15

Family

ID=65893856

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980005107A Withdrawn KR19990070329A (en) 1998-02-19 1998-02-19 Microprocessor Application Development System

Country Status (1)

Country Link
KR (1) KR19990070329A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151250B2 (en) 2007-01-22 2012-04-03 Samsung Electronics Co., Ltd. Program trace method using a relational database

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151250B2 (en) 2007-01-22 2012-04-03 Samsung Electronics Co., Ltd. Program trace method using a relational database

Similar Documents

Publication Publication Date Title
US4167780A (en) Data processing unit having scan-in and scan-out means
US4782461A (en) Logical grouping of facilities within a computer development system
US5345580A (en) Microprocessor device and emulator device thereof
US6728900B1 (en) Microcomputer with test instruction memory
US4338660A (en) Relational break signal generating device
US5257358A (en) Method for counting the number of program instruction completed by a microprocessor
US6732311B1 (en) On-chip debugger
US6564347B1 (en) Method and apparatus for testing an integrated circuit using an on-chip logic analyzer unit
US6247146B1 (en) Method for verifying branch trace history buffer information
JPS61204749A (en) Software operation analyzing device
US4752928A (en) Transaction analyzer
US6173395B1 (en) Mechanism to determine actual code execution flow in a computer
EP0113393B1 (en) A self-clocked signature analyser
US6331957B1 (en) Integrated breakpoint detector and associated multi-level breakpoint techniques
EP0869434A2 (en) Method for outputting trace information of a microprocessor
US6867613B1 (en) Built-in self timing test method and apparatus
EP0530816A2 (en) Microprocessor with cache memory and trace analyzer therefor
US5073968A (en) Method and apparatus for marking emulation analysis states
JPH04195546A (en) Test mode setting circuit for microcomputer
KR19990070329A (en) Microprocessor Application Development System
CN116414682B (en) Program testing method and device, electronic equipment and storage medium
US7617428B2 (en) Circuits and associated methods for improved debug and test of an application integrated circuit
CN117236277B (en) Method and device for checking register and electronic equipment
US20190026213A1 (en) Control system and method of to perform an operation
RU2050588C1 (en) Method for control and debug of real-time programs and device for its implementation

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19980219

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid