KR20060056880A - 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법및 디버그방법 - Google Patents

프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법및 디버그방법 Download PDF

Info

Publication number
KR20060056880A
KR20060056880A KR1020057006300A KR20057006300A KR20060056880A KR 20060056880 A KR20060056880 A KR 20060056880A KR 1020057006300 A KR1020057006300 A KR 1020057006300A KR 20057006300 A KR20057006300 A KR 20057006300A KR 20060056880 A KR20060056880 A KR 20060056880A
Authority
KR
South Korea
Prior art keywords
language
program
source program
general
file
Prior art date
Application number
KR1020057006300A
Other languages
English (en)
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 KR20060056880A publication Critical patent/KR20060056880A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 프로그램 개발장치(예를 들면, 워크 스테이션)상에서 범용 언어 소스 프로그램(예를 들면 C 언어)의 프리프로세서 기술부에, 독자 사양 언어 소스 프로그램(예를 들면 ATL)의 기술을 매립한 이종 언어 혼재 소스 프로그램을 작성하는 것이다. 그리고 그 이종 언어 혼재 소스 프로그램으로부터 범용 언어 소스 프로그램 기술부와 독자 사양 언어 소스 프로그램 기술부를 인출하여 각각의 컴파일러로 컴파일하여 얻어진 각각의 오브젝트 코드를 결합하여 하나의 오브젝트 파일을 생성하는 것이다.

Description

프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법 및 디버그방법{PROGRAM DEVELOPMENT SUPPORT DEVICE, PROGRAM EXECUTION DEVICE, COMPILE METHOD AND DEBUG METHOD}
본 발명은 반도체 시험장치 등의 피제어장치에 대한 제어 코멘드가 기술된 독자 사양 언어 프로그램과, 독자 사양 언어 프로그램의 실행 단계나 독자 사양 언어 프로그램으로부터 얻어진 데이터의 처리 단계 등이 기술된 범용 언어 프로그램을 개발하기 위한 프로그램 개발 지원장치, 그들 프로그램을 실행하는 프로그램 실행장치, 그들 프로그램의 컴파일방법 및 디버그방법에 관한 것으로, 특히 상기한 독자 사양 언어 프로그램과 범용 언어 프로그램이 하나의 파일 내에 혼재하여 기술된 이종(異種) 언어혼재 프로그램을 개발하기 위한 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법 및 디버그방법에 관한 것이다.
방대하고 또한 다양한 신호처리가 구해지는 측정장치나 통신장치 등의 전자기기의 대부분에는 고성능의 프로세서가 탑재되어 있다. 그와 같은 프로세서상에서 실행되는 프로그램(펌웨어)도 역시 복잡하고 크기가 커지는 경향에 있다. 필연으로 이들 전자기기에 기록되어 있는 프로그램은 미지의 버그를 포함하고 있기도 하고, 기능의 추가나 개선을 요구받는 일이 많다.
그 때문에 이와 같은 전자기기는 동작의 설정/감시나 상기한 프로그램의 업데이트를 가능하게 하기 위하여 통신 케이블을 거쳐, 외부의 컴퓨터와 접속 가능한 것이 많다. 즉, 외부의 컴퓨터로부터 전자기기의 프로세서에 대하여 제어 코멘드나 제어 프로그램 자체를 배신하는 것이 가능하다. 또한 환언하면 외부의 컴퓨터상에서 개발한 프로그램의 알고리즘이나 설정내용에 따라 전자기기를 조작하는 것이 가능하다.
그와 같은 전자기기 중에서도 특히 반도체 시험장치는 다종 다양하고 또한 독자 사양의 반도체장치에 대하여 각각 개별의 디바이스 테스트 프로그램을 준비할 필요가 있는 특수한 측정장치이다. 특히 반도체 시험장치의 프로세서상에서 실행시키는 프로그램은 이용자(반도체장치 제조 메이커) 스스로에 의하여 개발된다는 형태가 정착되고 있다.
그런데 반도체 시험장치를 필두로 한 특수용도의 전자기기는 탑재되는 프로세서도 독자 사양의 것이 많고, 필연으로 그 프로세서를 이해할 수 있는 바이너리 파일도 독자사양에 따르고 있다. 그 때문에 그와 같은 바이너리 파일의 기초가 되는 소스 파일의 작성에 필요한 프로그램 언어의 사양이나 개발지원 환경도 역시 특수하게 되어 프로그램 개발자는 프로그램 언어와 함께 개발지원 환경의 조작도 익숙할 필요가 있었다.
이와 같은 배경으로부터 최근에 있어서는 C 언어나 JAVA(등록상표) 등의 범용 언어에 의하여 개발된 프로그램을 실행할 수 있는 전자기기도 등장하고 있다. 그런데 그와 같은 전자기기를 채용하는 것은 과거의 독자사양의 프로그램 자산을 활용할 수 없다는 새로운 문제를 낳는다.
이 문제를 해결하기 위하여 데이터처리나 알고리즘 전체가, C 언어와 같은 범용 언어 프로그램으로 기술되고, 그 범용 언어 프로그램 내로부터 전자기기에 의존하는 독자 사양 언어 프로그램이 서브 루틴으로서 호출된다는 방법이 있다. 이하에 이 방법에 따른 프로그램의 개발과 실행에 관하여, 프로그램을 실행하는 전자기기가 반도체 시험장치인 경우를 예로 들어 상세하게 설명한다.
먼저, 반도체 시험장치상에서의 프로그램의 실행동작을 이해하기 위하여 반도체 시험장치와 그 프로그램 개발환경이 설명된다. 반도체 시험장치는 반도체 메모리, 로직 IC, 리니어 IC 등의 반도체장치에 대하여 소정의 동작시험을 행하는 특수한 측정장치로서, 일반적으로 그 장치구성은 상기한 반도체장치의 종별마다 다르다. 또반도체 시험장치에의 시험실행 지시, 시험결과 취득 및 프로그램 개발은, 통상 반도체 시험장치에 접속된 워크 스테이션에 의하여 행하여진다. 반도체시험은 예를 들면 일본국 특개2001-195275호 공보에 개시되어 있는 바와 같이 반도체 시험장치와 워크 스테이션으로 구성되는 반도체 시험 시스템에 의하여 실현된다.
도 10은 종래의 반도체 시험 시스템의 개략 구성을 나타내는 블럭도이고, 특히 상기한 바와 같이 다른 장치 구성의 반도체 시험장치 사이에 있어서 공통되는 구성을 나타내는 것이다. 도 10에 있어서 반도체 시험장치(100)는 테스터 프로세서(110)와, 테스터 본체(120)와, 테스트 헤드(130)와, 통신 인터페이스(140)를 구비하여 구성된다.
테스터 프로세서(110)는, 테스터 본체(120)와의 사이에서 제어 코멘드의 송 신이나 시험 데이터의 송수신을 행하는 수단이고, 테스터 본체(120)의 제어나 뒤에서 설명하는 워크 스테이션과의 사이의 통신을 행하는 컨트롤러이다. 특히 테스터 프로세서(110)는 내부에 탑재한 메모리(도시 생략)에, OS(오퍼레이팅 시스템) 커넬(111)을 저장하고 있고, 디바이스 테스트 프로그램의 기동이나 감시, 메모리관리를 행함 과 동시에, 마찬가지로 메모리에 저장된 통신 버스 드라이버(112)나 테스터 버스 드라이버(113)를 거쳐, 통신 인터페이스(140)의 감시/제어, 테스터 본체(120)의 제어, 시험 데이터의 송수신을 행한다.
디바이스 테스트 프로그램은, 상기한 범용 언어 프로그램(114)과 독자 사양 언어 프로그램(117)으로 구성되어 있고, 그들 전체에서 피측정 디바이스(131)에 대한 기능시험이나 DC 파라메트릭 시험 등의 각종 시험을 실시하는 순서를 규정하고 있다. 범용 언어 프로그램(114)은 시험결과로서 취득한 각종 데이터를 처리하는 코멘드를 포함한 스테이트먼트와, 디바이스 테스트 프로그램 전체를 어떻게 실행할지를 나타내는 코멘드를 포함한 스테이트먼트에 의하여 구성되어 있고, OS 커넬(111)상에서 직접실행 가능한 바이너리 파일이다.
한편, 독자 사양 언어 프로그램(117)은 테스터 본체(120)를 제어하기 위한 코멘드로 구성되는 오브젝트 파일이다. 그 오브젝트 파일은 과거의 자산인 독자 사양 언어 프로그램과 마찬가지로 독자 사양 언어 프로그램(117)에 최적화된 커넬상에서 만 직접 실행 가능한 바이너리 파일이다. 그 때문에 독자 사양 언어 프로그램(117)을 OS 커넬(111)상에서 실행시킴에 있어서는 실행용 에뮬레이터(115)에 의한 해석처리가 요구된다. 또 독자 사양 언어 프로그램(117)은, 뒤에서 설명하는 워크 스테이션(200)에 대한 디스크·엑세스, 키 입력, 디스플레이 표시라는 입출력 코멘드도 포함하고 있고, 그들 입출력 코멘드의 실행에 있어서는 실행용 에뮬레이터(115)에 의한 해석에 더하여, 다시 IO 제어용 에뮬레이터(116)에 의한 해석처리가 요구된다.
테스터 본체(120)는 테스터 프로세서(110)로부터 송신되는 제어 코멘드에 따라 테스트 헤드(130)에 설치된 피측정 디바이스(131)에 대하여 기능시험이나 DC 파라메트릭시험, RF 시험(고주파시험) 등의 각종 시험을 행하는 수단이고, 레지스터(121), 메모리(122), 시험신호 송수신부(123)를 구비하여 구성된다. 레지스터(121)는 테스터 프로세서(110) 내의 테스터 버스 드라이버(113)와의 사이에서 송수신되는 각종 데이터를 저장하고, 저장된 데이터는 직접 또는 메모리(122)를 거쳐 시험신호 송수신부(123)에 송신된다.
또, 시험신호 송수신부(123)로부터 출력되는 데이터는, 일단 레지스터(121)나 메모리(122)에 저장된 후, 레지스터(121)를 거쳐 테스터 프로세서(110) 내의 테스터 버스 드라이버(113)에 송신된다. 시험신호 송수신부(123)는 패턴 발생기나 타이밍 발생기, DC 유닛 등의 여러가지 시험 유닛으로 구성되고, 이들 시험 유닛에 의하여 생성된 시험신호를 피측정 디바이스(131)에 입력함과 동시에, 피측정 디바이스(131)의 출력핀에 나타나는 데이터를 취득한다.
도 11은 상기한 워크 스테이션(200)의 개략 구성을 나타내는 블럭도이다. 워크 스테이션(200)은 반도체 시험장치(100) 내의 테스터 프로세서(110)에 대하여 프로그램의 전송이나 실행지시를 행하는 콘솔 단말의 역할과, 범용 언어 프로그램 (114)이나 독자 사양 언어 프로그램(117)의 개발을 지원하는 프로그램 개발 지원장치의 역할을 담당한다. 도 11에 있어서 워크 스테이션(200)은 프로세서(220)와, 통신 인터페이스(241)와, 하드 디스크장치(242)와, 마우스(243)와, 키보드(244)와, 디스플레이장치(245)를 구비하여 구성된다.
프로세서(220)는 내부에 탑재한 메모리(도시 생략)에 OS(오퍼레이팅 시스템) 커넬(221)을 저장하고 있고, 여러가지 프로그램의 기동이나 감시, 메모리관리를 행함 과 동시에, 마찬가지로 메모리에 저장되는 통신 버스 드라이버(223), 하드 디스크 드라이버(224), 마우스 드라이버(225), 키보드 드라이버(226), 디스플레이 드라이버(227)를 거쳐, 통신 인터페이스(241)의 감시나 제어, 하드 디스크장치(242)와의 사이에서의 프로그램이나 데이터의 판독/기록, 마우스(243)나 키보드(244)로부터의 입력정보의 취득, 디스플레이장치(245)에의 표시정보의 출력을 행한다. 여기서 특히 통신 인터페이스(241)는 통신 케이블(도시 생략)을 거쳐 도 10에 나타낸 통신 인터페이스(140)와 접속되어 있고, 워크 스테이션(200)과 반도체 시험장치(100)와의 사이의 통신을 가능하게 한다.
또, OS 커넬(221)은 GUI(Graphical User Interface)처리부(222)를 가진다. 도시되는 에디터(228), 범용 언어 컴파일러(29), 링커(233), 범용 언어 디버거(231),독자 사양 언어 컴파일러(230), 독자 사양 언어 디버거(232) 등의 각종 프로그램은 디스플레이장치(245)상에 표시되는 윈도우 화면단위로 실행되는 것이 가능하다. 이 워크 스테이션(200)은 범용적인 컴퓨터의 장치구성과 동등하다. 따라서 상기한 각종 드라이버나 각종 프로그램은 통상은 하드 디스크장치(242)에 기억되어 있고, OS 커넬(221)에 따라 필요에 따라 상기 메모리에 판독되어 실행된다.
다음에 반도체 시험장치(100)와 워크 스테이션(200)으로 구성되는 반도체 시험 시스템에 있어서, 디바이스 테스트 프로그램의 개발과 실행의 흐름이 설명된다. 도 12는 종래의 디바이스 테스트 프로그램의 개발과 실행순서를 나타낸 플로우차트이다. 여기서는 디바이스 테스트 프로그램이 상기한 바와 같이 범용 언어 프로그램과 독자 사양 언어 프로그램으로 구성되어 있고, 범용 언어 프로그램으로서 C 언어를 채용하고, 독자 사양 언어 프로그램으로서 ATL(어드밴티스트사 독자 규격)을 채용한 경우를 예로 든다.
먼저, 프로그램 개발자는 워크 스테이션(200)상에 있어서 에디터(228)를 기동시켜 C 언어에 의한 소스 프로그램을 작성한다(단계 S301). 이 소스 프로그램은 상기한 바와 같이 디바이스 테스트 프로그램 전체의 알고리즘을 기술하고 있고, 시퀀스처리의 원하는 위치에서 ATL로 기술된 오브젝트 프로그램을 호출하여 실행하기도 하고, 그 실행에 의하여 얻어진 시험결과 데이터를 처리하는 순서를 규정한다.
C 언어에 의한 소스 프로그램의 작성을 끝내면, 프로그램 개발자는 C 컴파일러[범용 언어 컴파일러(29)에 상당]에 대하여 작성한 소스 프로그램의 파일(이하, 필요한 헤더 파일 등을 포함하여 C 소스 파일이라 칭한다]을 지정하여 컴파일을 실행시킨다(단계 S302). 컴파일처리에서는 먼저 구문 체크가 행하여지고, 구문 에러가 생긴 경우에는 프로그램 개발자는 에디터(228)로 에러부분을 수정하고, 다시 컴파일의 실행을 지시한다. 에러가 없는 경우에는 상기한 C 소스 파일을 기계어로 번역한 오브젝트 파일(이하, C 오브젝트 파일이라 부른다)이 생성된다.
단계 S301에서 작성된 복수의 C 소스 파일에 대하여, 단계 S302가 완료되면 프로그램 개발자는 링커(233)에 대하여 생성된 복수의 C 오브젝트 파일이나 그 밖에 필요한 라이브러리 파일을 지정하여 링크를 실행시킨다(단계 S303). 이 링크에 의하여 반도체 시험장치(100)의 테스터 프로세서(110)상에서 직접 실행 가능한 단일의 C 오브젝트 파일이 생성된다.
또, 프로그램 개발자는 C 언어에 의한 오브젝트 파일의 생성과 병행하여 워크 스테이션(200)상에 있어서 에디터(228)를 기동시켜 ATL에 의한 소스 프로그램을 작성한다(단계 S401). 이 소스 프로그램은 상기한 바와 같이 반도체 시험장치(100)를 제어하기 위한 제어 코멘드를 기술한다.
ATL에 의한 소스 프로그램의 작성이 끝나면 프로그램 개발자는 ATL 컴파일러[독자 사양 언어 컴파일러(230)에 상당]에 대하여, 작성한 소스 프로그램의 파일(이하, ATL 소스 파일이라 부른다)을 지정하여 컴파일을 실행시킨다(단계 S402). 또한 이 컴파일 처리에서도 상기한 단계 S302와 마찬가지로 먼저 구문 체크가 행하여지고, 구문 에러가 생긴 경우에는 프로그램 개발자는 에디터(228)로 에러부분을 수정하고, 다시 컴파일의 실행을 지시한다. 에러가 없는 경우에는 상기한 ATL 소스 프로그램은 상기한 C 오브젝트 파일로 나타내는 기계어(어느 특정 테스터 프로세서로 이해할 수 있는 기계어)와는 다른 구 테스터 프로세서 사양의 기계어로 번역되어, 오브젝트 파일(이하, ATL 오브젝트 파일이라 부른다)이 생성된다.
이와 같은 순서에 의하여 단일 C 오브젝트 파일과 ATL 오브젝트 파일군이 준비되면, 프로그램 개발자는 워크 스테이션(200)상에 있어서, 반도체 시험장치(100) 와의 통신을 가능하게 하는 컨트롤 프로그램을 기동하고, 그 컨트롤 프로그램을 사용하여 단일 C 오브젝트 파일과 ATL 오브젝트 파일군을 반도체 시험장치(100)의 테스터 프로세서(110)에 전송한다(단계 S304, 단계 S403).
계속해서 프로그램 개발자는, 상기한 컨트롤 프로그램에 대하여 단일 C 오브젝트 파일의 실행지시를 준다(단계 S305). 이것에 의하여 반도체 시험장치(100)의 테스터 프로세서(110)는 단일 C 오브젝트 파일에 기술된 알고리즘에 따라 ATL 오브젝트 파일의 실행 → 테스터 본체(120)의 원하는 시험 유닛의 가동 → 피측정 디바이스(131)로부터 얻어진 시험결과의 취득 → 데이터처리를 반복한다. 이때 데이터처리에 의하여 적절하게 가공 등이 행하여진 시험결과는, 반도체 시험장치(100)의 통신 인터페이스(140), 통신 케이블, 워크 스테이션(200)의 통신 인터페이스(241)를 거쳐 상기한 컨트롤 프로그램으로 수취할 수 있고, 그 컨트롤 프로그램에 할당된 윈도우 화면상에 표시된다.
여기서 프로그램 개발자는, 시험결과가 분명하게 이상인 경우 등의 불량을 발견한 경우, 디바이스 테스트 프로그램에 논리적인 에러가 포함되어 있다고 판단하고, 워크 스테이션(200)상에 있어서 범용 언어 디버거(231)를 기동시켜 C 소스 파일 중의 소정의 스테이트먼트에 브레이크포인트를 설정한다. 그리고 프로그램 개발자가 디버그 개시를 지시함으로써 범용 언어 디버거(231)는 다시 상기한 단계 S302 내지 단계 S305의 순서에 의하여 단일 C 오브젝트 파일을 실행하고, 실행된 스테이트먼트가 설정한 브레이크포인트에 도달한 것을 검출하면, 브레이크한 스테이트먼트의 단계에서 유효로 되어 있는 변수를 표시한다. 프로그램 개발자는, 이 변수의 확인에 의하여 논리적인 에러를 발견하면, 에디터(228)를 기동시켜 C 소스 파일을 적절히 수정하여 상기한 단계 S302 내지 단계 S305의 순서를 반복한다.
한편, 프로그램 개발자는 범용 언어 디버거(231)에 의하여 C 소스 파일의 논리적인 에러를 발견할 수 없을 때는, 계속해서 독자 사양 언어 디버거(232)를 기동시켜 ATL 소스 파일 중의 소정의 스테이트먼트에 브레이크포인트를 설정하고, 상기와 동일한 디버그처리를 행한다.
그러나 상기한 바와 같이 피제어장치(상기 예에서는 반도체 시험장치)상에서 실행시키는 프로그램이 범용 언어와 독자 사양 언어와 같이 이종 언어로 기술되는 경우에는, 독자 사양 언어에 의한 과거의 프로그램 자산을 활용할 수 있으나, 양쪽의 프로그램의 개발단계에 있어서, 각각 개별의 소스 파일이 필요하게 된다. 상기한 예에서는 C 소스 파일과 ATL 소스 파일을 각각 다른 파일로서 준비할 필요가 있다. 간단하게 말하면 범용 언어로 기술된 소스 파일 중에 독자 사양 언어에 작성된 오브젝트 파일의 호출을 매립한 경우에는 적어도 2개의 소스 파일이 필요하게 된다. 특히 어느 하나의 범용 언어 소스 파일에 대해서는, 어느 특정한 독자 사양 언어 소스 파일이 대응하기 때문에, 이들 파일은 일괄하여 관리하지 않으면 안된다.
또한 양쪽의 소스 파일의 내용으로부터, 관련되는 이종 언어의 소스 파일을 특정하는 것은 곤란하고, 한번 관리를 잘못하면 대응관계를 다시 찾아내는 데 많은 시간과 수고를 요한다는 문제가 있었다. 이 때문에 에디터상에서의 소스 파일의 수정작업이나 다른 소스 파일의 부분적인 유용에 대해서는 신중하게 하지 않을 수 없고, 상기 문제는 프로그램 개발자에게 있어서도 실수를 증가시키는 원인으로 되어 있었다.
또, 하나의 실행 프로그램에 대하여, 범용 언어 소스 파일과 독자 사양 언어 소스 파일을 준비하기 때문에, 필연으로 그것들을 컴파일함으로써 동일 수만큼 오브젝트 파일이 생성된다. 이것은 상기한 관리가 더욱 복잡해지는 것을 의미한다. 이와 같이 종래에서는 하나의 실행 프로그램에 대하여 이종 언어의 복수의 소스 파일 및 오브젝트 파일이 존재하였기 때문에, 파일관리가 번잡하게 되어 프로그램의 개발효율을 저하시킨다는 문제가 있었다.
본 발명은 상기를 감안하여 이루어진 것으로, 범용 언어 소스 파일의 프리프로세서 기술부에 독자 사양 언어의 소스 파일을 매립함으로써 독자 사양 언어의 프로그램에 의한 과거의 자산을 활용할 수 있음과 동시에, 하나의 실행 파일에 대하여 필요한 소스 파일 및 오브젝트 파일의 수를 대폭으로 감소시킬 수 있는 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법 및 디버그방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여 본 발명에 관한 프로그램 개발 지원장치는, 범용 언어 소스 프로그램의 소정영역에 독자 사양 언어 소스 프로그램이 기술된 구성의 이종 언어 혼재 소스 프로그램으로부터 소정의 프로그램 실행장치상에서 실행 가능한 프로그램 파일을 작성하기 위한 프로그램 개발 지원장치에 있어서, 상기 독자 사양 언어 소스 프로그램을 컴파일하여 독자 사양 언어 오브젝트 코드를 생성하는 독자 사양 언어 컴파일수단[뒤에서 설명하는 독자 사양 언어 컴파일러(30)에 상당]과, 상기이종 언어 혼재 소스 프로그램 내의 상기 범용 언어 소스 프로그램 기술부분을 컴파일하여 범용 언어 오브젝트 코드를 생성하는 범용 언어 컴파일수단[뒤에서 설명하는 범용 언어 컴파일러(29)에 상당]과, 상기 이종 언어 혼재 소스 프로그램으로부터 상기 독자 사양 언어 소스 프로그램을 추출하고, 추출한 독자 사양 언어 소스 프로그램을 지정하여 상기 독자 사양 언어 컴파일수단을 실행시킴과 동시에, 상기 이종 언어 혼재 소스 프로그램을 지정하여 상기 범용 언어 컴파일수단을 실행시켜 얻어진 독자 사양 언어 오브젝트 코드와 범용 언어 오브젝트 코드를 결합하여 오브젝트 파일을 생성하는 통합 컴파일수단[뒤에서 설명하는 통합 컴파일러(34)에 상당]과, 상기 통합 컴파일수단에 의하여 생성된 적어도 하나의 오브젝트 파일로부터 상기 프로그램 파일을 생성하는 링크수단[뒤에서 설명하는 링커(33)에 상당]을 구비한 것을 특징으로 하고 있다.
또, 본 발명에 관한 프로그램 실행장치는, 범용 언어 소스 프로그램의 오브젝트 코드와 독자 사양 언어 소스 프로그램의 오브젝트 코드가 혼재된 프로그램 파일을 실행하는 프로그램 실행장치[뒤에서 설명하는 반도체 시험장치(11)에 상당]에 있어서, 상기 프로그램 파일의 실행 개시시에 상기 범용 언어 소스 프로그램의 오브젝트 코드와 상기 독자 사양 언어 소스 프로그램의 오브젝트 코드를 메모리에 로드하는 것을 특징으로 하고 있다.
또, 본 발명에 관한 컴파일방법은, 범용 언어 소스 프로그램의 소정영역에 독자 사양 언어 소스 프로그램이 기술된 구성의 이종 언어 혼재 소스 프로그램으로부터 소정의 프로그램 실행장치상에서 실행 가능한 프로그램 파일을 작성하기 위한 컴파일방법에 있어서, 상기 이종 언어 혼재 소스 프로그램으로부터 상기 독자 사양 언어 소스 프로그램을 추출하는 독자 사양 언어 소스 프로그램 추출단계(뒤에서 설명하는 단계 S121에 상당)와, 추출된 독자 사양 언어 소스 프로그램을 컴파일하여 독자 사양 언어 오브젝트 코드를 생성하는 독자 사양 언어 컴파일 단계(뒤에서 설명하는 단계 S123에 상당)와, 상기 이종 언어 혼재 소스 프로그램 중의 상기 범용 언어 소스 프로그램 기술부분을 컴파일하여 범용 언어 오브젝트 코드를 생성하는 범용 언어 컴파일 단계(뒤에서 설명하는 단계 S122에 상당)와, 상기 독자 사양 언어 오브젝트 코드와 상기 범용 언어 오브젝트 코드를 결합하여 오브젝트 파일을 생성하는 오브젝트 파일생성단계(뒤에서 설명하는 단계 S124에 상당)와, 상기 오브젝트 파일 생성단계에 의하여 생성된 적어도 하나의 오브젝트 파일로부터 상기 프로그램 파일을 생성하는 링크단계(뒤에서 설명하는 단계 S130에 상당)를 포함한 것을 특징으로 하고 있다.
또, 본 발명에 관한 디버그방법은, 범용 언어 소스 프로그램의 소정영역에 독자 사양 언어 소스 프로그램이 기술된 구성의 이종 언어 혼재 소스 프로그램으로부터 작성된 소정의 프로그램 실행장치상에서 실행 가능한 프로그램 파일을 디버그하기 위한 디버그방법에 있어서, 상기 이종 언어 혼재 소스 프로그램 내의 스테이트먼트에 브레이크포인트를 설정하는 브레이크포인트 설정단계와, 상기 프로그램 파일의 실행시에 상기 브레이크포인트로 상기 프로그램 파일을 정지시킴과 동시에, 정지한 프로그램 파일의 상기 스테이트먼트가 상기 범용 언어 소스 프로그램에 속하는 경우에 범용 언어 디버거를 기동하고(뒤에서 설명하는 단계 S203에 상당), 정지한 프로그램 파일의 상기 스테이트먼트가 상기 독자 사양 언어 소스 프로그램에 속하는 경우에 독자 사양 언어 디버거를 기동하는(뒤에서 설명하는 단계 S206에 상당) 디버거 기동단계와, 상기 범용 언어 디버거와 상기 독자 사양 언어 디버거로부터 얻어진 디버그정보(뒤에서 설명하는 단계 S204, 단계 S207에 상당)를 공통하는 윈도우 화면에 표시하는 디버그정보 표시단계(뒤에서 설명하는 단계 S205에 상당)를 포함한 것을 특징으로 하고 있다.
또, 본 발명에 관한 컴퓨터 판독 가능한 기록매체는, 상기 컴파일방법을 컴퓨터에 실행시키는 것을 특징으로 하고 있다.
또, 본 발명에 관한 컴퓨터 판독 가능한 기록매체는, 상기 디버그방법을 컴퓨터에 실행시키는 것을 특징으로 하고 있다.
도 1은 실시형태에 관한 반도체 시험 시스템의 개략 구성을 나타내는 블럭도,
도 2는 디바이스 테스트 프로그램의 개발과 실행순서를 나타낸 플로우차트,
도 3은 C + ATL 소스 프로그램의 기술예를 나타내는 도,
도 4는 통합 컴파일러에 의한 컴파일처리를 설명하기 위한 플로우차트,
도 5는 ATL 소스 파일의 생성처리를 설명하기 위한 설명도,
도 6은 C + ATL 오브젝트 파일의 구성을 나타내는 도,
도 7은 디버거 선택 루틴을 나타내는 플로우차트,
도 8은 ATL 기술부 내에서 브레이크한 상태의 통합 디버거의 실행화면의 예를 나타내는 도,
도 9는 C 언어 기술부 내에서 브레이크한 상태의 통합 디버거의 실행화면의 예를 나타내는 도,
도 10은 종래의 반도체 시험 시스템의 개략 구성을 나타내는 블럭도,
도 11은 종래의 반도체 시험 시스템의 워크 스테이션의 개략 구성을 나타내는 블럭도,
도 12는 종래의 디바이스 테스트 프로그램의 개발과 실행순서를 나타내는 플로우차트이다.
이하에, 본 발명에 관한 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법 및 디버그방법의 실시형태를 도면에 의거하여 상세하게 설명한다. 이 실시형태에 의하여 본 발명은 한정되지 않는다.
이 실시형태에서는 본 발명의 특징의 이해를 용이하게 하기 위하여 상기한 종래기술의 설명과 마찬가지로 본 발명을 반도체 시험장치와 워크 스테이션으로 구성되는 반도체 시험 시스템에 적용한 경우의 형태가 설명된다. 구체적으로는 본 발명에 관한 프로그램 개발 지원장치가, 반도체 시험 시스템의 워크 스테이션에 상당하고, 본 발명에 관한 프로그램 실행장치가 반도체 시험 시스템의 반도체 시험장치에 상당하며, 본 발명에 관한 컴파일방법 및 디버그방법이 상기 반도체 시험 시스템상에서의 컴파일방법 및 디버그방법에 상당한다.
도 1은 본 실시형태에 관한 반도체 시험 시스템을 나타내는 블럭도이다. 도 1에 나타내는 반도체 시험 시스템은, 통신 케이블로 접속된 워크 스테이션(10)과 반도체 시험장치(11)를 구비하여 구성된다.
워크 스테이션(10)의 기본구성은, 도 11에 나타낸 종래의 반도체 시험 시스템의 워크 스테이션(200)과 동일하고, 도 1에 있어서의 프로세서(20)와, 통신 인터페이스(41)와, 하드 디스크장치(42)와, 마우스(43)와, 키보드(44)와, 디스플레이장치(45)는 각각 도 11에 나타낸 프로세서(220), 통신 인터페이스(241), 하드 디스크장치(242), 마우스(243), 키보드(244), 디스플레이장치(245)에 각각 대응한다.
또, 프로세서(20) 내부에 있어서, 메모리(도시 생략)에 저장되는 OS 커넬(21), GUI 처리부(22), 통신 버스 드라이버(23), 하드 디스크 드라이버(24), 마우스 드라이버(25), 키보드 드라이버(26), 디스플레이 드라이버(27), 에디터(28), 범용 언어 컴파일러(29), 독자 사양 언어 컴파일러(30), 범용 언어 디버거(31), 독자 사양 언어 디버거(32), 링커(33)도 역시 각각 도 11에 나타낸 OS 커넬(221), GUI 처리부(222), 통신 버스 드라이버(223), 하드 디스크 드라이버(224), 마우스 드라이버(225), 키보드 드라이버(226), 디스플레이 드라이버(227), 에디터(228), 범용 언어 컴파일러(29), 독자 사양 언어 컴파일러(230), 범용 언어 디버거(231), 독자 사양 언어 디버거(232), 링커(233)에 각각 대응한다.
본 실시형태에서 설명하는 워크 스테이션(10)은 범용 언어 컴파일러(29)와 독자 사양 언어 컴파일러(30)의 상위 어플리케이션에 위치하는 통합 컴파일러(34)를 가지고 있는 점에서, 종래의 워크 스테이션(200)과 다르다. 바꾸어 말하면 이 워크 스테이션(10)은 통합 컴파일러(34)로부터 범용 언어 컴파일러(29)와 독자 사양 언어 컴파일러(30)를 각각 이용할 수 있다.
또한 본 실시형태에서 설명하는 워크 스테이션(10)은 범용 언어 디버거(31)와 독자 사양 언어 디버거(32)의 상위 어플리케이션에 위치하는 통합 디버거(35)를 가지고 있는 점에서, 종래의 워크 스테이션(200)과 다르다. 즉, 통합 컴파일러(34)와 마찬가지로 이 워크 스테이션(10)은 통합 디버거(35)로부터 범용 언어 디버거(31)와 독자 사양 언어 디버거(32)를 각각 이용할 수 있다.
또, 도 1에 나타내는 반도체 시험 시스템에서는 반도체 시험장치(11)는 워크 스테이션(10)에 접속되어 있으나, 이 반도체 시험장치(11)의 내부 구성은 도 10에 나타낸 종래의 반도체 시험장치(100)와 동일하다. 그러나 이 반도체 시험장치(11)는 워크 스테이션(10)에 있어서 개발되는 프로그램의 형태에 의존하고, 테스터 프로세서의 동작이 종래와 일부 다르다.
다음에 이 반도체 시험 시스템에 있어서, 디바이스 테스트 프로그램의 개발과 실행의 흐름이 설명된다. 도 2는 본 실시형태에 있어서의 디바이스 테스트 프로그램의 개발과 실행순서를 나타낸 플로우차트이다. 여기서는 도 12의 설명과 마찬가지로 디바이스 테스트 프로그램이 범용 언어 프로그램과 독자 사양 언어 프로그램으로 구성되어 있고, 범용 언어 프로그램으로서 C 언어를 채용하고, 독자 사양 언어 프로그램으로서 ATL(어드밴티스트사 독자 규격)을 채용한 경우를 예로 든다.
먼저 프로그램 개발자는, 워크 스테이션(10)상에 있어서 에디터(28)를 기동시켜 소스 프로그램을 작성한다(단계 S110). 이 소스 프로그램은 범용 언어인 C 언어로 기술되나, 도 12에서 설명한 C 소스 파일의 내용과는 달리, 프리프로세서 기술부에 독자 사양 언어인 ATL 소스 파일의 내용을 기술한다. 이 소스 프로그램을 C + ATL 소스 프로그램이라 부른다.
도 3은 C + ATL 소스 프로그램의 기술예를 나타내는 도면이다. 또한 도 3에 있어서 왼쪽 끝에 배치된 「숫자 :」는 설명의 편의를 위하여 사용되는 행번호를 나타내나, 실제의 프로그램동작에 있어서는 무시된다. 이하의 C + ATL 소스 프로그램의 내용 설명에서는 이 행번호에 의하여 각 스테이트먼트가 참조된다.
C 언어 컴파일러는, 선두가 # 로 계속되는 스테이트먼트를 프리프로세서 코멘드라고 인식한다. 도 3에 나타내는 C + ATL 소스 프로그램에서는 행번호 1의 # include, 행번호 3, 4, 5의 # pragma가 그 프리프로세서 코멘드에 상당한다. # include는 헤더파일「AT/hybrid. h」의 기술내용을 단지 그 위치에 전개하는 코멘드 로서, 행번호 10 이후에 계속되는 메인 함수 내에 있어서 필요하게 되는 내용이다.
한편, # pragma는, C 언어와의 전반적인 호환성을 유지하면서 머신 또는 0S에 고유의 기능을 실현하는 특별한 프리프로세서 코멘드이다. 따라서 # pragma는 정의상, 머신 또는 OS에 고유이며, 통상 컴파일러마다 다르다. # pragma는 원래 프리프로세서에 새로운 기능을 주기도 하고, 임플리먼트에 의존하는 정보를 컴파일러에 주기 위하여 이용되나, 본 실시형태에서 작성되는 C + ATL 소스 프로그램에서는 # pragma에 의하여 건네지는 토큰으로서 독자 사양 언어인 ATL의 기술을 매립한다. 이 # pragma에 의하여 건네지는 ATL의 기술의 처리는 뒤에서 설명한다.
도 3에 나타내는 C + ATL 소스 프로그램에 있어서, 행번호 10 내지 28에 기술되어 있는 내용은, 종래의 반도체 시험 시스템의 워크 스테이션상에 있어서 작성되는 내용과 동일하고, 그 기술 중에 있어서 ATL 오브젝트 파일의 호출이나 데이터처리가 규정된다.
C + ATL 소스 프로그램의 작성이 끝나면, 프로그램 개발자는 통합 컴파일러(34)에 대하여 작성한 C + ATL 소스 프로그램의 파일(이하, 필요한 헤더파일 등을 포함하여 C + ATL 소스 파일이라 부른다)을 지정하여 컴파일을 실행시킨다(단계 S120). 이 컴파일의 실행에 있어서는, 먼저 구문 체크가 행하여지고, 구문 에러가 생긴 경우에는 프로그램 개발자는 에디터(28)로 에러부분을 수정하고, 다시 컴파일의 실행을 지시한다. 에러가 없는 경우에 비로소 오브젝트 파일을 생성하기 위한 컴파일처리가 개시된다.
도 4는 통합 컴파일러(34)에 의한 컴파일처리를 설명하기 위한 플로우차트이다. 통합 컴파일러(34)는 단계 S110에 있어서 작성된 C + ATL 소스 파일에 있어서 구문 에러를 발견할 수 없었을 때는 계속해서 그 C + ATL 소스 파일로부터 ATL 기술부를 추출하여 ATL 소스 파일을 생성한다(단계 S121). 도 5는 이 ATL 소스 파일의 생성처리를 설명하기 위한 설명도이다. ATL 소스 파일의 생성처리는 상기한 바와 같이 C + ATL 소스 파일의 프리프로세서 기술부로부터 # pragma를 식별하고, # pragma의 다음에 계속되는 토큰을 해석함으로써 개시된다. 도 5에 나타내는 예에서는 #pragma직후의 atl 이, 그 후에 계속되는 정보가 ATL 기술부인 것을 나타내는 키워드가 된다.
도 5의 예를 사용하여 구체적인 설명을 행하면, 통합 컴파일러(34)는 행번호3에 있어서 # pragma atl을 인식하면, 그 다음에 계속되는 키워드의 name을 인출하고, 그 키워드 name에 계속되는 더블 쿼테이션으로 둘러싸인 기술, 즉 SAMPLE이 프로그램명이라고 해석된다. 이 해석에 의하여 ATL 소스 파일의 선두부에 PRO SAMPLE이 삽입된다. 다음에 통합 컴파일러(34)는 행번호 4에 있어서, # pragma atl을 인식하면, 그 후에 계속되는 키워드의 socket을 인출하고, 그 키워드 socket에 계속되는 더블 쿼테이션으로 둘러싸인 기술, 즉 SSOC가 사용하는 ATL의 소킷 프로그램명이라고 해석된다. 이 해석에 의하여 ATL 소스 파일 내의 PRO SAMPLE의 다음에 SSOC가 삽입된다.
또한 통합 컴파일러(34)는 행번호 5에 있어서, # pragma atl을 인식하면, 그 다음에 계속되는 키워드의 proc를 인출하고, 그 키워드 proc의 직후의 문자열과 그 후에 계속되는 더블 쿼테이션으로 둘러 싸인 기술, 즉,
P1 (ARG1, ARG2 (2)) " {WRITE " ARG1 = ", ARG1, /WRITE " ARG2 = ", ARG2, /}"가 함수정의라고 해석한다. 이 해석에 의하여 ATL 소스 파일에,
P1 : ARGUMENT (ARG1, ARG2 (2))
WRITE " ARG1 = ", ARG1, /
WRITE " ARG2 = ", ARG2, /
GOTO CONTINUE
가 추기된다.
그리고 통합 컴파일러(34)는 C + ATL 소스 파일에 있어서, # pragma atl을 발견할 수 없는 채로 C + ATL 소스 파일의 최종 행(행번호 28)에 도달하면 ATL 소스 파일의 제일 마지막에 END를 삽입하여 그 ATL 소스 파일의 작성을 끝낸다.
ATL 소스 파일의 작성이 끝나면, 통합 컴파일러(34)는 C + ATL 소스 파일의 C 언어 기술부의 컴파일, 즉 C 오브젝트 코드의 생성을 행한다(단계 S122). 이 컴파일은 통상의 C 컴파일러[범용 언어 컴파일러(29)에 상당한다]에 의하여 처리되고, 상기한 # pragma의 기술부분은 무시된다. 통합 컴파일러(34)가 C 컴파일러를 호출하여 처리시킨다고 하고 있으나, 통합 컴파일러(34) 자체에 C 컴파일러의 기능을 도입하고, 상기한 ATL 소스 파일의 생성과 병행하여 C 오브젝트 코드의 생성이 행하여져도 좋다. 이 경우, 도 1에 나타낸 범용 언어 컴파일러(29)는 불필요하게 된다.
C 오브젝트 코드의 생성이 끝나면 통합 컴파일러(34)는 단계 S121에 있어서 생성된 ATL 소스 파일의 컴파일, 즉 ATL 오브젝트 코드의 생성을 행한다(단계 S123). 이 컴파일은 ATL 컴파일러[독자 사양 언어 컴파일러(30)에 상당한다]의 호출에 의하여 실행되고, 도 12의 단계 S402와 마찬가지로 상기한 C 오브젝트 코드로 나타내는 기계어(어느 특정 테스터 프로세서로 이해할 수 있는 기계어)와는 다른 구 테스터 프로세서 사양의 기계어로의 번역을 행한다.
ATL 오브젝트 코드의 생성이 끝나면, 통합 컴파일러(34)는 단계 S122에 있어서 생성된 C 오브젝트 코드에, 단계 S121에 있어서 생성된 ATL 오브젝트 코드를 결합하고, 다시 그 ATL 오브젝트 코드가 저장된 위치정보(ATL 오브젝트 코드 개시위치)를 부가한 오브젝트 파일(이하, C + ATL 오브젝트 파일이라 부른다)을 생성한다 (단계 S124). 도 6은 이 C + ATL 오브젝트 파일의 구성을 나타내는 도면이다. 도 6에 나타내는 바와 같이 C + ATL 오브젝트 파일은, C 오브젝트 코드에 계속해서 ATL 오브젝트 코드가 배치된다. 상기 도면에 있어서 ATL 오브젝트 코드의 위치정보 등의 부가정보의 도시는 생략되어 있다.
이 통합 컴파일러(34)에 의한 컴파일처리는, 상기와 마찬가지로 작성된 복수의 C + ATL 소스 파일에 대하여 행하여지고, 이에 의하여 복수의 C + ATL 오브젝트 파일이 준비된다. 이와 같이 하여 통합 컴파일러(34)에 의한 컴파일처리가 끝나면 프로그램 개발자는 링커(33)에 대하여 생성된 복수의 C + ATL 오브젝트 파일이나 그 밖에 필요한 라이브러리 파일을 지정하여 링크를 실행시킨다(도 2의 단계 S130).
링커(33)는 복수의 C + ATL 오브젝트 파일이나 그 밖에 필요한 라이브러리 파일에 더하고, 상기 각 C + ATL 오브젝트 파일로부터 ATL 오브젝트 코드부분을 로드하기 위한 로드 프로그램을 준비하고, 그들을 링크함으로써 반도체 시험장치(11)의 테스터 프로세서상에서 직접 실행 가능한 단일 오브젝트 파일을 생성한다.
이와 같은 순서에 의하여 단일 오브젝트 파일이 준비되면, 프로그램 개발자는 워크 스테이션(10)상에 있어서, 반도체 시험장치(11)와의 통신을 가능하게 하는 컨트롤 프로그램을 기동하고, 그 컨트롤 프로그램을 사용하여 상기 단일 오브젝트 파일을 반도체 시험장치(11)의 테스터 프로세서에 전송한다(단계 S140).
계속해서 프로그램 개발자는, 상기한 컨트롤 프로그램에 대하여 단일 오브젝트 파일의 실행지시를 준다(단계 S150). 이에 의하여 반도체 시험장치(11)의 테 스터 프로세서는, 먼저 단일 오브젝트 파일에 포함되어 있는 로드 프로그램에 따라 상기 단일 오브젝트 파일 내에 배치되어 있는 C 오브젝트 코드와 ATL 오브젝트 코드를 메모리상에 로드한다. 계속해서 테스터 프로세서는 로드된 C 오브젝트 코드에 기술된 알고리즘에 따라 동일하게 로드되어 있는 ATL 오브젝트 코드의 실행 → 테스터 본체의 원하는 시험 유닛의 가동 → 피측정장치로부터 얻어진 시험결과의 취득 → 데이터처리를 반복한다. 이때 데이터처리에 의하여 적절하게 가공 등이 행하여진 시험결과는 종래와 마찬가지로 반도체 시험장치(11)의 통신 인터페이스, 통신 케이블, 워크 스테이션(10)의 통신 인터페이스(41)를 거쳐, 상기한 컨트롤 프로그램으로 수취할 수 있어, 그 컨트롤 프로그램에 할당된 윈도우 화면상에 표시된다.
또한, 여기서는 단일 오브젝트 파일 내에, 로드 프로그램이 포함되어 있다고 하였으나, 반도체 시험장치(11)의 테스터 프로세서 내에 있어서, 미리 그 로드 프로그램이 판독되고, 워크 스테이션(10)으로부터의 실행지시에 따라 최초로 이 로드 프로그램이 기동되어도 좋다.
다음에 본 실시형태에 있어서의 반도체 시험 시스템의 디버그처리가 설명된다. 프로그램 개발자는, 단계 S150의 실행에 의하여 얻은 시험결과가 분명하게 이상 인 경우 등의 불량을 발견한 경우, 종래와 마찬가지로 디바이스 테스트 프로그램에 대하여 디버그처리를 행한다. 먼저 프로그램 개발자는 워크 스테이션(10)상에 있어서, 통합 디버거(35)를 기동시켜 C + ATL 소스 파일 중의 소정의 스테이트먼트에 브레이크포인트를 설정한다.
그리고 프로그램 개발자가 디버그 개시를 지시함으로써, 통합 디버거(35)는 다시 상기한 단계 S120 내지 단계 S150의 순서에 의하여 단일 오브젝트 파일을 실행하고, 실행된 스테이트먼트가 설정한 브레이크포인트에 도달한 것을 검출하면, C 디버거[범용 언어 디버거(31)에 상당한다]와 ATL 디버거[독자 사양 언어 디버거(32)에 상당한다] 중 어느 하나의 디버거를 기동시킬지의 디버거 선택 루틴을 실행한다.
도 7은 이 디버거 선택 루틴을 나타내는 플로우차트이다. 통합 디버거(35)는 단일 오브젝트 파일 중에 있어서 차례로 실행되고 있는 스테이트먼트가 브레이크포인트에 도달하면, 그 브레이크포인트가 설정된 스테이트먼트를 표시한다(단계 S201). 그리고 그 스테이트먼트가 ATL 오브젝트 코드부에 상당하면(단계 S202 : Yes), ATL 디버거를 기동하고(단계 S206), ATL 디버거로부터 브레이크한 스테이트먼트에 포함되는 변수 등의 디버그정보를 취득한다(단계 S207). 또한 ATL 디버거는 상기한 브레이크포인트 설정시에 통합 디버거(35)에 의하여 ATL 오브젝트 코드부의 브레이크포인트설정정보를 취득하고 있다.
통합 디버거(35)는 ATL 디버거로부터 디버그정보를 취득하면, 브레이크시에 유효로 되어 있는 지정변수(심벌)를 표시한다(단계 S205). 도 8은 통합 디버거(35)의 실행화면의 예를 나타내는 도면이고, 특히 ATL 기술부 내에서 브레이크한 상태를 나타내고 있다. 도 8에 있어서 통합 디버거(35)는 실행 윈도우(50) 내에 윈도우표시에 표준으로서 부가되는 타이틀바나 메뉴바에 더하여 브레이크포인트 설정영역(51), 소스 표시영역(52), 심벌 표시영역(53)을 가진다. 도 8에서는 C + ATL 소스 프로그램 중의 ATL 기술부 내에서 브레이크한 상태로서 브레이크포인트가 설정된 행번호 5의 스테이트먼트가 소스 표시영역(52) 내에 표시됨과 동시에, 심벌 표시영역(53) 내에 그 스테이트먼트로 사용되고 있는 변수와 변수에 저장된 값이 표시되어 있다.
한편, 통합 디버거(35)는 브레이크한 스테이트먼트가 C 오브젝트 코드부에 상당하면(단계 S202 : No), C 디버거를 기동하고(단계 S203), C 디버거로부터 브레이크한 스테이트먼트에 포함되는 변수 등의 디버그정보를 취득한다(단계 S204). 또한 C 디버거는 상기한 브레이크포인트 설정시에, 통합 디버거(35)에 의하여 C 오브젝트 코드부의 브레이크포인트 설정정보를 취득하고 있다.
통합 디버거(35)는 C 디버거로부터 디버그정보를 취득하면, 브레이크시에 유효로 되어 있는 지정변수(심벌)를 표시한다(단계 S205). 도 9는 통합 디버거(35)의 실행화면의 예를 나타내는 도면이고, 특히 C 언어 기술부 내에서 브레이크한 상태를 나타내고 있다. 도 9에 나타내는 통합 디버거(35)의 실행 윈도우(50)는 도 8과 동일한 구성이다. 도 9에서는 C + ATL 소스 프로그램 중의 C 언어 기술부 내에서 브레이크한 상태로서 브레이크포인트가 설정된 행번호 15의 스테이트먼트가 소스 표시영역(52) 내에 표시됨과 동시에, 심벌 표시영역(53) 내에 그 스테이트먼트로 사용되고 있는 변수와 변수에 저장된 값이 표시되어 있다.
프로그램 개발자는, 이 통합 디버거(35)의 윈도우 화면상에 표시된 변수의 값을 확인함으로써 논리적인 에러를 발견한 경우, 에이터(28)를 기동시켜 C + ATL 소스 파일을 적절하게 수정하여 상기한 단계 S120 내지 단계 S150의 순서를 반복한 다.
이상에서 설명한 바와 같이 실시형태에 관한 반도체 시험 시스템, 즉 본 발명에 관한 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법 및 디버그방법에 의하면, 독자 사양 언어 프로그램인 ATL 소스 자체를 범용 언어 프로그램인 C 언어 소스 내에 매립함으로써 종래와 따로 관리되고 있던 양쪽의 소스를 하나의 C + ATL 소스 파일로서 취급할 수 있기 때문에, 파일관리를 편안하게 하여 프로그램의 개발효율을 향상시킬 수 있다.
또한 본 실시형태에서는 본 발명에 관한 프로그램 개발 지원장치와 프로그램실행장치를 각각 워크 스테이션과 반도체 시험장치에 적용한 형태를 예시하였으나, 프로그램 개발 지원장치를 범용적인 컴퓨터 시스템으로 하고, 프로그램 실행장치를 그 컴퓨터 시스템과 통신 가능한 측정장치나 제어장치에 적용할 수 있는 것은 물론이다.
이상으로 설명한 바와 같이, 본 발명에 관한 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법 및 디버그방법에 의하면, 독자 사양 언어 프로그램 자체를 범용 언어 프로그램 내에 매립함으로써, 종래 따로 관리되고 있던 양쪽의 소스 프로그램을 소스 파일뿐만 아니라, 컴파일에 의하여 작성되는 오브젝트 파일의 단계에 있어서도 하나의 파일로서 처리할 수 있기 때문에, 파일관리를 편안하게 하여 프로그램의 개발 효율을 향상시킬 수 있다는 효과를 가진다.
이상과 같이, 본 발명에 관한 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법 및 디버그방법은, 고성능 전자기기의 프로그램(펌웨어)를 효율적으로 개발하고, 또한 그 프로그램의 관리를 용이하게 하는 데 유용하며, 특히 반도체 시험장치의 프로그램의 개발 및 관리에 적합하다.

Claims (15)

  1. 범용 언어 소스 프로그램의 소정영역에 독자 사양 언어 소스 프로그램이 기술된 구성의 이종 언어 혼재 소스 프로그램으로부터 소정의 프로그램 실행장치상에서 실행 가능한 프로그램 파일을 작성하기 위한 프로그램 개발 지원장치에 있어서,
    상기 독자 사양 언어 소스 프로그램을 컴파일하여 독자 사양 언어 오브젝트 코드를 생성하는 독자 사양 언어 컴파일수단과,
    상기 이종 언어 혼재 소스 프로그램 내의 상기 범용 언어 소스 프로그램 기술부분을 컴파일하여 범용 언어 오브젝트 코드를 생성하는 범용 언어 컴파일수단과,
    상기 이종 언어 혼재 소스 프로그램으로부터 상기 독자 사양 언어 소스 프로그램을 추출하고, 추출한 독자 사양 언어 소스 프로그램을 지정하여 상기 독자 사양 언어 컴파일수단을 실행시킴과 동시에, 상기 이종 언어 혼재 소스 프로그램을 지정하여 상기 범용 언어 컴파일수단을 실행시시켜 얻어진 독자 사양 언어 오브젝트 코드와 범용 언어 오브젝트 코드를 결합하여 오브젝트 파일을 생성하는 통합 컴파일수단과,
    상기 통합 컴파일수단에 의하여 생성된 적어도 하나의 오브젝트 파일로부터 상기 프로그램 파일을 생성하는 링크수단을 구비한 것을 특징으로 하는 프로그램 개발 지원장치.
  2. 제 1항에 있어서,
    상기 통합 컴파일수단은, 상기 오브젝트 파일에 상기 독자 사양 언어 오브젝트 코드 및/또는 상기 범용 언어 오브젝트 코드의 코드 위치정보를 부가하는 것을 특징으로 하는 프로그램 개발 지원장치.
  3. 제 1항에 있어서,
    상기 프로그램 파일을 상기 프로그램 실행장치에 전송하는 프로그램 전송수단을 구비한 것을 특징으로 하는 프로그램 개발 지원장치.
  4. 제 3항에 있어서,
    상기 프로그램 실행장치에 대하여 상기 프로그램 실행장치에 전송된 프로그램 파일을 실행시키는 지시를 주는 프로그램 실행장치 컨트롤수단을 구비한 것을 특징으로 하는 프로그램 개발 지원장치.
  5. 제 1항에 있어서,
    상기 이종 언어 혼재 소스 프로그램 내의 스테이트먼트에 브레이크포인트를 설정하는 브레이크포인트 설정수단과,
    상기 프로그램 파일의 실행시에 상기 브레이크포인트로 상기 프로그램 파일을 정지시킴과 동시에, 정지한 프로그램 파일의 상기 스테이트먼트가 상기 범용 언어 소스 프로그램에 속하는 경우에 범용 언어 디버거를 기동하고, 정지한 프로그램 파일의 상기 스테이트먼트가 상기 독자 사양 언어 소스 프로그램에 속하는 경우에 독자 사양 언어 디버거를 기동하는 것을 특징으로 하는 프로그램 개발 지원장치.
  6. 제 5항에 있어서,
    상기 범용 언어 디버거와 상기 독자 사양 언어 디버거로부터 얻어진 디버그정보를 공통하는 윈도우 화면에 표시하는 것을 특징으로 하는 프로그램 개발 지원장치.
  7. 제 1항에 있어서,
    상기 범용 언어는 C 언어이고, 상기 독자 사양 언어 소스 프로그램은 상기 범용 언어 소스 프로그램의 프리프로세서 코멘드에 의하여 상기 범용 언어 소스 프로그램 내에 기술된 것을 특징으로 하는 프로그램 개발 지원장치.
  8. 제 7항에 있어서,
    상기 프리프로세서 코멘드는, # pragma인 것을 특징으로 하는 프로그램 개발 지원장치.
  9. 제 1항에 있어서,
    상기 프로그램 실행장치는, 반도체 시험장치인 것을 특징으로 하는 프로그램 개발 지원장치.
  10. 범용 언어 소스 프로그램의 오브젝트 코드와 독자 사양 언어 소스 프로그램의 오브젝트 코드가 혼재한 프로그램 파일을 실행하는 프로그램 실행장치에 있어서,
    상기 프로그램 파일의 실행 개시시에 상기 범용 언어 소스 프로그램의 오브젝트 코드와 상기 독자 사양 언어 소스 프로그램의 오브젝트 코드를 메모리에 로드하는 것을 특징으로 하는 프로그램 실행장치.
  11. 제 10항에 있어서,
    상기 프로그램 실행장치는 반도체 시험장치인 것을 특징으로 하는 프로그램 실행장치.
  12. 범용 언어 소스 프로그램의 소정영역에 독자 사양 언어 소스 프로그램이 기술된 구성의 이종 언어 혼재 소스 프로그램으로부터 소정의 프로그램 실행장치상에서 실행 가능한 프로그램 파일을 작성하기 위한 컴파일방법에 있어서,
    상기 이종 언어 혼재 소스 프로그램으로부터 상기 독자 사양 언어 소스 프로그램을 추출하는 독자 사양 언어 소스 프로그램 추출단계와,
    추출된 독자 사양 언어 소스 프로그램을 컴파일하여 독자 사양 언어 오브젝트 코드를 생성하는 독자 사양 언어 컴파일 단계와,
    상기 이종 언어 혼재 소스 프로그램 중의 상기 범용 언어 소스 프로그램 기 술부분을 컴파일하여 범용 언어 오브젝트 코드를 생성하는 범용 언어 컴파일 단계와,
    상기 독자 사양 언어 오브젝트 코드와 상기 범용 언어 오브젝트 코드를 결합하여 오브젝트 파일을 생성하는 오브젝트 파일 생성단계와,
    상기 오브젝트 파일 생성단계에 의하여 생성된 적어도 하나의 오브젝트 파일로부터 상기 프로그램 파일을 생성하는 링크단계를 포함한 것을 특징으로 하는 컴파일방법.
  13. 범용 언어 소스 프로그램의 소정영역에 독자 사양 언어 소스 프로그램이 기술된 구성의 이종 언어 혼재 소스 프로그램으로부터 작성된 소정의 프로그램 실행장치상에서 실행 가능한 프로그램 파일을 디버그하기 위한 디버그방법에 있어서,
    상기 이종 언어 혼재 소스 프로그램내의 스테이트먼트에 브레이크포인트를 설정하는 브레이크포인트 설정단계와,
    상기 프로그램 파일의 실행시에 상기 브레이크포인트로 상기 프로그램 파일을 정지시킴과 동시에, 정지한 프로그램 파일의 상기 스테이트먼트가 상기 범용 언어 소스 프로그램에 속하는 경우에 범용 언어 디버거를 기동하고, 정지한 프로그램 파일의 상기 스테이트먼트가 상기 독자 사양 언어 소스 프로그램에 속하는 경우에 독자 사양 언어 디버거를 기동하는 디버거 기동단계와,
    상기 범용 언어 디버거와 상기 독자 사양 언어 디버거로부터 얻어진 디버그정보를 공통하는 윈도우 화면에 표시하는 디버그정보 표시단계를 포함한 것을 특징 으로 하는 디버그방법.
  14. 범용 언어 소스 프로그램의 소정영역에 독자 사양 언어 소스 프로그램이 기술된 구성의 이종 언어 혼재 소스 프로그램으로부터 소정의 프로그램 실행장치상에서 실행 가능한 프로그램 파일을 작성하기 위한 단계를 컴퓨터에 실행시키는 프로그램을 기록한 컴퓨터판독 가능한 기록매체에 있어서,
    상기 이종 언어 혼재 소스 프로그램으로부터 상기 독자 사양 언어 소스 프로그램을 추출하는 독자 사양 언어 소스 프로그램 추출단계와,
    추출된 독자 사양 언어 소스 프로그램을 컴파일하여 독자 사양 언어 오브젝트 코드를 생성하는 독자 사양 언어 컴파일 단계와,
    상기 이종 언어 혼재 소스 프로그램 중의 상기 범용 언어 소스 프로그램 기술부분을 컴파일하여 범용 언어 오브젝트 코드를 생성하는 범용 언어 컴파일 단계와,
    상기 독자 사양 언어 오브젝트 코드와 상기 범용 언어 오브젝트 코드를 결합하여 오브젝트 파일을 생성하는 오브젝트 파일 생성단계와,
    상기 오브젝트 파일 생성단계에 의하여 생성된 적어도 하나의 오브젝트 파일로부터 상기 프로그램 파일을 생성하는 링크단계를 포함하는 것을 특징으로 하는 컴퓨터판독 가능한 기록매체.
  15. 범용 언어 소스 프로그램의 소정영역에 독자 사양 언어 소스 프로그램이 기 술된 구성의 이종 언어 혼재 소스 프로그램으로부터 작성된 소정의 프로그램 실행장치상에서 실행 가능한 프로그램 파일을 디버그하기 위한 단계를 컴퓨터에 실행시키는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체에 있어서,
    상기 이종 언어 혼재 소스 프로그램 내의 스테이트먼트에 브레이크포인트를 설정하는 브레이크포인트 설정단계와,
    상기 프로그램 파일의 실행시에 상기 브레이크포인트로 상기 프로그램 파일을 정지시킴과 동시에, 정지한 프로그램 파일의 상기 스테이트먼트가 상기 범용 언어 소스 프로그램에 속하는 경우에 범용 언어 디버거를 기동하고, 정지한 프로그램 파일의 상기 스테이트먼트가 상기 독자 사양 언어 소스 프로그램에 속하는 경우에 독자 사양 언어 디버거를 기동하는 디버거 기동단계와,
    상기 범용 언어 디버거와 상기 독자 사양 언어 디버거로부터 얻어진 디버그정보를 공통하는 윈도우 화면에 표시하는 디버그정보 표시단계를 포함한 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
KR1020057006300A 2002-10-18 2003-10-17 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법및 디버그방법 KR20060056880A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002305010A JP4009517B2 (ja) 2002-10-18 2002-10-18 プログラム開発支援装置およびコンパイル方法
JPJP-P-2002-00305010 2002-10-18

Publications (1)

Publication Number Publication Date
KR20060056880A true KR20060056880A (ko) 2006-05-25

Family

ID=32105150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057006300A KR20060056880A (ko) 2002-10-18 2003-10-17 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법및 디버그방법

Country Status (5)

Country Link
US (1) US20060074625A1 (ko)
JP (1) JP4009517B2 (ko)
KR (1) KR20060056880A (ko)
DE (1) DE10393511T5 (ko)
WO (1) WO2004036420A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100797695B1 (ko) * 2006-07-13 2008-01-23 삼성전기주식회사 리지드-플렉서블 인쇄회로기판의 제조방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949790B2 (en) 2006-08-30 2015-02-03 International Business Machines Corporation Debugging visual and embedded programs
JP5212864B2 (ja) * 2008-09-24 2013-06-19 ワイアイケー株式会社 デバッグ装置
DE102010053668A1 (de) * 2010-12-07 2012-06-14 Klaus-Dieter Becker Vorrichtung und Verfahren zur Erstellung eines Programms für computergesteuerte Maschinen
US8806453B1 (en) * 2011-09-15 2014-08-12 Lockheed Martin Corporation Integrating disparate programming languages to form a new programming language
US9851950B2 (en) 2011-11-15 2017-12-26 Wolfram Alpha Llc Programming in a precise syntax using natural language
US9959186B2 (en) * 2012-11-19 2018-05-01 Teradyne, Inc. Debugging in a semiconductor device test environment
CN104298590B (zh) * 2013-07-16 2019-05-10 爱德万测试公司 用于按管脚apg的快速语义处理器
JP6917169B2 (ja) * 2017-03-30 2021-08-11 東芝産業機器システム株式会社 コンピュータプログラム及びコンピュータシステム
CN109815140A (zh) * 2019-01-05 2019-05-28 咪付(广西)网络技术有限公司 一种嵌入式c语言实现的自动化测试系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2888242B2 (ja) * 1988-11-29 1999-05-10 富士通株式会社 マイクロプロセッサのプログラム開発システム
JPH07319729A (ja) * 1994-05-20 1995-12-08 Hitachi Ltd ソフトウェアデバッグ方法
JPH11110256A (ja) * 1997-10-06 1999-04-23 Toshiba Corp プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
JPH11212807A (ja) * 1998-01-30 1999-08-06 Hitachi Ltd プログラム実行方法
JP2002268896A (ja) * 2001-03-12 2002-09-20 Hitachi Ltd 制御プログラム作成方法とその装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100797695B1 (ko) * 2006-07-13 2008-01-23 삼성전기주식회사 리지드-플렉서블 인쇄회로기판의 제조방법

Also Published As

Publication number Publication date
DE10393511T5 (de) 2005-09-08
JP2004139458A (ja) 2004-05-13
US20060074625A1 (en) 2006-04-06
JP4009517B2 (ja) 2007-11-14
WO2004036420A1 (ja) 2004-04-29

Similar Documents

Publication Publication Date Title
US5680542A (en) Method and apparatus for synchronizing data in a host memory with data in target MCU memory
JP2795244B2 (ja) プログラムデバッグシステム
US20110191752A1 (en) Method and System for Debugging of Software on Target Devices
US7016807B2 (en) Device and method for monitoring a program execution
JP2000181725A (ja) 実行可能なコ―ドを改変し、追加機能を付与するための方法およびシステム
US5689684A (en) Method and apparatus for automatically reconfiguring a host debugger based on a target MCU identity
US7322026B2 (en) Scoring assertions
CN113742119A (zh) 嵌入式系统的调用栈回溯方法、装置和计算机设备
US20080127119A1 (en) Method and system for dynamic debugging of software
KR20060056880A (ko) 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법및 디버그방법
US20080127118A1 (en) Method and system for dynamic patching of software
JPH0748182B2 (ja) プログラム・エラー検出方法
CN114490362A (zh) 一种基于动态传递参数的ate装置和传输方法
CN109144849B (zh) 一种嵌入式软件调测方法
KR101028359B1 (ko) 스크립트를 이용한 dut 자동화 테스트 장치
CN113127329A (zh) 脚本调试方法、装置及计算机存储介质
CN112162921B (zh) 一种工业自动化测试与控制系统
CN115809076A (zh) Ecu软件自动化集成方法及系统
US11958511B2 (en) Train signal system and linkage method therefor
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
US6484116B1 (en) Program executing system for semiconductor testing equipment
JP2001356928A (ja) 試験評価システム
JP2002014847A (ja) プログラム検査装置、プログラム検査方法及び検査を行うためのプログラムを格納した記録媒体
van Der Linden et al. An interactive debugging environment
JPH10293683A (ja) プログラムの比較解析装置、プログラムの比較解析方法、及びプログラムの比較解析プログラムを記録した機械読み取り可能な記録媒体

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid