KR100429957B1 - 프로그램 개발 장치, 프로그램 개발 방법, 프로그램 개발 프로그램을 저장한 저장 매체 - Google Patents

프로그램 개발 장치, 프로그램 개발 방법, 프로그램 개발 프로그램을 저장한 저장 매체 Download PDF

Info

Publication number
KR100429957B1
KR100429957B1 KR10-2001-0004452A KR20010004452A KR100429957B1 KR 100429957 B1 KR100429957 B1 KR 100429957B1 KR 20010004452 A KR20010004452 A KR 20010004452A KR 100429957 B1 KR100429957 B1 KR 100429957B1
Authority
KR
South Korea
Prior art keywords
event
generating
pseudo
program
target system
Prior art date
Application number
KR10-2001-0004452A
Other languages
English (en)
Other versions
KR20010083152A (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 엔이씨 일렉트로닉스 코포레이션
Publication of KR20010083152A publication Critical patent/KR20010083152A/ko
Application granted granted Critical
Publication of KR100429957B1 publication Critical patent/KR100429957B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23445Real time simulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23446HIL hardware in the loop, simulates equipment to which a control module is fixed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23447Uses process simulator to develop, simulate faults, fault tree
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23456Model machine for simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)

Abstract

프로그램 개발 장치는 상태 전이 매트릭스 및 이벤트 의사 생성 정보에 기초하여 프로그램 및 이벤트 의사 생성 루틴을 생성하는 생성기 및 컴파일러, 프로그램 및 이벤트 의사 생성 루틴의 에뮬레이션을 실행하는 평가 칩 및 초기 상태로서 상태 입력으로부터 프로그램의 에뮬레이션을 시작하고, 이벤트 의사 생성 정보를 참조하고 의사 생성 루틴을 실행하고 이벤트를 발생하도록 명령된 이벤트에 대응하는 정보로 의사 생성하는데 사용되는 RAM에 저장된 정보를 재기입하는 분석부를 갖는다.

Description

프로그램 개발 장치, 프로그램 개발 방법, 프로그램 개발 프로그램을 저장한 저장 매체{PROGRAM DEVELOPMENT APPARATUS, PROGRAM DEVELOPMENT METHOD, AND STORAGE MEDIUM STORING PROGRAM DEVELOPMENT PROGRAM}
본 발명은 프로그램 개발 장치, 프로그램 개발 방법, 프로그램 개발 프로그램을 저장한 저장 매체, 및 프로그램 개발 프로그램에 관한 것으로, 더 상세하게는, 컴팩트 디스크 플레이어 또는 화상 프로세스 장치와 같이 실시간으로 제어되는실시간 제어 시스템에 설치될 프로그램의 개발에 적용하기에 적합한 프로그램 개발 프로그램에 관한 것이다.
본 출원은 2000년 1월 31일에 출원된 일본 특허 출원 제2000-23231호의 우선권을 주장한 것이며, 그 내용은 여기에 참조로서 포함된다.
실시간 제어 시스템에서, 실시간 제어 시스템의 내부 또는 외부로부터의 임펄스(자극, 예를 들면, 다양한 신호들)인 이벤트와, 실시간 제어 시스템의 작용인 상태(예를 들면, 다양한 신호들의 수신 대기)는 복잡하게 조합된다. 또한, 이러한 조합에 대응하는 프로세스, 즉 특정 이벤트가 특정 상태에서 발생하는 때에 실시간 제어 시스템에 의해 수행되는 프로세스인 다수의 동작들도 다수 존재한다. 이러한 실시간 제어 시스템에 설치될 프로그램을 개발하기 위한 기술 중 하나로서, 상태 전이 매트릭스를 이용하는 프로그램 개발 방법이 있다. 상태 전이 매트릭스는 이벤트 및 상태가 행 또는 열로 각각 정렬되며, 이벤트 및 상태의 교차부(셀)에 대응하는 동작 및 동작이 정렬된 후의 전이 목적지가 정렬된 양방향성 매트릭스로 나타내었다. 이러한 프로그램 개발 방법에 따라, 실시간 제어 시스템이 대규모화되고 복잡해지더라도, 기본 설계에 경험이 없는 사람이 기본 설계를 실행할 수 있고 노동력을 절약할 수 있으며 개발 기간을 단축시킬 수 있다.
그러나, 프로그램 개발 방법에 의해 개발되고 CPU(중앙 프로세스부)에 의해 실시간 제어 시스템에서 실행될 수 있는(기계 언어 또는 어셈블리 언어 등) 언어로 기술된 대상 프로그램이 그 완료 개시로부터 통상 동작하는 경우는 드물다.
따라서, 후술될 프로그램 테스트 장치를 사용하여, 통상적으로 대상 프로그램의(프로그래밍 에러 또는 버그) 문제를 제거한다.
예를 들어, 프로그램 테스트 장치에는 ICE(In-Circuit Emulator) 및 디버그 제어 터미널이 설치되어 있다. ICE에는 대상 프로그램 테스트를 위해, 프로그램 프로세스를 실행하기 위해 대개 CPU 코어 이외에 디버깅 회로, 전송시에 타겟 시스템에서 실제로 테스트될 실제 칩(CPU 칩)에 포함된 터미널 이외에 디버깅 전용 터미널, 실제 칩과 동일한 성능의 평가 칩(공지된 양호한 칩), 테스트될 대상 프로그램을 미리 저장하기 위한 ROM(판독 전용 메모리) 및 대상 프로그램이 실행될 때 평가 칩에 의해 사용되는 RAM이 설치되어 있다. 평가 칩은 소켓에 접속되며, 이 소켓에는 개발되어질 시스템(타겟 시스템)의 하드웨어를 형성하는 기판에 고정된 실제 칩이 에뮬레이션 프로브를 통하여 삽입된다. 디버깅 제어 터미널은 ICE에 접속되고, 대상 프로그램을 디버깅하기 위한 다양한 기능을 갖는다.
프로그램 체커는 디버깅 제어 터미널을 동작시켜, ICE를 형성하는 평가 칩에 의해 대상 프로그램을 ROM으로부터 판독하고 그 대상 프로그램을 실행시키도록 함으로써, 타겟 시스템이 실제적으로 동작되는 경우의 것과 거의 동일하게하는 프로세스를 실행시킨다. 따라서, 대상 프로그램의 문제점(버그와 같은)이 상술한 동작에서 얻어진 다양한 정보에 기초하여 제거되고, ICE를 형성하는 RAM에 기록된다.
이제는, 대상 프로그램이 종래의 프로그램 테스트 장치를 이용하여 테스트되는 경우, 타겟 시스템의 하드웨어를 케이스에 형성하는 다양한 스위치와 다양한 키를 동작시키는 것에 의해, 원하는 프로세스가 실행될지 아닐지를 확인한다. 이 경우에, 원하는 프로세스가 정상적으로 실행되는지를 확인하기 위하여 동일한 동작을수십번 반복하는 것이 필요하며, 따라서 동작이 까다롭고 시간이 많이 걸린다는 점에 있어서 문제점이 있다.
예를 들어, CD(Compact Disk) 플레이어에서, CD에 저장된 복수개의 곡 중에 제2 곡을 재생하기 위한 과정을 위한 테스트를 하는 경우에, 다양한 스위치와 다양한 키들이 실제적으로 종래의 기술처럼 동작될 때, 먼저 트레이를 CD 플레이어로부터 끌어내도록 트레이 키를 누르고, 트레이에 CD를 올려넣고, 트레이를 CD 플레이어로 들어가도록 트레이 키를 누르고, 탐색 키를 두번 누르며, 그 다음에는 제2 곡이 재생되도록 재생 키를 누르는 것이 필요하다. 다시 말해, 복수의 스위치 및 복수의 키가 수회에 걸쳐 순서대로 동작되고, 따라서 마침내 원하는 프로세스가 실행된다. 이 경우, 그 동작이 힘들고 시간이 걸릴 뿐 아니라, 원하는 프로세스를 실행하기 전에, 대상 프로그램의 모든 프로세스들이 정규적으로 동작한다는 것을 확인한 후에야 그 프로세스를 테스트하는 것이 가능하다. 따라서, 임의의 프로세스가 임의의 순서로 테스트되어질 수 없다는 문제점이 있다.
또한, 타겟 시스템에 관련하여, 대상 프로그램 및 하드웨어가 병렬로 개발되기 때문에, 그 대상 프로그램을 테스트하는 데 사용된 하드웨어에는 실제 시장 이용을 위한 형태 및 기능이 완전히 제공되지 않고, 스위치 및 키의 내구성이 고려되지 않는 프로토 타입이 보통 사용된다. 따라서, 상술된 바와 같이 동일한 동작이 수십회 반복되면 스위치 또는 키가 고장날 수 있는 가능성이 있고, 그에 따라 대상 프로그램 테스트에 지연이 일어나게 된다. 또한, 실제 시장 이용을 위한 형태 및 기능이 갖추어진 하드웨어가 개발될 때까지 기다린다면, 타겟 시스템의 개발 기간이 더 길어질 것이다.
따라서, 타겟 시스템을 위한 하드웨어를 사용하지 않으면서 대상 프로그램을 조사하는 것이 필요한데, 이러한 프로그램 테스트 장치는 현재는 시장에서 이용할 수 없다.
상기의 측면에 있어서, 타겟 시스템을 위한 하드웨어를 사용하지 않으면서, 타겟 시스템용 대상 프로그램의 임의의 프로세스를 간단하면서도 짧은 시간 내에 실행할 수 있는 프로그램 개발 장치, 프로그램 개발 방법, 프로그램 개발 프로그램을 저장하는 저장 매체, 및 프로그램 개발 프로그램을 제공하는 것이 본 발명의 목적이다.
본 발명의 제1 양태에 따르면, 프로그램 개발의 대상인 시스템의 인에이블 상태와, 상기 시스템의 외부 또는 내부로부터 임펄스인 이벤트로 특정되는 복수의 셀을 지니고, 각 셀에, 대응하는 상태 하에서 대응하는 이벤트가 발생했을 때에 상기 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스, 및 상기 시스템을 구성하는 제1 중앙 프로세스 유닛에 동 시스템을 구성하는 다른 유닛으로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보에 기초하여, 상기 프로그램과, 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 프로그램 생성 수단;
상기 제1 중앙 프로세스 유닛과 동등한 기능을 갖고, 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 제2 중앙 프로세스 유닛;
상기 제2 중앙 프로세스 유닛과 상기 시스템의 상기 다른 유닛 사이에 끼워져(介揷), 상기 제2 중앙 프로세스 유닛과 상기 시스템의 상기 다른 유닛 사이에서 송수신되는 상기 데이터나 신호를 입출력하기 위한 입출력 포트; 및
초기 상태로서 입력된 상태로부터 상기 프로그램의 에뮬레이션을 개시시킴과 함께, 상기 이벤트 의사 생성 정보를 참조하고, 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되어 있는 이벤트를 의사 생성하기 위한 정보를, 발생되도록 명령된 이벤트에 대응하는 정보에 재기입하는 분석부를 포함한다.
또한, 본 발명의 제2 양태에 따르면, 프로그램 개발의 대상인 시스템의 인에이블 상태와, 상기 시스템의 외부 또는 내부로부터의 임펄스인 이벤트로 특정되는 복수의 셀을 갖고, 각 셀에, 대응하는 상태 하에서 대응하는 이벤트가 발생했을 때에 상기 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스가 기억되는 상태 전이 매트릭스 메모리부;
상태 전이 매트릭스를 기억하기 위한 상태 전이 매트릭스 메모리부- 상기 상태 전이 매트릭스는 프로그램 개발의 주체가 되는 상기 시스템이 인에이블되는 상태와 상기 시스템의 외부 또는 내부로부터의 임펄스가 되는 이벤트에 의해서 각각 정의되는 다수의 셀을 가지며, 상기 시스템에 의해서 실행되는 프로세스의 내용 및 대응하는 상태 하에서 대응하는 이벤트가 발생될 때에 전이되는 전이 목적지의 상태는 상기 각 셀에 기술됨-;
상기 시스템을 구성하는 제1 중앙 프로세스 유닛에 동 시스템을 구성하는 다른 유닛으로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하는 이벤트 의사 발생 에디터(editor);
상기 상태 전이 매트릭스 및 상기 이벤트 의사 생성 정보에 기초하여, 상기 프로그램과, 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 프로그램 생성 수단;
상기 제1 중앙 프로세스 유닛과 동등한 기능을 갖고, 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 제2 중앙 프로세스 유닛;상기 제2 중앙 프로세스 유닛과 상기 시스템의 상기 다른 유닛 사이에 끼워져, 상기 제2 중앙 프로세스 유닛과 상기 시스템의 상기 다른 유닛 사이에서 송수신되는 상기 데이터나 신호를 입출력하기 위한 입출력 포트;
표시부에 표시된 상기 상태 전이 매트릭스를 구성하는 복수의 이벤트 또는 복수의 상태의 각각의 표시 위치 중 어느 위치가 지시되었는지를 검출하여, 그 표시 위치에 관한 위치 정보를 출력하는 입력부; 및
상기 위치 정보를 그 위치에 대응하는 이벤트 코드 또는 상태 코드로 변환하여, 해당 상태 코드에 대응하는 상태를 상기 프로그램의 에뮬레이션을 개시하는 초기 상태로서 설정함과 함께, 상기 이벤트 의사 생성 정보를 참조하여 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되는 이벤트를 의사 생성하기 위한 정보를 상기 이벤트 코드에 대응한 정보에 재기입하는 분석부를 포함한다.
또한, 본 발명의 제3 양태에 따르면, 프로그램 개발의 대상인 시스템의 인에이블 상태와, 상기 시스템의 외부 또는 내부로부터의 임펄스인 이벤트로 특정되는 복수의 셀을 지니고, 각 셀에, 대응하는 상태 하에서 대응하는 이벤트가 발생했을 때에 상기 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스가 기억되는 상태 전이 매트릭스 메모리부;
상기 시스템을 구성하는 제1 중앙 프로세스 유닛에 동 시스템을 구성하는 다른 유닛으로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하는 이벤트 의사 발생 에디터;
상기 상태 전이 매트릭스 및 상기 이벤트 의사 생성 정보에 기초하여, 상기 프로그램과, 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 프로그램 생성 수단;
상기 제1 중앙 프로세스 유닛과 동등한 기능을 갖고, 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 제2 중앙 프로세스 유닛;
상기 제2 중앙 프로세스 유닛과 상기 시스템의 상기 다른 유닛 사이에 끼워져, 상기 제2 중앙 프로세스 유닛과 상기 시스템의 상기 다른 유닛 사이에서 송수신되는 상기 데이터나 신호를 입출력하기 위한 입출력 포트;
표시부에 표시된 상기 상태 전이 매트릭스를 구성하는 복수의 이벤트 또는 복수의 상태의 각각의 표시 위치 중 어느 위치가 지시되었는지를 검출하여, 그 표시 위치에 관한 위치 정보를 출력함과 함께, 명령된 이벤트의 순서 및 각 이벤트가 명령된 타이밍을 포함하는 입력 이벤트 로그를 생성하기 위한 입력부;
상기 입력 이벤트 로그에 기초하여, 상기 상태 전이 매트릭스에 기술된 각 이벤트의 발생 타이밍이나 상기 시스템의 유닛이 스펙에 따라서 동작하여야 할 타이밍을 기술한 스크립트 파일을 작성하는 스크립트 작성부;
상기 스크립트 파일에 기술되어 있는 각 이벤트의, 상기 표시부에 표시된 상기 상태 전이 매트릭스의 대응하는 표시 영역의 위치 정보를 상기 스크립트 파일에 기술된 순서 및 발생 타이밍으로 순차 출력하는 스크립트 분석부;
상기 입력부 또는 상기 스크립트 분석부에서 공급되는 상기 위치 정보를 그 위치에 대응하는 이벤트 코드 또는 상태 코드로 변환하여, 상기 상태 코드에 대응하는 상태를 상기 프로그램의 에뮬레이션을 개시하는 초기 상태로서 설정함과 함께, 상기 이벤트 의사 생성 정보를 참조하여, 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되는, 이벤트를 의사 생성하기 위한 정보를 상기 이벤트 코드에 대응한 정보에 재기입하는 분석부를 포함한다.
전술한 제3 양태에서는, 바람직한 모드는 발생되는 이벤트 입력, 상기 이벤트의 발생 타이밍 및 발생 빈도중 어느 하나에 기초하여 상기 스크립트 파일을 편집하기 위한 스크립트 에디터를 더 포함하는 것이다.
전술한 제1, 제2 또는 제3 양태에서, 바람직한 모드는 상기 스크립트 파일은 타이밍 차트 포맷, 텍스트 포맷 및 메시지 시퀀스 차트 포맷 중 어는 하나인 모드이다.
또한, 바람직한 모드는, 상기 프로그램은 상기 시스템의 주요 프로세스를 실행하는 메인 루틴 및 상기 다른 유닛으로부터 상기 제1 중앙 프로세스 유닛으로 전송되는 각종 데이터 및 신호에 기초한 대응하는 이벤트를 정상적으로 생성하는 정상 이벤트 생성 루틴을 포함하는 모드이다.
또한, 바람직한 모드는 이벤트 의사 생성 정보가 이벤트에 따른 생성 기술의 정보인 모드이다.
또한, 바람직한 모드는 상기 이벤트는 다른 태스크 또는 다른 장치로부터의 시작 메시지를 수신하는 메시지 형, 변수의 변형 또는 입력/출력을 판독하는 플래그 형, 외부로부터 인터럽트를 수신하는 인터럽트 형, 상기 상태 전이 매트릭스가 계층화되어 있을 때에 상기 상태 전이 매트릭스의 하나의 셀에서 발생되는 내부 이벤트를 다른 상태 전이 매트릭스에 통지하는 인-메일 형(in-mail type) 및 프로세스군을 실행하는 기능을 불러내는 기능 호출 형 중 어느 하나인 모드이다.
본 발명의 제4 양태에 따르면, 적어도 제1 중앙 프로세스 유닛 및 다른 유닛을 갖는 시스템 내에 설치될 프로그램을 개발하는데 이용되는 프로그램 개발 방법이 제공되는데, 이 프로그램 개발 방법은,
상기 프로그램 및 상태 전이 매트릭스에 기초하는 상기 이벤트를 의사 생성하는 이벤트 의사 생성 루틴 및 상기 다른 유닛으로부터 상기 시스템 내의 상기 제1 중앙 프로세스 유닛으로 전송되는 데이터 또는 신호에 기초하여 정상적으로 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하기 위한 제1 단계-상기 상태 전이 매트릭스는 프로그램 개발의 주체가 되는 상기 시스템이 인에이블되는 상태와 상기 시스템의 외부 또는 내부로부터의 임펄스가 되는 이벤트에 의해서 각각 정의되는 다수의 셀을 가지며, 상기 시스템에 의해서 실행되는 프로세스의 내용 및 대응하는 상태 하에서 대응하는 이벤트가 발생될 때에 전이되는 전이 목적지의 상태는 상기 각 셀에 기술됨-; 및
초기 상태로서 입력된 상태로부터 상기 프로그램의 상기 에뮬레이션을 개시하고 상기 이벤트 의사 생성 루틴을 실행하면서 상기 의사 생성 정보를 참조하고 상기 이벤트 의사 생성 루틴을 실행하는데 사용된 메모리부에 기억된 상기 이벤트를 의사 생성하기 위한 정보를 발생되도록 명령된 상기 이벤트에 대응하는 정보로 재기입하는 제2 단계를 포함한다.
본 발명의 제5 양태에 따르면, 적어도 제1 중앙 프로세스 유닛 및 다른 유닛을 갖는 시스템 내에 설치될 프로그램을 개발하는데 이용되는 프로그램 개발 방법이 제공되는데, 이 프로그램 개발 방법은,
상태 전이 매트릭스를 기억하기 위한 상태 전이 매트릭스 메모리부- 상기 상태 전이 매트릭스는 프로그램 개발의 주체가 되는 상기 시스템이 인에이블되는 상태와 상기 시스템의 외부 또는 내부로부터의 임펄스가 되는 이벤트에 의해서 각각 정의되는 다수의 셀을 가지며, 상기 시스템에 의해서 실행되는 프로세스의 내용 및 대응하는 상태 하에서 대응하는 이벤트가 발생될 때에 전이되는 전이 목적지의 상태는 상기 각 셀에 기술됨-; 및
표시부에 표시된 상기 상태 전이 매트릭스를 형성하는 다수의 이벤트 및 다수의 상태중에서 각 이벤트 또는 각 상태의 어떤 표시 위치가 명령되는 지를 검출하고 상기 검출된 표시 위치에 대한 위치 정보를 출력하는 입력부를 사용하여 수행되며,
상기 다른 유닛으로부터 상기 시스템 내의 제1 중앙 프로세스 유닛으로 전송되는 데이터 또는 신호에 기초하여 정상적으로 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하기 위한 제1 단계;
상기 프로그램 및 이벤트 의사 생성 루틴을 생성하여 상기 상태 전이 매트릭스 및 상기 이벤트 의사 생성 정보에 기초하여 상기 이벤트를 의사 생성하는 제2 단계; 및
상기 위치 정보를 상기 위치에 대응하는 이벤트 코드 또는 상태 코드로 변환하고, 초기 상태로서 입력된 상태로부터 상기 프로그램의 에뮬레이션을 개시하며, 상기 이벤트 의사 생성 루틴을 실행하면서 상기 의사 생성 정보를 참조하여 상기 이벤트 의사 생성 루틴을 실행하는데 사용된 메모리부에 기억된 상기 이벤트를 의사 생성하기 위한 정보를 발생되도록 명령된 상기 이벤트에 대응하는 정보로 재기입하는 제3 단계를 포함한다.
본 발명의 제6 양태에 따르면, 적어도 제1 중앙 프로세스 유닛 및 다른 유닛을 갖는 시스템 내에 설치될 프로그램을 개발하는데 이용되는 프로그램 개발 방법이 제공되는데, 이 프로그램 개발 방법은,
상태 전이 매트릭스를 기억하기 위한 상태 전이 매트릭스 메모리부- 상기 상태 전이 매트릭스는 프로그램 개발의 주체가 되는 상기 시스템이 인에이블되는 상태와 상기 시스템의 외부 또는 내부로부터의 임펄스가 되는 이벤트에 의해서 각각 정의되는 다수의 셀을 가지며, 상기 시스템에 의해서 실행되는 프로세스의 내용 및 대응하는 상태 하에서 대응하는 이벤트가 발생될 때에 전이되는 전이 목적지의 상태는 상기 각 셀에 기술됨-; 및
표시부에 표시된 상기 상태 전이 매트릭스를 형성하는 다수의 이벤트 및 다수의 상태 중에서 각 이벤트 또는 각 상태의 어떤 표시 위치가 명령되는 지를 검출하고 상기 검출된 표시 위치에 대한 위치 정보를 출력하는 입력부
를 사용하여 수행되는 프로그램 개발 방법에 있어서, 상기 프로그램 개발 방법이,
상기 다른 유닛으로부터 상기 시스템 내의 제1 중앙 프로세스 유닛으로 전송되는 데이터 또는 신호에 기초하여 정상적으로 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하기 위한 제1 단계;
상기 프로그램 및 이벤트 의사 생성 루틴을 생성하여 상기 상태 전이 매트릭스 및 상기 이벤트 의사 생성 정보에 기초하여 상기 이벤트를 의사 생성하는 제2 단계;
명령된 이벤트의 순서 및 각 이벤트가 명령되는 타이밍을 포함하는 입력 이벤트 로그를 생성하는 제3 단계;
상기 입력된 이벤트 로그에 기초하여, 상기 상태 전이 매트릭스에 기술된 각 이벤트의 발생 타이밍 및 상기 시스템 내의 소자가 내역에 따라서 동작하는 타이밍이 기술되어 있는 스크립트 파일을 생성하는 제4 단계;
상기 스크립트 파일에 기술된 각 이벤트 및 상기 표시부에 표시된 상기 상태 전이 매트릭스의 대응 표시 영역의 위치 정보를 순서대로 상기 스크립트 파일에 기술된 발생 타이밍에서 순차적으로 출력하기 위한 제5 단계; 및
상기 위치 정보를 상기 위치에 대응하는 이벤트 코드로 변환하여 상기 이벤트 의사 생성 루틴을 실행하면서 상기 의사 생성 정보를 참조하여 상기 이벤트 의사 생성 루틴에 의해 사용된 메모리부에 기억된, 상기 이벤트를 의사 생성하기 위한 정보를 상기 이벤트 코드에 대응하는 정보로 재기입하는 제6 단계를 포함한다.
전술된 제6 양태에서, 바람직한 모드는 발생되는 이벤트 입력, 상기 이벤트의 발생 타이밍 및 발생 빈도 중 어느 하나에 기초하여 상기 스크립트 파일을 편집하는 제7 단계를 더 포함하는 것이다.
전술된 제5 또는 제6 양태에서, 바람직한 모드는 상기 스크립트 파일은 타이밍 차트 포맷, 텍스트 포맷 및 메시지 시퀀스 차트 포맷 중 어느 하나인 것이다.
전술된 제4, 제5 또는 제6 양태에서 바람직한 모드는 상기 프로그램은 상기 시스템의 주요 프로세스를 실행하는 메인 루틴 및 상기 다른 유닛으로부터 상기 제1 중앙 프로세스 유닛으로 전송되는 각종 데이터 및 신호에 기초한 대응하는 이벤트를 정상적으로 생성하는 정상 이벤트 생성 루틴을 포함하는 것이다.
또한, 바람직한 모드는 이벤트 의사 생성 정보가 이벤트에 따르는 발생 기술의 정보인 것이다.
또한, 바람직한 모드는 다른 태스크 또는 다른 장치로부터의 시작 메시지를 수신하는 메시지 형, 변수의 변형 또는 입력/출력을 판독하는 플래그 형, 외부로부터 인터럽트를 수신하는 인터럽트 형, 상기 상태 전이 매트릭스가 계층화되어 있을 때에 상기 상태 전이 매트릭스의 하나의 셀에서 발생되는 내부 이벤트를 다른 상태 전이 매트릭스에 통지하는 인-메일 형 및 프로세스군을 실행하는 기능을 불러내는 기능 호출 형 중 어느 하나인 것이다.
본 발명의 제7 양태에 따르면, 컴퓨터로 하여금 적어도 제1 중앙 처리 및 다른 소자를 갖는 시스템에 설치될 프로그램을 발생하기 위해 사용되는 프로그램 발생 방법을 수행하게 하는 프로그램 발생 프로그램이 제공되는데, 프로그램 발생 방법은
상기 프로그램 및 상태 전이 매트릭스에 기초하는 상기 이벤트를 의사 생성하는 이벤트 의사 생성 루틴 및 상기 다른 유닛으로부터 상기 시스템 내의 상기제1 중앙 프로세스 유닛으로 전송되는 데이터 또는 신호에 기초하여 정상적으로 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하기 위한 제1 단계-상기 상태 전이 매트릭스는 프로그램 개발의 주체가 되는 상기 시스템이 인에이블되는 상태와 상기 시스템의 외부 또는 내부로부터의 임펄스가 되는 이벤트에 의해서 각각 정의되는 다수의 셀을 가지며, 상기 시스템에 의해서 실행되는 프로세스의 내용 및 대응하는 상태하에서 대응하는 이벤트가 발생될 때에 전이되는 전이 목적지의 상태는 상기 각 셀에 기술됨-; 및
초기 상태로서 입력된 상태로부터 상기 프로그램의 상기 에뮬레이션을 개시하고 상기 이벤트 의사 생성 루틴을 실행하면서 상기 의사 생성 정보를 참조하고 상기 이벤트 의사 생성 루틴을 실행하는데 사용된 메모리부에 기억된 상기 이벤트를 의사 생성하기 위한 정보를 발생되도록 명령된 상기 이벤트에 대응하는 정보로 재기입하는 제2 단계를 포함한다.
본 발명의 제8 양태에 따르면, 컴퓨터로 하여금 적어도 제1 중앙 처리 및 다른 소자를 적어도 갖는 시스템에 설치될 프로그램을 발생하기 위해 사용된 프로그램 발생 방법을 수행하게 하는 프로그램 발생 프로그램이 제공되는데,
상기 프로그램 개발 방법이,
상태 전이 매트릭스를 기억하기 위한 상태 전이 매트릭스 메모리부- 상기 상태 전이 매트릭스는 프로그램 개발의 주체가 되는 상기 시스템이 인에이블되는 상태와 상기 시스템의 외부 또는 내부로부터의 임펄스가 되는 이벤트에 의해서 각각 정의되는 다수의 셀을 가지며, 상기 시스템에 의해서 실행되는 프로세스의 내용 및 대응하는 상태 하에서 대응하는 이벤트가 발생될 때에 전이되는 전이 목적지의 상태는 상기 각 셀에 기술됨-; 및
표시부에 표시된 상기 상태 전이 매트릭스를 형성하는 다수의 이벤트 및 다수의 상태 중에서 각 이벤트 또는 각 상태의 어떤 표시 위치가 명령되는 지를 검출하고 상기 검출된 표시 위치에 대한 위치 정보를 출력하는 입력부를 사용하여 수행되며,
상기 다른 유닛으로부터 상기 시스템 내의 제1 중앙 프로세스 유닛으로 전송되는 데이터 또는 신호에 기초하여 정상적으로 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하기 위한 제1 단계;
상기 프로그램 및 이벤트 의사 생성 루틴을 생성하여 상기 상태 전이 매트릭스 및 상기 이벤트 의사 생성 정보에 기초하여 상기 이벤트를 의사 생성하는 제2 단계; 및
상기 위치 정보를 상기 위치에 대응하는 이벤트 코드 또는 상태 코드로 변환하고, 초기 상태로서 입력된 상태로부터 상기 프로그램의 에뮬레이션을 개시하며, 상기 이벤트 의사 생성 루틴을 실행하면서 상기 의사 생성 정보를 참조하여 상기 이벤트 의사 생성 루틴을 실행하는데 사용된 메모리부에 기억된 상기 이벤트를 의사 생성하기 위한 정보를 발생되도록 명령된 상기 이벤트에 대응하는 정보로 재기입하는 제3 단계를 포함한다.
이들 구성으로, 타겟 시스템의 대상 프로그램의 임의의 프로세스를 간단히 그리고 타겟 시스템의 하드웨어를 사용하지 않고 임의의 순서로 단시간에 테스트하는 것이 가능하다. 결과적으로, 타겟 시스템의 생성 주기를 단축시킬 수 있다.
또한, 프로그램의 에뮬레이션은 초기 상태로서 입력된 상태로부터 시작되고, 이벤트 의사 생성 정보를 참고하고 이벤트 의사 생성 루틴을 실행하는데 사용된 메모리 섹션내에 기억된 정보인, 이벤트를 의사 발생하기 위한 정보를, 발생하도록 명령된 이벤트에 대응하는 정보로 재기입된다. 그러므로, 복수의 스위치 또는 키를 순서대로 동작한 후에 처음으로 실행된 프로세스에도 불구하고, 타겟 시스템의 대상 프로그램의 임의의 프로세스를 간단히 그리고 타겟 시스템의 하드웨어를 사용하지 않고 임의의 순서로 단시간에 테스트하는 것이 가능하다.
또한, 입력 섹션은 입력 이벤트 로그를 발생시키고, 스크립트 생성부는 입력 이벤트 로그에 기초하여 스크립트 파일을 발생시키고, 스크립트 분석부는 스크립트 파일에 기술된 각각의 이벤트 및 상태 전이 매트릭스내의 대응하는 표시 영역의 위치 정보를 순서대로 그리고 스크립트 파일에서 기술된 발생 타이밍으로 순차 출력한다. 그러므로, 스크립트 파일과 거의 동시에 에뮬레이션을 발생시키도록 실행하는 것이 가능하고 스크립트 파일을 발생하고 정정하는 시간을 단축시킬 수 있기 때문에, 대상 프로그램의 생성 주기를 단축시킬 수 있다. 또한, 타겟 시스템의 하드웨어가 완료되지 않음에도 불구하고 또는 복수의 스위치 또는 키를 순서대로 복수회 동작시킨 후 먼저 실행되는 프로세스에도 불구하고, 스위치 또는 키를 실질적으로 동작시키지 않고 아무때나 자동적으로 반복적으로 에뮬레이션을 실행하는 것이 가능하고 대상 프로그램의 생성 주기를 단축시키는 것이 가능하다. 게다가, 프로그램 테스트의 결과 및 결과에 기초하여 대상 프로그램에 대한 정정에 의해 발생된 저하가 발생하고 대상 프로그램이 폭넓게 재테스트 되어도, 스트립트 파일을 발생시킴으로써 넓은 영역을 커버링하는 복수의 이벤트를 의사 발생하는 것이 가능하다. 결과적으로, 대상 프로그램의 생성 주기를 단축하는 것이 가능하다.
그러므로, 타겟 프로그램의 생성 주기를 단축하는 것이 가능하다.
도 1은 본 발명의 제1 실시예에 따른 프로그램 개발 장치의 구성을 나타낸 개략 블럭도.
도 2는 인서킷 에뮬레이터 및 타겟 시스템의 구성을 나타낸 개략 블럭도.
도 3은 타겟 시스템의 일례인 CD 플레이어내의 CPU의 동작의 상태 전이 매트릭스를 나타낸 도면.
도 4는 C 언어로 기술된 메인 루틴의 일부의 일례를 나타낸 도면.
도 5는 C 언어로 기술된 이벤트 의사 생성 루틴의 일부의 일례를 나타낸 도면.
도 6은 본 발명의 제1 실시예에 따른 인간-기계 인터페이스의 표시부상에 표시된 에뮬레이션 모드 화면의 일례를 나타낸 도면.
도 7은 본 발명의 제2 실시예에 따른 프로그램 개발 장치의 구성을 나타낸 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 인간-기계 인터페이스(MMI)
2 : 상태 전이 매트릭스 에디터
3 : 이벤트 의사 생성 에디터
4 : 상태 전이 매트릭스 메모리부
5 : 이벤트 의사 생성 정보 메모리부
6 : 생성기
7 : 프로그램 메모리부
8 : 이벤트 의사 생성 루틴 메모리부
9 : 컴파일러
10 : 기계어 코드 메모리부
11 : 입력부
12 : 분석부
13 : 디버거
14 : 인서킷 에뮬레이터
상기한 본 발명의 목적, 잇점 및 특징들은 첨부된 도면을 참조하여 이루어진 이하의 설명을 보면 더욱 명백하게 될 것이다.
본 발명을 실시하기 위한 최량의 모드에 대해 첨부된 도면을 참조하여 각종 실시예를 사용하여 보다 상세히 설명한다.
제1 실시예
도 1은 본 발명의 제1 실시예에 따른 프로그램 개발 장치의 구성을 나타낸 블럭도이다.
제1 실시예에 따른 프로그램 개발 장치는, 도 1에 도시한 바와 같이, 인간-기계 인터페이스(MMI, 1), 상태 전이 매트릭스 에디터(2), 이벤트 의사 생성 에디터(3), 상태 전이 매트릭스 메모리부(4), 이벤트 의사 생성 정보 메모리부(5), 생성기(6), 프로그램 메모리부(7), 이벤트 의사 생성 루틴 메모리부(8), 컴파일러(9), 기계어 코드 메모리부(10), 입력부(11), 분석부(12), 디버거(13) 및 인서킷 에뮬레이터(14)를 주된 구성요소로 하고 있다. 인서킷 에뮬레이터(14)는 에뮬레이션 프로브(15)를 거쳐 타겟 시스템(16)에 접속되어 있다.
인간-기계 인터페이스(1)는 표시부(1a), 마우스(1b), 키보드(1c) 등을 포함하고 있다. 사용자는 마우스(1b) 및 키보드(1c)를 조작하여 상태 전이 매트릭스를 생성하는데 필요한 정보(상태, 이벤트, 동작 및 전이 목적지 등)를 입력한다. 또한, 인서킷 에뮬레이터(14)로 상태 전이 매트릭스를 사용하여 설계된 실시간 제어 시스템의 상태 전이 매트릭스에 근거하여 각 이벤트에 대한 에뮬레이션을 실행하기 위하여, 표시부(1a)에 표시된 이벤트 표시 영역에서 마우스(1b) 또는 키보드(1c)의 커서 키로 커서를 움직이고 마우스(1b) 또는 키보드(1c)의 커서 키를 누르게 되고, 이와 같이 함으로써 인간-기계 인터페이스(1)를 사용하여 이벤트의 입력을 나타내고, 디버거(13)로부터 공급된 에뮬레이션 결과가 표시부(1a)에 표시된다.
상태 전이 매트릭스 에디터(2)는 인간-기계 인터페이스(1)를 거쳐 입력된 상태, 이벤트, 동작 및 전이 목적지 등에 근거하여 상태 전이 매트릭스를 생성 및 편집하고, 상태 전이와 관련된 정보를 상태 전이 매트릭스 메모리부(4)에 기억시킨다. 이벤트 의사 생성 에디터(3)는, 타겟 시스템의 각종 키, 스위치 등을 조작하여 타겟 시스템으로부터 공급되는 조작에 대응하는 신호에 근거하거나 또는 다른 CPU 또는 반도체 장치의 소자로부터 전송된 각종 데이터나 신호에 근거하여 발생된 이벤트와 동일 이벤트를 의사 생성하기 위하여, 커서가 움직이고 표시부(1a)에 표시된 상태 전이 매트릭스의 이벤트 표시 영역에 있는 마우스(1b) 또는 키보드(1c)의 커서 키 및 마우스(1b)의 좌측 버튼을 클릭하거나 또는 리턴 키를 누른 것을 검출하고, 의사 생성 입력을 위해 필요한 인간-기계 인터페이스(1)를 거쳐 입력된 정보(각각의 이벤트 생성 기술)에 근거하여 메모리부(4)에 기억된 상태 전이 매트릭스에 관한 정보를 참조하고, 의사 생성될 이벤트에 관한 정보인 이벤트 의사 생성 정보를 생성하여 이벤트 의사 생성 정보 메모리부(5)에 기억시킨다. 상태 전이 매트릭스 메모리부(4) 및 이벤트 의사 생성 정보 메모리부(5)는 둘다 대용량 메모리를 갖는 기억 매체로서, 예를 들면 RAM 등의 반도체 메모리, FD(플로피 디스크) 및 HD(하드 디스크)가 있으며, 상태 전이 매트릭스의 정보 및 이벤트 의사 생성 정보는 각각 이 기억 매체에 기억된다.
생성기(6)는, 상태 전이 매트릭스 메모리부(4)로부터 판독한 상태 전이 매트릭스와 관련된 정보 및 이벤트 의사 생성 정보 메모리부(5)로부터 판독한 이벤트 의사 생성 정보에 근거하여, 프로그래밍 언어, 예를 들면 C 언어 등으로 기술된 프로그램(소스 프로그램)을 자동적으로 생성하여, 타겟 시스템(16)에 인스톨하고 프로그램 메모리부(7)에 기억시킨다. 생성기(6)는, 또한 이벤트 의사 생성 정보 메모리부(5)로부터 판독한 이벤트 의사 생성 정보에도 근거하여, 프로그래밍 언어로 기술된 소오스 프로그램과 유사한 이벤트 의사 생성 루틴을 자동적으로 생성하고, 이 이벤트 의사 생성 루틴을 이벤트 의사 생성 루틴 메모리부(8)에 기억시킨다. 소스 프로그램에는, 타겟 시스템의 메인 프로세스를 실행하기 위한 메인 루틴과, 이벤트 정상 생성 루틴이 포함되어 있는데, 이벤트 정상 생성 루틴은 타겟 시스템(16)을 구성하는 각종의 키 및 스위치 등을 조작하고 이 조작에 대응하여 타겟 시스템(16)으로부터 공급되는 신호에 근거하고 또한 다른 CPU 및 반도체 장치와 같은 소자로부터 전송된 각종 데이터 및 신호에도 근거하여 어떤 키 또는 어떤 스위치가 조작되는지 또는 어떤 소자가 데이터 및 신호를 전송하는지를 검출하여 그 내용을 메인 루틴에 통지한다, 즉 정상적으로 이벤트를 생성하게 된다. 프로그램메모리부(7) 및 이벤트 의사 생성 루틴 메모리부(8)는 RAM 등의 반도체 메모리 또는 FD 또는 HD 와 같은 대용량 메모리의 기억 매체이다. 프로그램 메모리부(7) 및 이벤트 의사 생성 루틴 메모리부(8)는 소스 프로그램 및 이벤트 의사 생성 루틴을 기억하고 있다.
컴파일러(9)는 프로그램 메모리부(7)로부터 판독한 소스 프로그램을 CPU가 실행할 수 있는 기계어로 기술된 대상 프로그램으로 변환하고, 이 대상 프로그램을 기계어 코드 메모리부(10)에 기억시킨다. 컴파일러(9)는 또한 이벤트 의사 생성 루틴 메모리부(8)로부터 판독한 프로그래밍 언어로 기술된 이벤트 의사 생성 루틴을 대상 프로그램과 유사하게 기계어로 기술된 이벤트 의사 생성 루틴으로 변환하고 이 이벤트 의사 생성 루틴을 기계어 코드 메모리부(10)에 기억시킨다. 기계어 코드 메모리부(10)는 RAM과 같은 반도체 장치 또는 FD나 HD와 같은 대용량 메모리의 기억 매체이며, 기계어로 기술된 대상 프로그램 및 이벤트 의사 생성 루틴을 기억하고 있다.
입력부(11)는 오퍼레이터가 커서를 이벤트 및 상태 전이 매트릭스에서의 상태 등이 표시부(1a)에 표시된 표시 영역으로 움직여 마우스(1b)의 좌측 버튼을 클릭하거나 또는 키보드(1c)의 리턴 키를 누를 때 커서의 위치를 검출하여, 이 경우의 위치 정보를 분석부(12)에 공급한다. 바꾸어 말하면, 제1 실시예에서의 입력부(11)는 이벤트 또는 상태 등에 대한 위치 검출부로서 기능한다.
분석부(12)는 입력부(11)로부터 공급된 위치 정보를 이벤트 코드 또는 상태 코드 등으로 변환한다. 분석부(12)는 또한 디버거(13)을 제어하여 상태 코드에 대응하는 상태를 인서킷 에뮬레이터(14)에서 대상 프로그램의 에뮬레이션을 시작하기 위한 초기 상태로 설정하고, 이벤트 코드에 근거하여 이벤트 의사 생성 정보 메모리부(5)로부터 판독한 이벤트 의사 생성 정보를 참조하고, 디버거(13)를 제어하여 인서킷 에뮬레이터(14)에서 RAM(23, 도 2)의 소정의 메모리 영역에 기억된 이벤트 의사 생성 루틴이 사용하는 정보를 재기입함으로써, 이벤트 코드에 대응하는 이벤트를 의사 생성하게 된다.
디버거(13)는 대상 프로그램의 플로우에 따르면, 인서킷 에뮬레이터(14)를 제어하여 대상 프로그램을 디버그하기 위해, 루틴 단위로 대상 프로그램을 실행한 후에 일시적으로 중지하기 위한 복수의 중지점(break point)을 설정하기 위한 기능, 인서킷 에뮬레이터(14)내의 평가칩(21, 도 2)의 내부 레지스터의 내용을 표시부(1a)에 표시하기 위한 기능, 인서킷 에뮬레이터(14)내의 RAM(23)의 내용을 표시부(1a)에 표시하고 그 내용을 변경하기 위한 기능 및 평가 칩(21)내의 내부 레지스터의 내용을 연속적으로 리스트하기 위한 트레이서의 기능 등을 가지고 있다.
다음, 도 2를 참고하여 인서킷(in-circuit) 에뮬레이터(14) 및 타겟 시스템(16)의 구성에 관한 설명이 주어진다.
인서킷 에뮬레이터(14)는 주로 평가 칩(21), ROM(22), RAM(23) 및 I/O 포트(24)가 포함된다. 대상 프로그램 테스트용 평가 칩(21)은 디버깅용 회로와, 또한 프로그램 프로세스용 CPU 코어와, 디버깅용만의 터미널과 또한 실제 칩의 터미널을 포함하여, 실제 칩과 동일한 기능을 갖는다. ROM(22)은 기계어 코드 메모리부(10)에 기억된 대상 프로그램 및 기계 언어에 기술된 이벤트 의사 생성 루틴을 기억한다. RAM(23)은 평가칩(21)이 대상 프로그램을 실행하며 RAM(23)의 일부가 디버거(13)에 의해 재기입되는 동안 사용된다. I/O 포트(24)는 에뮬레이션 프로브(24)를 통해 타겟 시스템(16)에 연결되며, 평가칩(21)과 타겟 시스템(16)사이에 전송된 다양한 신호가 입력 및 출력된다.
타겟 시스템(16)은 CD 플레이어의 일 예이며, 하우징(31), 키보드(32), 표시 장치(33), 메카니즘(34), 트레이(35), 아날로그 신호 프로세스 회로(36), 디지털 신호 프로세스 회로(37), RAM(38), D/A 변환기(39), 증폭기(40), 스피커(41) 및 드라이버(42 내지 46)을 주로 포함한다. 타겟 시스템(16)은 하우징(31)을 에뮬레이션 프로브(15)의 상부에 제공된 CPU 소켓에 체결함에 의해 에뮬레이션 프로브(15)를 통해 인서킷 에뮬레이터(14)와 연결된다. 키보드(32)는 전력 스위치, 재생 키 및 정지 키와 같은 다양한 스위치 및 키를 포함한다. 표시 장치(33)는 통과 시간, 트랙 번호 및 곡 번호 등을 표시한다.
메카니즘(34)은 레이저 빔을 사용하는 CD의 신호 기록면상에 피팅에 의해 기억된 디지털 정보를 판독하기 위한 광 픽업(47), 일정한 선형 속도로 CD(55)를 회전가능하게 구동하기 위한 스핀들 모터(48), I/O 포트(24)를 통해 평가칩(21)에 의해 제어되는 트레이 개폐 모터(49), 에뮬레이션 프로브(15), 하우징(31), 트레이(35)를 개폐하기 위한 드라이버(45), I/O 포트(24), 에뮬레이션 프로브(15) 및 하우징(31)를 통해 평가 칩(21)에 의해 제어되는 필드 모터(50), CD(55)의 반경 방향으로 광 픽업(47)을 이동시키기 위한 드라이버(46)을 주로 포함한다.
광 픽업(47)은 선정된 파장의 레이저 빔을 CD(55)의 신호 기록면상에 조사하기 위한 레이저 다이오드(51), CD(55)의 신호 기록면상에 형성된 피트로부터의 반사광을 전기 판독 신호로 변환하기 위한 포토 다이오드(52), 레이저 빔의 초점을 CD(55)의 신호 기록면성에 형성된 피트와 정합시키기 위한 초점 코일(53), 및 레이저 빔을 CD(55)의 신호 기록면상에 형성된 피트의 스트링으로 트래킹하기 위한 트래킹 코일(54)을 주로 포함한다.
아날로그 신호 프로세스 회로(36)는 광 픽업(47)으로부터 제공된 판독 신호로부터 초점 에러 신호 및 트래킹 에러 신호를 발생시키며, 초점 에러 신호 및 트래킹 에러 신호에 기초하여 드라이버(43 및 44)를 통해 초점 코일(53) 및 트래킹 코일(54)을 제어하며, 이것이 RF 신호로서 출력되도록 판독 신호를 증폭한다. 디지털 신호 프로세스 회로(37)는 I/O 포트(24), 에뮬레이션 프로브(15) 및 하우징(31)을 통해 에뮬레이션 칩(21)에 의해 제어되며, 아날로그 신호 프로세스 회로(36)로부터 제공된 RF 신호의 파형을 성형함에 의해 디지털 데이터의 EFM(Eight to Fourteen Modulation) 신호를 발생시키며, 변조, 코드 에러 정정 및 RAM(38)을 사용하여 EFM 신호에 대한 보상과 같은 프로세스를 수행하여 EFM 신호를 디지털 오디오 데이터로 변환하며 드라이버(42)를 통해 스핀들 모터(48)를 제어한다. D/A 변환기(39)는 디지터 오디오 신호를 디지터 신호 프로세스 회로(37)로부터 제공된 아날로그 사운드 신호로 변환한다. 증폭기(40)는 D/A 변환기(39)로부터 제공된 아날로그 사운드 신호를 증폭하여 스피커(41)로부터 사운드를 방출한다.
다음은, 상술한 본 발명의 제1 실시예에 따르는 프로그램 개발 장치의 동작에 관해 설명한다. 먼저, CD 플레이어로서 대상 시스템(16)은 피트를 사용하여 CD(55)의 신호 기록면에 기록된 디지털 정보에 기초하여 음악 등을 재생하기 위한 다양한 기능을 포함한다. 제1 실시예에서는 후술할 바와 같이 직렬 프로세스가 대상 프로그램에서 테스트된다고 가정된다.
먼저, 전력이 타겟 시스템(16)에 제공되는 상태에서, 모든 스핀들 모터(48), 트레이 개폐 모터(49) 및 필드 모터(50)는 정지되고, CD(55)가 없는 상태의 트레이(35)는 CD 플레이어로 삽입되는 상태가 되며, 오퍼레이터가 트레이 키를 누를 때 트레이(35)는 꺼내진다. 그후, 오퍼레이터가 트레이(35) 상에서 CD(55)를 누르고 트레이 키를 다시 누른다. 이런 동작으로, 트레이(35)는 CD 플레이어로부터 꺼내지며, CD(55)의 최내주에 기록된 CD(55)의 인덱스인 TOC(Table Of Conent)는 판독되며, 예컨데 모든 곡의 타임 코드는 표시 장치 상에 표시되며, 대기 상태에 있게 된다.
그후, 오퍼레이터는 탐색 키를 두번 연속해서 누르며, 이후 오퍼레이터가 재생 키를 누르면, 제2 곡이 시작된다. 따라서, 오퍼레이터는 제2 곡이 통상 재생되는 것을 확인하고나서 정지 키를 누른다. 이에 의해, 스핀들 모터(48), 트레이 개폐 모터(49) 및 필드 모터(50) 모두는 정지되고, 따라서 제2 곡은 정지되고, CD(55)가 놓여지는 트레이(35)는 CD 플레이어로 삽입되는 상태가 된다.
그 후, 오퍼레이터가 트레이 키를 누를 때, 트레이(35)는 꺼내지며, 따라서 오퍼레이터는 트레이(35)로부터 CD(55)가 제거된후 트레이 키를 다시 누른다. 이런 동작으로, 트레이(35)는 CD 플레이어로 삽입되며 어떠한 CD(55)도 트레이(35)에 놓여지지 않게 되어, TOC는 판독되지 않고, 스핀들 모터(48), 트레이 개폐모터(49) 및 필드 모터(50) 모두는 정지되고, CD(55)가 놓여지지 않는 트레이(35)가 CD 플레이어로 삽입되는 상태, 즉 초기 상태가 된다.
오퍼레이터가 인간-기계 인터페이스(1)로 이루어지는 표시부(1a)의 표시 스크린을 참조하여 마우스(1a) 및 키보드(1c)를 동작시키며, 타겟 시스템(16)의 동작을 기초로 하여 도 3에 도시된 상태 전이 매트릭스를 생성시키는데 요구되는 정보(예컨데, 상태, 이벤트, 동작 및 전이 포인트)를 입력한다. 이런 동작으로, 상태 전이 매트릭스 에디터(2)는 도 3에 도시된 상태 전이 매트릭스를 생성시키며, 인간-기계 인터페이스(1)로 이루어지는 표시부(1a)상에 상태 전이 매트릭스를 표시하며, 상태 전이 매트릭스 메모리부(4)의 선정된 메모리 영역에서 상태 전이 매트릭스에 관한 정보를 기억한다.
도 3에서, T 모터 및 F 모터는 도 2의 트레이 개폐 모터(49) 및 필드 모터(50)에 대응하며, 심볼 S1 및 S2는 트레이(35)가 완전히 꺼내지는 것을 검출하기 위한 센서(도 2에 도시 안됨) 및 트레이(35)가 CD 플레이어로부터 완전히 꺼내지는 것을 검출하기 위한 센서(도 2에 도시 안됨)에 각각 대응한다. 또한, 트레이 개폐 모터(49)가 시계 방향으로 구동될 때 트레이(35)가 꺼내지며, 트레이 개폐 모터(49)가 반시계 방향으로 구동될 때 트레이(35)가 CD 플레이어로 삽입된다고 가정한다.
도 3에서 가장 높은 행에 있어서, "정지"는 스핀들 모터(48), 트레이 개폐 모터(49), 및 필드 모터(50)가 정지되며 트레이(35)가 CD 플레이어에 삽입되거나 또는 개폐 모터(49)가 시계 방향으로 구동되는 상태(이하, "상태 1"로 언급함)를나타내며, "트레이 개방"은 스핀들 모터(48), 트레이 개폐 모터(49), 및 필드 모터(50)가 정지되며 트레이(35)가 CD 플레이어로부터 꺼내지거나 또는 개폐 모터(49)가 반시계 방향으로 구동되는 상태(이하, "상태 2"로 언급함)를 나타내며, "TOC 판독"은 트레이(35)가 CD 플레이로로 삽입되며 트레이 개폐 모터(49)가 정지되며 트레이 개폐 모터(49) 및 필드 모터(50) 모두가 구동되며 CD(55)의 최내주에 기록된 TOC가 판독되는 상태(이하, "상태 3"으로 언급함)를 나타내며, "타임 코드 표시"는 트레이(35)가 CD 플레이어에 삽입되며 스핀들 모터(48), 트레이 개폐 모터(49) 및 필드 모터(50) 모두가 정지되며 모든 곡의 시간 기록이 표시 장치(33)상에 표시되는 상태(이하, "상태 4"로 언급함)를 나타낸다.
마찬가지로, 도 3의 최고 열에서, "제1 곡으로 이동"(moving to first piece of music)은, 트레이(35)가 CD 플레이어 안으로 유인되고, 트레이 개폐 모터(49)가 정지되고, 스핀들 모터(48) 및 필드 모터(50)가 구동되고 제1 곡의 상단이 탐색되는 상태(이하, "상태 5"라 함)를 나타내고, "제2 곡으로 이동"은, 트레이(35)가 CD 플레이어 안으로 유인되고, 트레이 개폐 모터(49)가 정지되고, 스핀들 모터(48) 및 필드 모터(50)가 구동되고 제2 곡의 상단이 탐색되는 상태(이하, "상태 6"이라 함)를 나타내고, "재생"은, 트레이(35)가 CD 플레이어 안으로 유인되고, 트레이 개폐 모터(49)가 정지되고, 스핀들 모터(48) 및 필드 모터(50)가 구동되고 제2 곡이 재생되는 상태(이하, "상태 7"이라 함)를 나타낸다.
또한, 도 3의 가장 좌측의 난에서, "트레이 키 입력"은, 사용자가 트레이(35)의 개폐를 지시하는 트레이 키를 누름으로써 그 트레이 키에 대응하는 신호가 입력되는 이벤트(이하, "이벤트 1"이라 함)를 나타내고, "S1 : 오프 →온"은, 트레이(35)가 완전히 밖으로 유인됨으로써 대응하는 센서의 검출 신호가 오프에서 온으로 변화되는 이벤트(이하, "이벤트 2"라 함)를 나타내고, "S2 : 오프 →온"은, 트레이(35)가 완전히 CD 플레이어 안으로 유인됨으로써 대응하는 센서의 검출 신호가 오프에서 온으로 변화되는 이벤트(이하, "이벤트 3"이라 함)를 나타내고, "TOC 입력 : OK"는, CD(55)가 CD 플레이어 내에 존재하기 때문에 최내주에 기록된 TOC의 판독이 디지털 신호 프로세스 회로(37)에 의해 정상적으로 마무리되는 것을 나타내는 통지가 공급되는 이벤트(이하, "이벤트 4"라 함)를 나타내고, "TOC 입력 : NG"는, CD(55)가 CD 플레이어 내에 존재하기 때문에 최내주에 기록된 TOC의 판독이 디지털 신호 프로세스 회로(37)에 의해 비정상적으로 마무리되는 것을 나타내는 통지가 공급되는 이벤트(이하, "이벤트 5"라 함)를 나타낸다.
마찬가지로, 도 3의 가장 좌측의 난에서, "탐색 키 입력"은, 다음 곡의 상단의 탐색을 지시하는 탐색 키를 누름으로써 탐색 키에 대응하는 신호가 입력되는 이벤트(이하, "이벤트 6"이라 함)를 나타내고, "재생 키 입력"은, 사용자가 곡의 재생을 지시하는 재생 키를 누름으로써 재생 키에 대응하는 신호가 입력되는 이벤트(이하, "이벤트 7"이라 함)를 나타내고, "정지 키 입력"은, 재생중인 곡의 정지를 지시하는 정지 키를 누름으로써 정지 키에 대응하는 신호가 입력되는 이벤트(이하, "이벤트 8"이라 함)를 나타낸다.
"이벤트 1" 및 "이벤트 6" 내지 "이벤트 8"은, 다른 작업 또는 다른 장치로부터 시작 메시지가 탐색되는 것을 나타내는 메시지형 이벤트라 하고, "이벤트 2" 및 "이벤트 3"은, 입력 및 출력의 가변 및 변화가 판독되는 것을 나타내는 플래그형 이벤트라 하고, "이벤트 4" 및 "이벤트 5"는, 외부로부터 인터럽트가 탐색되는 것을 나타내는 인터럽트형 이벤트라 한다.
다음으로, 도 3의 상태 전이 매트릭스에서, 이벤트와 상태의 교차부(셀), 예를 들면, "상태 1"과 "이벤트 2"의 교차부가 셀(1, 2)에 의해 표시되는 것으로 가정할 때, 각 셀의 기술은 다음 내용을 나타낸다. 먼저, 셀(1, 1)에서, "T 모터 : 시계방향 온"은, 사용자가 트레이 키를 누름으로써 트레이 키에 대응하는 신호가 입력되는 "이벤트 1"의 발생에 따라서 트레이(35)가 CD 플레이어 안으로 유인되고 스핀들 모터(48), 트레이 개폐 모터(49) 및 필드 모터(50) 모두가 정지되는 "상태 1"에서 트레이(35)를 밖으로 유인하기 위하여 트레이 개폐 모터(49)를 구동하기 위한 동작을 나타낸다. 즉, "상태 1"이 유지되는 것을 나타낸다.
셀(1, 2)에서, "T 모터 : 오프"는 트레이(35)를 완전히 밖으로 유인함으로써 센서에 대응하는 검출 신호가 오프에서 온으로 변화되는 "이벤트 2"의 발생에 따라서 트레이 개폐 모터(49)가 시계방향으로 구동되는 "상태 1"에서 트레이(35)를 밖으로 유인하는 것을 마무리하기 위하여 트레이 개폐 모터(49)의 구동을 정지시키기 위한 동작을 나타낸다. 또한, 셀(1, 2)에서, "=> 트레이 개방"은 전이 목적지가 "상태 2"임을 나타낸다.
셀(1, 3)에서, "/"은 아무런 동작이 실행되지 않고 상태 전이도 이루어지지 않음을 나타낸다. "/"의 의미는 다른 셀들에서와 유사하므로, 이에 대한 설명을생략한다.
셀(2, 1)에서, "T 모터 : 반시계방향 온"은 사용자가 트레이 키를 누름으로써 트레이 키에 대응하는 신호가 입력되는 "이벤트 1"의 발생에 따라서 트레이(35)가 밖으로 유인되고 스핀들 모터(48), 트레이 개폐 모터(49) 및 필드 모터(50) 모두가 정지되는 "상태 2"에서 트레이(35)를 CD 플레이어 안으로 유인하기 위하여 트레이 개폐 모터(49)를 반시계방향으로 구동하기 위한 동작을 나타낸다. 또한, 셀(2, 1)에서, "=>-"은 현 상태, 즉 상태 2가 유지되는 것을 나타낸다.
셀(2, 3)에서, "T 모터 : 오프, F 모터 : 온, TOC 판독"은, 트레이(35)를 안으로 유인하는 것을 마무리하기 위하여 그리고 트레이(35)를 완전히 CD 플레이어 안으로 유인함으로써 대응하는 센서의 검출 신호가 오프에서 온으로 변화되는 "이벤트 3"의 발생에 따라서 트레이 개폐 모터(49)가 반시계방향으로 구동되는 "상태 2"에서 CD(55)의 가장 안쪽 원주에 기록된 TOC를 판독하기 위하여 TOC를 디지털 신호 프로세스 회로(37)로 판독할 것을 요구하기 위한 그리고 트레이 개폐 모터(49)가 정지되는 동안에 필드 모터(50)를 구동하기 위한 동작을 나타낸다. 또한, 셀(2, 3)에서, "=>TOC 판독"은, 전이 목적지가 "상태 3"임을 나타낸다.
셀(2, 7)에서, "X"는 현 단계에서 아무런 상태 전이가 이루어지지 않고 아무런 동작도 실행되지 않거나 대상 프로그램이 완료될 때 "상태 2" 및 "상태 7"의 생성에 따라서 임의의 동작이 실행되는 것을 나타낸다. "X"의 의미는 다른 셀들에서와 유사하므로, 이에 대한 설명을 생략한다.
셀(3, 4)에서, "F 모터 : 오프, 타임 코드 표시 장치"는, CD 플레이어 내에 CD(55)가 존재하기 때문에 가장 안쪽 원주에 기록된 TOC가 완전히 그리고 정상적으로 판독되는 것을 나타내는 통지가 공급되는 "이벤트 4"의 발생에 따라서 트레이(35)가 CD 플레이어 안으로 유인되고, 트레이 개폐 모터(49)가 정지되고, 스핀들 모터(48) 및 필드 모터(50) 양쪽 모두 구동되고 CD(55)의 가장 안쪽 원주에 기록된 TOC가 판독되는 "상태 3"에서 표시 장치(33) 상에 타임 코드을 표시하기 위하여 디지털 신호 프로세스 회로(37)로부터 공급되는 모든 곡의 타임 코드을 취득하기 위한 그리고 필드 모터(50)의 구동을 정지시키기 위한 동작을 나타낸다. 또한, 셀(3, 4)에서, "=>타임 코드 표시 장치"는 전이 목적지가 "상태 4"임을 나타낸다.
셀 (3, 5)에서, "F 모터 : 오프"은, CD 플레이어 내로 트레이(35)가 삽입되고, 트레이 개폐 모터(49)가 정지되고, 스핀들 모터(48)와 필드 모터(50) 모두가 구동되고, CD 플레이어 내에 CD(55)가 존재하지 않기 때문에 최내주에 기록된 TOC의 판독이 비정상적이라는 것을 나타내는 통지가 공급되는 "이벤트 5"의 생성에 따라 CD(55)의 최내주에 기록된 TOC가 판독되는 "상태 3"에서 필드 모터(50) 구동을 정지시키기 위한 동작을 나타낸다. 또한, 셀(3, 5)에서, "=> 정지"는 변화 종점이 "상태 1"인 것을 나타낸다.
셀(4, 6)에서, "F 모터 : 온, 제1곡 탐색 프로세스"는, CD 플레이어 내로 트레이(35)가 삽입되고, 스핀들 모터(48), 트레이 개폐 모터(49) 및 필드 모터(50) 모두가 정지되고, 탐색 키에 대응하는 신호가 입력되는 "이벤트 6"의 생성에 따라 표시 장치(33) 상에 모든 곡의 시간 기록이 표시되는 "상태 4"에서 제1곡의 첫머리를 검색하기 위해, 필드 모터(50)를 구동하고 디지털 신호 처리 회로(37)에 제1곡의 첫머리의 탐색 프로세스를 요구하는 동작을 나타낸다. 또한, 셀(4, 6)에서, "=> 제1곡으로 이동"은 변화 종점이 "상태 5"인 것을 나타낸다.
셀(5, 6)에서, "제2곡 탐색 프로세스"는, CD 플레이어 내로 트레이(35)가 삽입되고, 트레이 개폐 모터(49)가 정지되고, 스핀들 모터(48)와 필드 모터(50) 모두가 구동되고, 사용자가 탐색 키를 누름으로써 탐색 키에 대응하는 신호가 입력되는 "이벤트 6"의 생성에 따라 제1 곡의 첫머리가 탐색되는 "상태 5"에서 제2 곡의 첫머리를 검색하기 위해, 디지털 신호 처리 회로(37)에 제2곡의 첫머리의 탐색 프로세스를 요구하는 동작을 나타낸다. 또한, 셀(5 6)에서, "=> 제2 곡으로 이동"은 변화 종점이 "상태 6"인 것을 나타낸다.
셀(6, 7)에서, "재생 프로세스"는, CD 플레이어 내로 트레이(35)가 삽입되고, 트레이 개폐 모터(49)가 정지되고, 스핀들 모터(48)와 필드 모터(50) 모두가 구동되고, 사용자가 재생 키를 누름으로써 재생 키에 대응하는 신호가 입력되는 "이벤트 7"의 생성에 따라 제2 곡이 검색되는 "상태 6"에서 제2 곡을 재생하기 위해, 디지털 처리 회로(37)에 제2 곡의 재생 프로세스를 요구하는 동작을 나타낸다. 또한, 셀(6, 7)에서, "=> 재생"은 변화 종점이 "상태 7"인 것을 나타낸다.
셀(7, 8)에서, "F 모터 : 오프, 정지 프로세스"는, CD 플레이어 내로 트레이(35)가 삽입되고, 트레이 개폐 모터(49)가 정지되고, 스핀들 모터(48)와 필드 모터(50) 모두가 구동되고, 사용자가 정지 키를 누름으로써 정지 키에 대응하는 신호가 입력되는 "이벤트 8"의 생성에 따라 제2 곡이 재생되는 "상태 7"에서 제2곡의 재생을 정지시키기 위해, 필드 모터(50)의 구동을 정지시키고 디지털 처리 회로(37)에 제2 곡의 재생 정지 프로세스를 요구하는 동작을 나타낸다. 또한, 셀(7, 8)에서, "=> 정지"는 변화 종점이 "상태 1"인 것을 나타낸다.
다음에, 오퍼레이터는, 타겟 시스템(16)의 키보드를 형성하는 탐색 키 및 트레이 키를 실제로 조작하는 것이 아니라, 이벤트를 의사 생성시키기 위해 키보드(1c) 및 마우스(1b)의 커서 키로 표시부(1a) 상에 표시된 상태 전이 매트릭스의 표시 영역 상에서 커서를 이동시킴으로써, 이벤트의 입력을 명령하며, 인서킷 에뮬레이터(14)로 각 이벤트에 대한 에뮬레이션을 실행하기 위해, 인간-기계 인터페이스(1)를 이루는 표시부(1a) 상에 표시된 상태 전이 매트릭스(도 3)를 참조하면서 키보드(1c)및 마우스(1b)를 조작하고, 각 이벤트를 의사 생성시키는(실질적으로 각 이벤트 등 중 한 종류에 따라 이벤트를 생성하는 기술)데 필요한 정보를 입력한다. 여러 종류의 이벤트에 관해서는, 상태 전이 매트릭스들이 겹쳐질 때(layered) 상태 전이 매트릭스의 한 셀에서 생성된 내부 이벤트가 다른 상태 전이 매트릭스로 통지되는 인 메일형(in-mail type)과, 전술한 메시지형, 플래그형 및 인터럽트형에 부가하여 한 그룹의 프로세스를 실행하기 위한 함수가 호출되는 함수 호출형(function-call type)이 있다.
이러한 조작과 함께, 인간-기계 인터페이스(1)를 통한 의사 생성 입력(각 이벤트에 따라 이벤트를 생성하는 기술)에 필요한 정보에 기초한 이벤트 의사 생성 편집기(3)는, 상태 전이 매트릭스 메모리부(4)에 저장된 상태 전이 매트릭스에 관한 정보를 참조하며, 이벤트 의사 생성 정보 메모리부(5)에 이벤트 의사 생성 정보를 저장하기 위해 의사 생성될 이벤트에 관한 정보인 이벤트 의사 생성 정보를 생성한다.
생성기(6)는, 상태 전이 매트릭스 메모리부(5)로부터 상태 전이 매트릭스에 관한 정보를 판독하고 이벤트 의사 생성 정보 메모리부(5)로부터 이벤트 의사 생성 정보를 판독하며, 이들 정보에 기초하여 C 언어 등으로 작성된 소스 프로그램을 자동적으로 생성하고 이 소스 프로그램을 프로그램 메모리부(7)에 저장하며, 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 자동적으로 생성하고 이 이벤트 의사 생성 루틴을 이벤트 의사 생성 루틴 메모리부(8)에 저장한다. 소스 프로그램은, 타겟 시스템(16)의 메인 프로세스들을 생성하기 위한 메인 루틴과, 키 조작에 따라 또는 CPU 또는 반도체 장치 등과 같은 다른 요소들로부터 전송된 다양한 데이터 및 신호들에 기초하여 타겟 시스템(16) 내의 키, 스위치 등을 조작함으로써 타겟 시스템(16)으로부터 공급되는 신호에 기초하여 어떤 키 또는 스위치가 조작되는가를 메인 루틴에 통지하기 위한, 즉, 이벤트를 정상적으로 생성하기 위한 이벤트 정상 생성 루틴을 포함한다.
도 4 및 5는, C 언어로 작성된 메인 루틴 부분과, 이벤트 의사 생성 루틴 부분을 나타낸다. 도 4에 도시된 메인 루틴 부분에서, 제1 라인은, 실시간 OS의 시스템 호출을 나타내며, 이벤트 정상 생성 루틴 또는 이벤트 의사 생성 루틴으로부터 메시지 박스 KEY_MSG까지 메시지가 전송될 때까지 프로세스가 대기 상태에 있고 메시지가 수신될 때 변수 ReceiveEvent에 메시지 박스 KEY_MSG의 내용이 저장되는 것을 나타낸다. 부가적으로, 제2 라인 내지 제5 라인은, 사용자가 재생 키를 누름에 의한, 변수 ReceiveEvent에 저장된 콘텐츠가 재생 키에 대응하는 신호의 입력을 나타내는 상수 PLAY_KEY과 같을 때의 곡의 재생 프로세스를 나타낸다. 또한, 제6 내지 제9 라인은, 사용자가 재생 키를 누름에 의한, 변수 ReceiveEvent에 저장된 콘텐츠가 재생 키에 대응하는 신호의 입력을 나타내는 상수 STOP_KEY과 같을 때의 곡 재생의 정지 프로세스를 나타낸다.
또한, 이벤트 의사 생성 루틴 부분에서, 제1 내지 제5 라인은, 변수 FakeEvent에 저장된 내용이 사용자가 재생 키를 누름으로써 재생 키에 대응하는 신호가 입력되는 이벤트와 유사한 이벤트가 의사 생성되는 것을 나타내는 상수 EVENT_KEY_PLAY의 값과 동일할 때 상수 PLAY_KEY가 변수 SendEvent로 대체되고 이 변수 SendEvent가 실시간 OS의 시스템 호출에 의해 메시지 박스 KEY_MSG로 전송되는 것을 나타낸다. 또한, 제6 내지 제10 라인은, 변수 FakeEvent에 저장된 상수가 사용자가 정지 키를 누름으로써 정지 키에 대응하는 신호가 입력되는 이벤트와 유사한 이벤트가 의사 생성되는 것을 나타내는 상수 EVENT_KEY_STOP의 값과 동일할 때 상수 STOP_KEY가 변수 SendEvent로 대체되고 이 변수 SendEvent가 실시간 OS의 시스템 호출에 의해 메시지 박스 KEY_MSG로 전송되는 것을 나타낸다.
또한, 이벤트 정상 생성 루틴은, 하우징(31), 에뮬레이션 프로브(15) 및 I/O 포트(24)를 통해 키보드(32) 등으로부터 전송된 재생 키를 누름으로써 재생 키에 대응하는 신호 등에 기초하여, 신호에 대응하는 변수 SendEvent가 실시간 OS의 시스템 호출에 의해 메시지 박스 KEY_MSG에 전송된다는 점을 제외하고는, 기본 함수에 관한 이벤트 의사 생성 루틴과 대략 유사하다.
전술한 바와 같이, 소스 프로그램 및 의사 생성 루틴이 C 언어로 작성되며 프로그램 메모리부(7) 및 이벤트 의사 생성 루틴 메모리부(8)에 저장될 때, 컴파일러(9)는, 프로그램 메모리부(7)로부터 C 언어로 작성된 소스 프로그램을 판독하고, 이 소스 프로그램을 대상 프로그램으로 컴파일하고 이를 기계어 코드 메모리부(10)에 저장한다.
또한, 컴파일러(9)는, 이벤트 의사 생성 루틴 메모리부(8)로부터 C 언어로 작성된 이벤트 의사 생성 루틴을 판독하고, 이 판독된 이벤트 의사 생성 루틴을 대상 프로그램과 동일하게 기계어로 작성된 이벤트 의사 생성 루틴으로 컴파일하고 이를 기계어 코드 메모리부(10)에 저장한다. 기계어로 작성되었으며 기계어 코드 메모리부(10)에 저장된 이벤트 의사 생성 루틴 및 의사 대상 프로그램은 ROM 라이터(ROM writer)에 의해 ROM에 기입되고, ROM은 인서킷 에뮬레이터(14) 내에 ROM(22)으로서 인스톨된다.
인서킷 에뮬레이터(14) 내에서 기계어로 작성된 이벤트 의사 생성 루틴 및 대상 프로그램이 인스톨되는 ROM(22) 단계에서, 오퍼레이터가 마우스(1b) 및 키보드(1c)가 인간-기계 인터페이스(1)가 되도록 조작함으로써 프로그램 개발 장치를 에뮬레이션 모드 내에서 설정할 때, 표시부(1a) 상에 도 6에 도시된 에뮬레이션 모드 스크린이 표시될 수 있다.
이하로, 입력부(11), 분석부(12), 디버거(13) 및 인서킷 에뮬레이터(14)의 동작과, 오퍼레이터 의한 조작이 설명될 것이다.
우선, 오퍼레이터는 도 6에 도시된 에뮬레이션 모드 스크린의 우측 상부에나타낸 에뮬레이션을 지시하는 "시작" 영역으로 마우스(1b) 또는 키보드(1c)를 이동시키고 좌측 버튼을 클릭하거나 리턴 키를 눌러, 에뮬레이션을 시작한다.
다음에, 오퍼레이터는 시작될 에뮬레이션의 초기 상태로서 선택된 상태 (이 경우, 트레이(35)가 CD 플레이어 내로 삽입되고, 트레이 개폐 모터(49)가 정지되며, 스핀들 모터(48)와 필드 모터(50)가 모두 구동되고 제2 곡의 상단이 탐색되는 "상태 6", 도 6에서의 "제2 곡으로의 이동")의 표시 영역으로 마우스(1b) 또는 키보드(1c)를 이동시키고 좌측 버튼을 클릭하거나 리턴 키를 누른다. 이러한 조작에 따라, 입력부(11)는 오퍼레이터에 의해 선택된 상태의 표시 영역 내의 커서 위치를 검출하여 위치 정보를 분석부(12)로 공급하고, 분석부(12)는 입력부(11)로부터 공급된 위치 정보를 위치에 대응하는 상태 코드, 즉 이 경우 "상태 6"의 코드로 변환하고 나서, 디버거(13)를 제어함과 동시에 상태 코드 (이 경우 상태 6, 도 6의 "제2 곡으로의 이동")를 인서킷 에뮬레이터(14)에 설정한다.
이러한 조작에 따라, 디버거(13)는 인서킷 에뮬레이터(14)를 제어하여 초기 상태로서 설정된 상태, 즉 이 경우, 트레이(35)가 CD 플레이어 내로 삽입되고, 트레이 개폐 모터(49)가 정지되며, 스핀들 모터(48)와 필드 모터(50)가 모두 구동되고 제2 곡의 상단이 탐색되는 "상태 6"으로부터 일련의 프로세스를 실행하기 시작한다. 이 경우, 메인 루틴 및 이벤트 정상 생성 루틴과 함께 ROM(22)에 기억된 이벤트 의사 생성 루틴이 타이머 인터럽션 등에 의해 주기적으로 실행된다.
그 후, 오퍼레이터가 마우스(1b) 또는 키보드(1c)의 커서 키로 커서를 눌려지는 재생 키에 대응하는 신호 입력(도 6에서의 "재생 키 입력")의 이벤트의 표시영역으로 이동시켜 좌측 버튼을 클릭하거나 리턴 키를 누른 경우, 입력부(11)는 "이벤트 7"의 표시 영역 내의 커서의 위치를 검출하여 위치 정보를 분석부(12)로 공급한다. 따라서, 분석부(12)는 입력부(11)로부터 공급된 위치 정보를 위치에 대응하는 "이벤트 7"의 이벤트 코드로 변환하고, 이벤트 코드에 기초하여, 이벤트 의사 생성 정보 메모리부(5)로부터 판독된 이벤트 의사 생성 정보를 참조하면서, 디버거(13)를 제어하고, 인서킷 에뮬레이터(14) 내의 RAM(23)의 미리 정해진 영역 내에 기억된 이벤트 의사 생성 루틴에 의해 사용된 정보를 재기입하며, 변수 FakeEvent의 값을 이 경우 "이벤트 7"의 이벤트 코드에 대응하는 상수인 상수 EVENT_KEY_PLAY와 동일한 값으로 재기입한다.
이러한 조작에 따라, 도 5의 제1 라인 내지 제5 라인에 도시된 바와 같이, 이벤트 의사 생성 루틴이 변수 FakeEvent에 기억된 내용이 상수 EVENT_KEY_PLAY와 동일한 값인지를 판정하기 때문에, 상수 PLAY_KEY는 변수 SendEvent에 할당되고 나서 변수 SendEvent가 실시간 OS의 시스템 호출에 의해 메시지 박스 KEY_MSG로 전송된다. 즉, 이벤트 의사 생성 루틴은 "이벤트 7"고 유사한 이벤트를 생성시킨다.
따라서, 도 4의 제1 라인 내지 제4 라인에 도시된 바와 같이, 메인 루틴이 메시지 박스 KEY_MSG 내의 이벤트 의사 생성 루틴으로부터 메시지를 수신하면, 우선 메시지 박스 KEY_MSG의 내용을 변수 ReceiveEvent에 저장하고, ReceiveEvent의 내용이 오퍼레이터가 재생 키를 눌러 재생 키에 대응하는 신호의 입력을 표시하는 상수 PLAY_KEY와 동일한 값인지를 판정하여, 곡의 재생 프로세스가 실행된다. 즉, 메인 루틴은 제2 곡을 재생하기 위해 디지털 신호 프로세스 회로(37)에 제2 곡의재생 프로세스를 요구한다.
또한, 디버거(13) 및 인서킷 에뮬레이터(14)의 다음 동작은 종래의 디버거 및 종래의 인서킷 에뮬레이터와 유사하므로, 그에 대한 설명은 생략한다.
상술한 바와 같이, 제1 실시예에 따르면, 오퍼레이터가 단순히 마우스(1b)의 커서 또는 키보드(1c)의 커서 키를 도 6에 도시된 에뮬레이션 모드 스크린의 좌측에서 표시된 상태 전이 매트릭스 내의 복수의 이벤트들 중에서 원하는 이벤트의 표시 영역으로 이동시키고 좌측 버튼을 클릭하거나 리턴 키를 누르면, 이벤트 의사 생성 루틴이 이 이벤트와 동일한 이벤트를 의사 생성시키기 때문에, 복수의 스위치 및 복수의 키를 순서대로 복수회 조작하여 먼저 실행되는 프로세스에도 불구하고, 타겟 시스템(16)의 하드웨어를 이용하지 않고서 임의의 순서에 있는 타겟 시스템(16)의 임의 프로세스를 간단하면서 단시간에 테스트할 수 있다. 그 결과, 타겟 시스템(16)의 개발 기간을 단축할 수 있다.
또한, 도 1 및 도 2에서, 인서킷 에뮬레이터(14)가 에뮬레이션 프로브(15)를 통해 타겟 시스템(16)에 접속되지만, 이 구성은 설명의 편의상이거나 도 3에 도시된 상태 전이 매트릭스와 같고, 따라서 타겟 시스템(16)을 준비할 필요가 없다.
반면에, 타겟 시스템(16)의 스위치 또는 키들을 실제로 조작하는 데 필요한 종래의 프로그램 검사 장치를 이용하여 제2 곡의 재생 프로세스를 에뮬레이션하기 위해서, 오퍼레이터는, 전원이 턴온되고 CD(55)가 입력되지 않은 트레이(35)가 삽입된 상태에서의 타겟 시스템(16)에서, 재차 트레이 키를 누르고, 2회 연속하여 탐색 키를 누른 다음, 재생 키를 누를 필요가 있다. 따라서, 귀찮고 장시간이 걸린다. 상술한 일련의 프로세스가 복수회 반복되면, 보다 귀찮고 보다 많은 시간이 걸리고, 내구성을 고려하지 않은 원형 하드웨어를 이용하면, 스위치 또는 버튼이 쉽게 파괴된다. 그 결과, 대상 프로그램의 테스트를 방해할 가능성이 있다. 또한, 재생 프로세스가 실행될 때까지 트레이(35)에 반입/반출하기 위한 프로세스 및 탐색 키의 2회 조작에 기초하여 제2 곡의 상단을 탐색하기 위한 프로세스 등의 모든 프로세스를 확인한 후에 제2 곡의 재생 프로세스만이 테스트될 수 있기 때문에, 테스트의 유연성이 결핍된다.
제2 실시예
다음으로, 본 발명의 제2 실시예가 설명될 것이다.
도 7은 본 발명의 제2 실시예에 따른 프로그램 개발 장치의 구성을 나타낸 블럭도이다. 도 7에서, 도 1에서와 동일한 부분(구성 요소)에는 동일한 부호가 부여되고 이들에 대한 설명은 생략될 것이다. 도 7의 프로그램 개발 장치에는 도 1의 입력부(11)와 분석부(12) 대신에 입력부(61)와 분석부(62)가 제공되고 스크립트 생성부(63), 스크립트 메모리부(64), 스크립트 에디터(65) 및 스크립트 분석부(66)가 추가 제공된다.
도 1에 나타난 입력부(11)의 기능에 부가하여 입력부(61)에는 오퍼레이터가 마우스(1b) 또는 키보드(1c)로 선택한 이벤트의 순서와 각 이벤트의 입력 타이밍(이하 입력 이벤트 로그라 명명함)을 내부 메모리에 기억하고나서 스크립트 생성부(63)에 입력 이벤트 로그를 공급하는 기능이 제공된다. 스크립트 생성부(63)는 입력부(61)로부터 공급된 입력 로그에 기초하여, 스크립트 파일을 생성하고 이를 스크립트 메모리부(64)에 기억시킨다. 스크립트 파일은 각 순서를 생성하는 순서 및 발생 타이밍, 타겟 시스템(16)의 소자들이 명세서 등에 따라 동작해야 하는 타이밍이 상태 전이 매트릭스로 설계된 타겟 시스템(16)의 상태 전이 매트릭스에 기초한 에뮬레이션을 실행하기 위해 기술되는 타이밍 챠트 포맷, 텍스트 포맷 또는 메세지 시퀀스 챠트 포맷의 파일이다. 스크립트 메모리부(64)는 반도체, 예컨대 RAM 또는 큰 기억 용량의 기억 매체, 예컨대 FD 또는 HD이고 스크립트 파일을 기억한다.
스크립트 에디터(65)는 인간-기계 인터페이스(1)를 이용하여 입력되는 에뮬레이션을 실행하기 위해 발생되어야 하는 이벤트, 이 이벤트의 발생 타이밍 또는 발생 빈도에 기초하여, 스크립트 메모리부(64)로부터 판독된 스크립트 파일을 편집하고나서 이를 스크립트 메모리부(64)에 다시 저장한다. 스크립트 분석부(66)는 표시부(1a)에 표시된 상태 전이 매트릭스의 대응 표시 영역내에 있는 스크립트 메모리부(64)로부터 판독된 스크립트 파일에 기술된 각 이벤트의 위치 정보를 분석부(62)에 스크립트 파일에 기술된 순서 및 타이밍에 순차적으로 공급한다. 분석부(62)에는 도 1에 나타난 분석부의 기능 이외에, 스크립트 분석부(66)로부터 공급된 위치 정보를 위치에 대응하는 이벤트 코드로 변환하고, 이 이벤트 코드에 기초하여 이벤트 의사 생성 정보 메모리부(5)로부터 판독된 이벤트 의사 생성 정보를 참조하고, 디버거(13)를 제어하고, RAM(23)(도 2)의 선정된 메모리 영역에 기억된 이벤트 의사 생성 루틴에 의해 사용된 정보를 회로내 에뮬레이터(14)로 재기입함으로써 이벤트 코드에 대응하는 이벤트를 의사 생성하는 기능이 제공된다.
다음으로, 프로그램 개발 장치의 동작 중에서 제1 실시예와 다른 구성의 동작을 설명할 것이다. 우선, 오퍼레이터는 프로그램 개발 장치를 에뮬레이션 모드로 설정하고, "상태 6"이 초기 상태로 설정되는 단계에서, 마우스(1b) 또는 키보드(1c)의 커서 키로 도 6에 나타난 에뮬레이션 모드의 좌측에 표시된 상태 전이 매트릭스의 복수의 이벤트들 중에서 재생 키를 누름으로써 재생 키에 대응하는 신호가 입력되는 "이벤트 7"의 표시 영역에 커서를 이동시켜서 마우스의 좌측 버튼을 클릭하거나 리턴 키를 누른다.
이러한 동작을 행함으로써, 입력부(61)는 "이벤트 7"의 표시 영역에 있는 커서의 위치를 검출하고, 분석부(62)에 위치 정보를 공급하고, 이벤트 7의 타이밍과 입력 타이밍인 입력 이벤트 로그를 내부 메모리에 임시 기억하고나서, 입력 이벤트 로그를 스크립트 생성부(63)에 공급한다. 따라서, 스크립트 생성부(63)는 입력부(61)로부터 공급된 "이벤트 7"의 타이밍과 입력 타이밍인 입력 이벤트 로그에 기초하여, "이벤트 7"을 생성하기 위한 스크립트 파일을 생성하고 이 스크립트 파일을 스크립트 메모리부(64)에 저장한다.
따라서, 프로그램 개발 장치가 연속적으로 동일 에뮬레이션을 실행하도록 제작될 때, 오퍼레이터만이 스크립트 분석부(66)가 스크립트 메모리부(64)로부터 스크립트 파일을 판독할 수 있게 하고 에뮬레이션 모드 스크린의 좌측에 표시된 상태 전이 매트릭스의 "이벤트 7"의 표시 영역에 커서를 이동시킴없이 스크립트 파일에 기술된 발생 타이밍에 표시부(1a) 상에 표시된 상태 전이 매트릭스의 대응 표시 영역에 스크립트 파일에 기술된 "이벤트 7"의 위치 정보를 공급한다. 그 결과, 분석부(62)가 위치 정보를 위치에 대응하는 이벤트 코드로 변환하고, 이 이벤트 코드에 기초하여 이벤트 의사 생성 정보 메모리부(5)로부퍼 판독된 이벤트 의사 생성 정보를 참조하고, 디버그(13)를 제어하고 RAM(23)의 선정된 기억 영역에 기억된 이벤트 의사 생성 루틴에 의해 사용된 정보를 인서킷(14)으로 재기입함으로써 이벤트 코드에 대응하는 "이벤트 7"이 의사 생성된다.
또한, 프로그램 개발 장치가 "이벤트 7"을 1백회 생성하기 위한 에뮬레이션을 실행하도록 제조될 때, 오퍼레이터는 우선 인간-기계 인터페이스(1) 내의 표시부(1a) 상에 표시될 것을 참조하면서 마우스(1b) 또는 키보드(1c)를 조작하고, 스크립트 에디터(65)가 스크립트 메모리부(64)로부터 스크립트 파일을 판독하게 하여 표시부(1a) 상에 스크립트 파일을 표시하게 하고, 1에서 1백회까지 발생 빈도를 변경한다. 이러한 동작을 행함으로써, 스크립트 에디터(65)는 스크립트 메모리부(64)로부터 판독된 스크립트 파일의 "이벤트 7"의 발생 빈도를 1에서 1백회까지 변경하고나서 다시 스크립트 파일을 스크립트 메모리부(64)에 저장한다.
다음으로, 오퍼레이터는 스크립트 분석부(66)로 하여금 스크립트 메모리부(64)로부터 새로운 스크립트 파일을 판독하게 하고 표시부(1a) 상에 표시된 상태 전이 매트릭스의 대응 표시 영역내의 스크립트 파일에 기술된 "이벤트 7"의 위치 정보를 스크립트 파일에 기술된 발생 타이밍과 발생 빈도(본 경우에는 1백회)로 공급하도록 명령한다. 이러한 동작을 행함으로써, 분석부(62)가 스크립트 분석부(66)로부터 공급된 위치 정보를 이벤트 코드에 기초하여 이벤트 코드에 해당하는 이벤트 코드로 변환하고, 이벤트 의사 생성 정보 메모리부(5)로부터 판독된이벤트 의사 생성 정보를 참조하고, 디버거(13)를 제어하고, RAM(23)의 선정된 기억 영역에 기억된 이벤트 의사 생성 루틴에 의해 사용된 정보를 인서킷(14)로 재기입함으로써 이벤트 코드에 대응하는 "이벤트 7"은 1백회 의사 생성된다.
전술된 바와 같이, 제2 실시예에 따르면, 스크립트 파일과 에뮬레이션을 생성할 수 있고 스크립트 파일을 생성하기 위한 시간과 에뮬레이션을 위한 시간을 단축시킬 수 있기 때문에, 대상 프로그램의 개발 기간을 단축시킬 수 있다.
또한, 제2 실시예에 따르면, 타겟 시스템(16)의 하드웨어의 복잡성과 스위치 또는 키를 복수회 순차적으로 구동한 후 처음으로 실행되는 프로세스임에도 불구하고, 에뮬레이션을 임의 회수만큼 자동 반복할 수 있기 때문에, 대상 프로그램의 개발 기간을 단축시킬 수 있다.
더욱이, 제2 실시예에 따르면, 프로그램 테스트의 결과로서 대상 프로그램이 있는 위치에 버그가 있고, 그 버그가 정정되지만 대상 프로그램의 전체 품질에 발생하는 트러블과 저하로 인해 다른 위치를 정정 입력되기 때문에 대상 프로그램을 폭넓게 재테스트하여야 함에도 불구하고, 스크립트 파일을 생성함으로써 의사 생성 복수의 이벤트가 자동적으로 의사 생성할 수 있다. 따라서, 대상 프로그램의 개발 기간을 단축시킬 수 있다.
본 발명은 전술된 설명에 국한되지 않지만 본 발명의 범위 및 그 기술적 이벤트으로부터 동떨어짐없이 변화 및 변경될 수 있다.
예를 들면, 제1 실시예 및 제2 실시예에서 인서킷 에뮬레이터(14)는 주로 평가 칩(21), ROM(22), RAM(2 I/O 포트(24)를 갖고 있고 상부에 CPU 소켓을 갖는 타겟 시스템(16) 내의 하우징(31)과 맞물림으로써 에뮬레이터 프로브(15)를 거쳐 타겟 시스템(16)과 접속되지만, 본 발명은 이에 한정되지 않는다. 예들 들어, 고속 CPU를 대처하기 위하여, 평가 칩은 인서킷 에뮬레이터에 말단이 접속된 에뮬레이터 프로브에 제공되고, 에뮬레이터 프로브는 타겟 시스템의 하드웨어를 형성하는 프린트 기판 상에 설치된 실제 칩이 삽입된 하우징과 맞물려있음으로써, 인서킷 에뮬레이터와 타겟 시스템의 하드웨어는 에뮬레이터 프로브를 거쳐 접속될 수 있다. 이 경우, 타겟 시스템의 하드웨어로서 테스트될 대상 프로그램이 저장되는 ROM과 대상 프로그램을 실행하는데 사용되는 RAM이 탑재된 프린트 기판이 적어도 필요하다. 또한, 가까운 실제 상태에서 대상 프로그램을 테스트하기 위하여, 평가 칩뿐만 아니라, 적어도 트래이스에 필요한 회로, 메모리 및 터미널이 내부 구조의 CPU 칩과 실제 칩 수와 유사한 다수의 터미널 상에 설치한 칩이 사용될 수 있다. 이 경우에, 타겟 시스템의 하드웨어로서, 전술된 구조의 CPU 칩, 테스트되는 대상 프로그램이 저장되는 ROM 및 대상 프로그램을 실행하는 RAM이 적어도 필요한 프린트 기판, 인서킷 에뮬레이터가 불필요하고 CPU 칩과 디버거가 프로브를 거쳐 접속될 수 있다.
제1 실시예 및 제2 실시예에서, 프로그래밍 언어에서 기술된 소스 프로그램과 이벤트 의사 생성 루틴은 C 언어로 쓰여졌지만, 본 발명은 이에 한정되는 것은 아니다. 또한, 프로그래밍 언어에서 기술된 이벤트 의사 생성 루틴에서, "snd_msg" 및 "rcv_msg" 는 다수의 통지 기술 중 하나의 기술의 예이고 다른 통지 기술이 사용될 수 있다. 예를 들어, 단순 변수(SendEvent) 대신에 다수의 변수의구조가 사용될 수 있고 리얼 타임 OS의 시스템 요구가 사용되지 않을 수 있다.
게다가, 제1 실시예 및 제2 실시예에서 각 부는 하드웨어로 나타나지만, 본 발명은 이에 한정되는 것이 아니다. 다시 말해, 프로그램 개발 장치는 CPU, ROM 및 RAM과 같은 내부 저장 유닛, FDD(Floppy Disk Driver), HDD(Hard Disk Driver) 및 CD-ROM 드라이버, 입력 유닛 및 출력 유닛을 포함하는 컴퓨터일 수 있다. 상태 전이 매트릭스 에디터(2), 이벤트 의사 생성 에디터(3), 생성기(6), 컴파일러(9), 입력부(11(61)), 분석부(12(62), 디버거(13), 스크립트 생성부(63), 스크립트 에디터(65), 스크립트 분석부(66) 등은 CPU에 의해 실행되고, 이들 기능은 ROM과 같은 반도체 메모리, FD, HD 및 CD-ROM과 같은 저장 매체에 프로그램 개발 프로그램으로서 저장될 수 있다. 이 경우, 내부 저장 유닛 또는 외부 저장 유닛은 상태 전이 매트릭스 메모리부(4), 이벤트 의사 생성 정보 메모리부(5), 프로그램 메모리부(7) 이벤트 의사 생성 루틴 메모리부(8), 기계 언어 코드 메모리부(10), 스크립트 메모리부(64) 등이 된다. 이 프로그램 개발 프로그램은 저장 매체로부터 CPU로 판독되고 CPU의 동작을 제어한다. 프로그램 개발 프로그램이 시작될 때, CPU는 상태 전이 매트릭스 에디터(2), 이벤트 의사 생성 에디터(3), 생성기(6), 컴파일러(9), 입력부(11(61)), 분석부(12(62)), 디버거(13) 스크립트 생성부(63), 스크립트 에디터(65), 스크립트 분석부(66) 등으로서 작용하고 전술된 프로세스는 프로그램 개발 프로그램의 제어로 실행된다.
전술된 바와 같이 본 발명에 따르면, 타겟 시스템의 대상 프로그램의 임의의 프로세스를 간단하게 하고, 타겟 시스템의 하드웨어를 사용하지 않고 임의의 순서로 단시간에 테스트하는 것이 가능하여, 타겟 시스템의 생성 주기를 단축시킬 수 있다.

Claims (28)

  1. 프로그램 개발의 대상인 타겟 시스템의 인에이블 상태와, 상기 타겟 시스템의 외부 또는 내부로부터의 임펄스인 이벤트로 특정되는 복수의 셀을 갖고, 각 셀에, 특정한 상태하에서 특정한 이벤트가 발생했을 때에 상기 타겟 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스, 및 상기 타겟 시스템을 구성하는 중앙 프로세스 유닛인 실 칩이 해당 타겟 시스템에 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템을 구성하는 다른 구성요소로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보에 기초하여, 상기 프로그램과, 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 프로그램 생성 수단;
    상기 실 칩과 동등한 기능을 갖고, 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 평가 칩;
    상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에 끼워져(介揷), 상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에서 송수신되는 상기 데이터나 신호를 입출력하기 위한 입출력 포트; 및
    초기 상태로서 입력된 상태로부터 상기 프로그램의 에뮬레이션을 개시시킴과 함께, 상기 이벤트 의사 생성 정보를 참조하여, 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되어 있는, 이벤트를 의사 생성하기 위한 정보를, 발생되도록 명령된 이벤트에 대응하는 정보에 재기입하는 분석부
    를 포함하는 것을 특징으로 하는 프로그램 개발 장치.
  2. 프로그램 개발의 대상인 타겟 시스템의 인에이블 상태와, 상기 타겟 시스템의 외부 또는 내부로부터의 임펄스인 이벤트로 특정되는 복수의 셀을 갖고, 각 셀에, 특정한 상태하에서 특정한 이벤트가 발생했을 때에 상기 타겟 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스가 기억되는 상태 전이 매트릭스 메모리부;
    상기 타겟 시스템을 구성하는 중앙 프로세스 유닛인 실 칩이 해당 타겟 시스템에 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템을 구성하는 다른 구성요소로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하는 이벤트 의사 발생 에디터(editor);
    상기 상태 전이 매트릭스 및 상기 이벤트 의사 생성 정보에 기초하여, 상기 프로그램과, 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 프로그램 생성 수단;
    상기 실 칩과 동등한 기능을 갖고, 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 평가 칩;
    상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에 끼워져, 상기 제2 중앙 프로세스 유닛과 상기 시스템의 상기 다른 구성요소 사이에서 송수신되는 상기 데이터나 신호를 입출력하기 위한 입출력 포트;
    표시부에 표시된 상기 상태 전이 매트릭스를 구성하는 복수의 이벤트 또는 복수의 상태의 각각의 표시 위치 중 어느 위치가 지시되었는지를 검출하여, 그 표시 위치에 관한 위치 정보를 출력하는 입력부; 및
    상기 위치 정보를 그 위치에 대응하는 이벤트 코드 또는 상태 코드로 변환하여 해당 상태 코드에 대응하는 상태를 상기 프로그램의 에뮬레이션을 개시하는 초기 상태로서 설정함과 함께, 상기 이벤트 의사 생성 정보를 참조하여 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되어 있는, 이벤트를 의사 생성하기 위한 정보를 상기 이벤트 코드에 대응한 정보에 재기입하는 분석부
    를 포함하는 것을 특징으로 하는 프로그램 개발 장치.
  3. 프로그램 개발의 대상인 타겟 시스템의 인에이블 상태와, 상기 타겟 시스템의 외부 또는 내부로부터의 임펄스인 이벤트로 특정되는 복수의 셀을 갖고, 각 셀에, 특정한 상태하에서 특정한 이벤트가 발생했을 때에 상기 타겟 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스가 기억되는 상태 전이 매트릭스 메모리부;
    상기 타겟 시스템을 구성하는 중앙 프로세스 유닛인 실 칩이 해당 타겟 시스템에 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템을 구성하는 다른 구성요소로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하는 이벤트 의사 발생 에디터;
    상기 상태 전이 매트릭스 및 상기 이벤트 의사 생성 정보에 기초하여, 상기 프로그램과, 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 프로그램 생성 수단;
    상기 실 칩과 동등한 기능을 갖고, 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 평가 칩;
    상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에 끼워져, 상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에서 송수신되는 상기 데이터나 신호를 입출력하기 위한 입출력 포트;
    표시부에 표시된 상기 상태 전이 매트릭스를 구성하는 복수의 이벤트 또는 복수의 상태의 각각의 표시 위치 중 어느 위치가 지시되었는지를 검출하여, 그 표시 위치에 관한 위치 정보를 출력함과 함께, 명령된 이벤트의 순서 및 각 이벤트가 명령된 타이밍으로 이루어지는 입력 이벤트 로그를 생성하기 위한 입력부;
    상기 입력 이벤트 로그에 기초하여, 상기 상태 전이 매트릭스에 기술된 각 이벤트의 발생 타이밍이나 상기 타겟 시스템의 구성요소가 스펙에 따라서 동작하여야 할 타이밍을 기술한 스크립트 파일을 작성하는 스크립트 작성부;
    상기 스크립트 파일에 기술되어 있는 각 이벤트의, 상기 표시부에 표시된 상기 상태 전이 매트릭스의 대응하는 표시 영역의 위치 정보를 상기 스크립트 파일에 기술된 순서 및 발생 타이밍으로 순차 출력하는 스크립트 분석부;
    상기 입력부 또는 상기 스크립트 분석부에서 공급되는 상기 위치 정보를 그 위치에 대응하는 이벤트 코드 또는 상태 코드로 변환하여, 해당 상태 코드에 대응하는 상태를 상기 프로그램의 에뮬레이션을 개시하는 초기 상태로서 설정함과 함께, 상기 이벤트 의사 생성 정보를 참조하여, 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되어 있는, 이벤트를 의사 생성하기 위한 정보를 상기 이벤트 코드에 대응한 정보에 재기입하는 분석부
    를 포함하는 것을 특징으로 하는 프로그램 개발 장치.
  4. 제3항에 있어서, 발생되는 이벤트 입력, 상기 이벤트의 발생 타이밍 및 발생 빈도 중 어느 하나에 기초하여 상기 스크립트 파일을 편집하기 위한 스크립트 에디터를 더 포함하는 것을 특징으로 하는 프로그램 개발 장치.
  5. 제3항에 있어서, 상기 스크립트 파일은 타이밍 차트 포맷, 텍스트 포맷 및 메시지 시퀀스 차트 포맷 중 어느 하나인 것을 특징으로 하는 프로그램 개발 장치.
  6. 제1항에 있어서, 상기 프로그램은 상기 타겟 시스템의 주요 프로세스를 실행하기 위한 메인 루틴과, 상기 실 칩이 상기 타겟 시스템에 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템의 다른 구성요소로부터 전송되는 각종 데이터 및 신호에 기초하여 대응하는 이벤트를 통상적으로 생성하기 위한 통상 이벤트 생성 루틴을 포함하는 것을 특징으로 하는 프로그램 개발 장치.
  7. 제2항에 있어서, 상기 프로그램은 상기 타겟 시스템의 주요 프로세스를 실행하기 위한 메인 루틴과, 상기 실 칩이 상기 타겟 시스템에 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템의 다른 구성요소로부터 전송되는 각종 데이터 및 신호에 기초하여 대응하는 이벤트를 통상적으로 생성하기 위한 통상 이벤트 생성 루틴을 포함하는 것을 특징으로 하는 프로그램 개발 장치.
  8. 제3항에 있어서, 상기 프로그램은 상기 타겟 시스템의 주요 프로세스를 실행하기 위한 메인 루틴과, 상기 실 칩이 상기 타겟 시스템에 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템의 다른 구성요소로부터 전송되는 각종 데이터 및 신호에 기초하여 대응하는 이벤트를 통상적으로 생성하기 위한 통상 이벤트 생성 루틴을 포함하는 것을 특징으로 하는 프로그램 개발 장치.
  9. 제1항에 있어서, 상기 이벤트 의사 생성 정보는 상기 이벤트에 따른 생성 기술 정보인 것을 특징으로 하는 프로그램 개발 장치.
  10. 제2항에 있어서, 상기 이벤트 의사 생성 정보는 상기 이벤트에 따른 생성 기술 정보인 것을 특징으로 하는 프로그램 개발 장치.
  11. 제3항에 있어서, 상기 이벤트 의사 생성 정보는 상기 이벤트에 따른 생성 기술 정보인 것을 특징으로 하는 프로그램 개발 장치.
  12. 제1항에 있어서, 상기 이벤트는 다른 태스크 또는 다른 장치로부터의 시작 메시지를 수신하는 메시지 형, 변수 또는 입력/출력의 변화를 판독하는 플래그 형, 외부로부터 인터럽트를 수신하는 인터럽트 형, 상기 상태 전이 매트릭스가 계층화되어 있을 때에 상기 상태 전이 매트릭스의 셀에서 발생되는 내부 이벤트를 다른 상태 전이 매트릭스에 통지하는 인-메일 형(in-mail type) 및 프로세스군을 실행하는 기능을 불러내는 기능 호출 형 중 어느 하나인 것을 특징으로 하는 프로그램 개발 장치.
  13. 제2항에 있어서, 상기 이벤트는 다른 태스크 또는 다른 장치로부터의 시작 메시지를 수신하는 메시지 형, 변수 또는 입력/출력의 변화를 판독하는 플래그 형, 외부로부터 인터럽트를 수신하는 인터럽트 형, 상기 상태 전이 매트릭스가 계층화되어 있을 때에 상기 상태 전이 매트릭스의 셀에서 발생되는 내부 이벤트를 다른 상태 전이 매트릭스에 통지하는 인-메일 형 및 프로세스군을 실행하는 기능을 불러내는 기능 호출 형 중 어느 하나인 것을 특징으로 하는 프로그램 개발 장치.
  14. 제3항에 있어서, 상기 이벤트는 다른 태스크 또는 다른 장치로부터의 시작 메시지를 수신하는 메시지 형, 변수 또는 입력/출력의 변화를 판독하는 플래그 형,외부로부터 인터럽트를 수신하는 인터럽트 형, 상기 상태 전이 매트릭스가 계층화되어 있을 때에 상기 상태 전이 매트릭스의 셀에서 발생되는 내부 이벤트를 다른 상태 전이 매트릭스에 통지하는 인-메일 형 및 프로세스군을 실행하는 기능을 불러내는 기능 호출 형 중 어느 하나인 것을 특징으로 하는 프로그램 개발 장치.
  15. 적어도 중앙 프로세스 유닛 및 다른 구성요소를 포함하는 시스템에 설치될 프로그램을 개발하는데 사용되는 프로그램 개발 방법으로서,
    프로그램 개발의 대상인 타겟 시스템의 인에이블 상태와, 상기 타겟 시스템의 외부 또는 내부로부터의 임펄스인 이벤트로 특정되는 복수의 셀을 갖고, 각 셀에, 특정한 상태하에서 특정한 이벤트가 발생했을 때에 상기 타겟 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스, 및 상기 타겟 시스템을 구성하는 중앙 프로세스 유닛인 실 칩이 해당 타겟 시스템에 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템을 구성하는 다른 구성요소로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보에 기초하여, 상기 프로그램과, 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 제1 단계;
    상기 실 칩과 동등한 기능을 갖는 평가 칩을 이용하여 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 제2 단계;
    상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에 끼워진 입출력 포트를 이용하여, 상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에서 송수신되는 상기 데이터나 신호를 입출력하는 제3 단계; 및
    초기 상태로서 입력된 상태로부터 상기 프로그램의 에뮬레이션을 개시시킴과 함께, 상기 이벤트 의사 생성 정보를 참조하여, 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되어 있는, 이벤트를 의사 생성하기 위한 정보를, 발생되도록 명령된 이벤트에 대응하는 정보에 재기입하는 제4 단계
    를 포함하는 것을 특징으로 하는 프로그램 개발 방법.
  16. 적어도 중앙 프로세스 유닛 및 다른 구성요소를 포함하는 시스템에 설치될 프로그램을 개발하는데 사용되고,
    프로그램 개발의 대상인 타겟 시스템의 인에이블 상태와, 상기 타겟 시스템의 외부 또는 내부로부터의 임펄스인 이벤트로 특정되는 복수의 셀을 갖고, 각 셀에, 특정한 상태하에서 특정한 이벤트가 발생했을 때에 상기 타겟 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스가 기억되는 상태 전이 매트릭스 메모리부; 및
    표시부에 표시된 상기 상태 전이 매트릭스를 구성하는 복수의 이벤트 또는 복수의 상태의 각각의 표시 위치 중 어느 위치가 지시되었는지를 검출하여, 그 표시 위치에 관한 위치 정보를 출력하는 입력부를 구비하는 프로그램 개발 장치에서의 프로그램 개발 방법으로서,
    상기 타겟 시스템을 구성하는 중앙 프로세스 유닛인 실 칩이 해당 타겟 시스템에 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템을 구성하는 다른 구성요소로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하는 제1 단계;
    상기 상태 전이 매트릭스 및 상기 이벤트 의사 생성 정보에 기초하여, 상기 프로그램과, 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 제2 단계;
    상기 실 칩과 동등한 기능을 갖는 평가 칩을 이용하여, 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 제3 단계;
    상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에 끼워진 입출력 포트를 이용하여, 상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에서 송수신되는 상기 데이터나 신호를 입출력하는 제4 단계; 및
    상기 위치 정보를 그 위치에 대응하는 이벤트 코드 또는 상태 코드로 변환하여, 해당 상태 코드에 대응하는 상태를 상기 프로그램의 에뮬레이션을 개시하는 초기 상태로서 설정함과 함께, 상기 이벤트 의사 생성 정보를 참조하여 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되어 있는, 이벤트를 의사 생성하기 위한 정보를 상기 이벤트에 대응하는 정보에 재기입하는 제5 단계
    를 포함하는 것을 특징으로 하는 프로그램 개발 방법.
  17. 적어도 중앙 프로세스 유닛 및 다른 구성요소를 포함하는 시스템에 설치될 프로그램을 개발하는데 사용되고,
    프로그램 개발의 대상인 타겟 시스템의 인에이블 상태와, 상기 타겟 시스템의 외부 또는 내부로부터의 임펄스인 이벤트로 특정되는 복수의 셀을 갖고, 각 셀에, 특정한 상태하에서 특정한 이벤트가 발생했을 때에 상기 타겟 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스가 기억되는 상태 전이 매트릭스 메모리부; 및
    표시부에 표시된 상기 상태 전이 매트릭스를 구성하는 복수의 이벤트 또는 복수의 상태의 각각의 표시 위치 중 어느 위치가 지시되었는지를 검출하고, 그 표시 위치에 관한 위치 정보를 출력함과 함께, 명령된 이벤트의 순서 및 각 이벤트가 명령된 타이밍으로 이루어지는 입력 이벤트 로그를 생성하기 위한 입력부를 구비하는 프로그램 개발 장치에서의 프로그램 개발 방법으로서,
    상기 타겟 시스템을 구성하는 중앙 프로세스 유닛인 실 칩이 해당 타겟 시스템에 실제로 탑재되었을 때, 동 타겟 시스템을 구성하는 다른 구성요소로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보를 생성하는 제1 단계;
    상기 상태 전이 매트릭스 및 상기 이벤트 의사 생성 정보에 기초하여, 상기 프로그램과 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 제2 단계;
    상기 실 칩과 동등한 기능을 갖는 평가 칩을 이용하여, 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 제3 단계;
    상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에 끼워진 입출력 포트를 이용하여, 상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에서 송수신되는 상기 데이터나 신호를 입출력하는 제4 단계;
    상기 입력부에서 명령된 이벤트의 순서 및 각 이벤트가 명령되는 타이밍으로 이루어지는 입력 이벤트 로그를 생성하는 제5 단계;
    상기 입력된 이벤트 로그에 기초하여, 상기 상태 전이 매트릭스에 기술된 각 이벤트의 발생 타이밍 및 상기 타겟 시스템의 구성요소가 스펙에 따라서 동작하여야 할 타이밍을 기술한 스크립트 파일을 생성하는 제6 단계;
    상기 스크립트 파일에 기술되어 있는 각 이벤트의, 상기 표시부에 표시된 상기 상태 전이 매트릭스의 대응하는 표시 영역의 위치 정보를 상기 스크립트 파일에 기술된 순서 및 발생 타이밍으로 순차 출력하는 제7 단계; 및
    상기 입력부 또는 상기 스크립트 분석부에서 공급되는 상기 위치 정보를 그 위치에 대응하는 이벤트 코드 또는 상태 코드로 변환하여, 상기 상태 코드에 대응하는 상태를 상기 프로그램의 에뮬레이션을 개시하는 초기 상태로서 설정함과 함께, 상기 이벤트 의사 생성 정보를 참조하여, 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되어 있는, 이벤트를 의사 생성하기 위한 정보를 상기 이벤트 코드에 대응한 정보에 재기입하는 제8 단계
    를 포함하는 것을 특징으로 하는 프로그램 개발 방법.
  18. 제17항에 있어서, 상기 제6 단계에서 상기 스크립트 파일을 생성한 후 해당 스크립트 파일의 수정이 필요할 때, 발생되는 이벤트 입력, 상기 이벤트의 발생 타이밍 및 발생 빈도 중 어느 하나에 기초하여 상기 스크립트 파일을 편집하는 제9 단계를 더 포함하는 것을 특징으로 하는 프로그램 개발 방법.
  19. 제17항에 있어서, 상기 스크립트 파일은 타이밍 차트 포맷, 텍스트 포맷 및 메시지 시퀀스 차트 포맷 중 어느 하나인 것을 특징으로 하는 프로그램 개발 방법.
  20. 제15항에 있어서, 상기 프로그램은 상기 타겟 시스템의 주요 프로세스를 실행하기 위한 메인 루틴과, 상기 실 칩이 해당 타겟 시스템이 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템의 다른 구성요소로부터 전송되는 각종 데이터 및 신호에 기초하여 대응하는 이벤트를 통상적으로 생성하는 통상 이벤트 생성 루틴을 포함하는 것을 특징으로 하는 프로그램 개발 방법.
  21. 제16항에 있어서, 상기 프로그램은 상기 타겟 시스템의 주요 프로세스를 실행하기 위한 메인 루틴과, 상기 실 칩이 해당 타겟 시스템이 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템의 상기 다른 구성요소로부터 전송되는 각종 데이터 및 신호에 기초하여 대응하는 이벤트를 통상적으로 생성하는 통상 이벤트 생성 루틴을 포함하는 것을 특징으로 하는 프로그램 개발 방법.
  22. 제15항에 있어서, 상기 이벤트 의사 생성 정보는 상기 이벤트에 따른 생성 기술 정보인 것을 특징으로 하는 프로그램 개발 방법.
  23. 제16항에 있어서, 상기 이벤트 의사 생성 정보는 상기 이벤트에 따른 생성 기술 정보인 것을 특징으로 하는 프로그램 개발 방법.
  24. 제15항에 있어서, 상기 이벤트는 다른 태스크 또는 다른 장치로부터의 시작 메시지를 수신하는 메시지 형, 변수 또는 입력/출력의 변화를 판독하는 플래그 형, 외부로부터 인터럽트를 수신하는 인터럽트 형, 상기 상태 전이 매트릭스가 계층화되어 있을 때에 상기 상태 전이 매트릭스의 셀에서 발생되는 내부 이벤트를 다른 상태 전이 매트릭스에 통지하는 인-메일 형 및 프로세스군을 실행하는 기능을 불러내는 기능 호출 형 중 어느 하나인 것을 특징으로 하는 프로그램 개발 방법.
  25. 제16항에 있어서, 상기 이벤트는 다른 태스크 또는 다른 장치로부터의 시작 메시지를 수신하는 메시지 형, 변수 또는 입력/출력의 변화를 판독하는 플래그 형, 외부로부터 인터럽트를 수신하는 인터럽트 형, 상기 상태 전이 매트릭스가 계층화되어 있을 때에 상기 상태 전이 매트릭스의 셀에서 발생되는 내부 이벤트를 다른 상태 전이 매트릭스에 통지하는 인-메일 형 및 프로세스군을 실행하는 기능을 불러내는 기능 호출 형 중 어느 하나인 것을 특징으로 하는 프로그램 개발 방법.
  26. 삭제
  27. 적어도 중앙 프로세스 유닛 및 다른 구성요소를 포함하는 시스템에 설치될 프로그램을 개발하는데 사용되는 프로그램 개발 방법을 컴퓨터로 하여금 실행하도록 하기 위한 프로그램 개발 프로그램을 저장하는 저장 매체에 있어서,
    상기 프로그램 개발 방법은,
    프로그램 개발의 대상인 타겟 시스템의 인에이블 상태와, 상기 타겟 시스템의 외부 또는 내부로부터의 임펄스인 이벤트로 특정되는 복수의 셀을 갖고, 각 셀에, 특정한 상태하에서 특정한 이벤트가 발생했을 때에 상기 타겟 시스템이 실행하여야 할 처리의 내용이나 전이하여야 할 전이 목적지의 상태를 기술한 상태 전이 매트릭스, 및 상기 타겟 시스템을 구성하는 중앙 프로세스 유닛인 실 칩이 해당 타겟 시스템에 실제로 탑재되었을 때, 해당 실 칩에 동 타겟 시스템을 구성하는 다른 구성요소로부터 전송되는 데이터나 신호에 기초하여 통상 발생되는 이벤트와 동일한 이벤트를 의사 생성하기 위한 이벤트 의사 생성 정보 기초하여, 상기 프로그램과, 상기 이벤트를 의사 생성하기 위한 이벤트 의사 생성 루틴을 생성하는 제1 단계;
    상기 실 칩과 동등한 기능을 갖는 평가 칩을 이용하여 상기 프로그램의 에뮬레이션 및 상기 이벤트 의사 생성 루틴을 실행하는 제2 단계;
    상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에 끼워진 입출력 포트를 이용하여, 상기 평가 칩과 상기 타겟 시스템의 상기 다른 구성요소 사이에서 송수신되는 상기 데이터나 신호를 입출력하는 제3 단계; 및
    초기 상태로서 입력된 상태에서 상기 프로그램의 에뮬레이션을 개시시킴과 함께, 상기 이벤트 의사 생성 정보를 참조하여, 상기 이벤트 의사 생성 루틴의 실행 시에 사용되는 메모리부에 기억되어 있는, 이벤트를 의사 생성하기 위한 정보를, 발생되도록 명령된 이벤트에 대응한 정보에 재기입하는 제4 단계
    를 포함하는 것을 특징으로 하는 프로그램 개발 프로그램을 저장하는 저장 매체.
  28. 삭제
KR10-2001-0004452A 2000-01-31 2001-01-31 프로그램 개발 장치, 프로그램 개발 방법, 프로그램 개발 프로그램을 저장한 저장 매체 KR100429957B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000-023231 2000-01-31
JP2000023231A JP3488161B2 (ja) 2000-01-31 2000-01-31 プログラム開発装置、プログラム開発方法及びプログラム開発プログラムを記録した記録媒体

Publications (2)

Publication Number Publication Date
KR20010083152A KR20010083152A (ko) 2001-08-31
KR100429957B1 true KR100429957B1 (ko) 2004-05-03

Family

ID=18549424

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0004452A KR100429957B1 (ko) 2000-01-31 2001-01-31 프로그램 개발 장치, 프로그램 개발 방법, 프로그램 개발 프로그램을 저장한 저장 매체

Country Status (4)

Country Link
US (1) US20010014966A1 (ko)
JP (1) JP3488161B2 (ko)
KR (1) KR100429957B1 (ko)
DE (1) DE10104202A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088310A1 (en) * 2002-10-18 2004-05-06 Hitachi, Ltd. Recording medium, recording apparatus, recording method, reproduction apparatus and reproduction method
JP4621100B2 (ja) * 2005-09-21 2011-01-26 キヤノン株式会社 設計支援プログラム
JP5153479B2 (ja) * 2008-06-27 2013-02-27 株式会社日立製作所 状態設計支援装置、状態設計支援方法、およびプログラム
JP4959640B2 (ja) * 2008-07-10 2012-06-27 富士ソフト株式会社 モデル検査支援装置及びプログラム
JP5788850B2 (ja) * 2012-09-27 2015-10-07 株式会社東芝 データ分析支援装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2278213A (en) * 1993-05-18 1994-11-23 Ibm Test program generator.
JPH08212106A (ja) * 1995-02-01 1996-08-20 Toshiba Corp システム試験支援装置及びシステム試験支援方法
EP0814404B1 (en) * 1996-06-19 2001-01-31 Matsushita Electric Industrial Co., Ltd. Debugging apparatus for debugging a program
IL119914A (en) * 1996-12-25 2000-06-29 Emultek Ltd Device for implementing hierarchical state charts and methods and apparatus useful therefor
JPH10254738A (ja) * 1997-03-12 1998-09-25 Mitsubishi Electric Corp エミュレータ装置及びエミュレーション方法
JP3424520B2 (ja) * 1997-08-29 2003-07-07 松下電器産業株式会社 プログラム変換装置とデバッグ装置
JP3663067B2 (ja) * 1998-12-17 2005-06-22 富士通株式会社 論理装置の検証方法、検証装置及び記録媒体

Also Published As

Publication number Publication date
JP2001216179A (ja) 2001-08-10
JP3488161B2 (ja) 2004-01-19
DE10104202A1 (de) 2001-09-06
KR20010083152A (ko) 2001-08-31
US20010014966A1 (en) 2001-08-16

Similar Documents

Publication Publication Date Title
US9195571B2 (en) Automatic testing apparatus for embedded software, automatic testing method thereof and test scenario composing method
KR100429957B1 (ko) 프로그램 개발 장치, 프로그램 개발 방법, 프로그램 개발 프로그램을 저장한 저장 매체
US7158906B2 (en) Test method, test system, and program therefor
CN102519514B (zh) 电子测试仪器一键式自动测试的实现方法
US6532573B1 (en) LSI verification method, LSI verification apparatus, and recording medium
JP2008003817A (ja) プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム
JP5241570B2 (ja) 測定装置
JPH10133914A (ja) 計算機システム及びデバイス入出力シミュレータ
US20090094295A1 (en) Electronic equipment and log output method
US20020194542A1 (en) Debugging system for semiconductor integrated circuit
KR0183836B1 (ko) 씨디-롬 드라이브의 데크 어셈블리 테스트 시스템
JP4282516B2 (ja) メンテナンス装置
JP2005174045A (ja) ソースプログラム変換装置、ソースプログラム変換方法、ソースプログラム変換プログラム、および、プログラム記録媒体
TWI273487B (en) Computer system, related method, manufacture developing method and related system for generating program codes for describing relations of numerous function titles and numerous control signal codes of a device
JPH0362104A (ja) 検査装置
US6687863B1 (en) Integrated circuit internal signal monitoring apparatus
JP2000099369A (ja) ビジュアルシミュレーション装置およびその方法とビジュアルシミュレーションプログラム記録媒体
JP3369257B2 (ja) 自動演奏記録装置
JP2009075704A (ja) テスト方法およびテスト装置並びにプログラム
CN100489773C (zh) 产生品质管理测试程序的方法与系统
JP2002312198A (ja) プログラムテスト支援装置
JPS58150381A (ja) ビデオデイスクプレ−ヤのシユミレ−タ
JP2663528B2 (ja) 光学式ディスク再生装置
JP2001282580A (ja) プログラム試験装置、試験用プログラム作成装置、試験用プログラム作成方法及び情報記録媒体
JPH06138911A (ja) プログラミング装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee