KR101033591B1 - 임베디드 시스템의 디버깅 방법 - Google Patents

임베디드 시스템의 디버깅 방법 Download PDF

Info

Publication number
KR101033591B1
KR101033591B1 KR1020040090809A KR20040090809A KR101033591B1 KR 101033591 B1 KR101033591 B1 KR 101033591B1 KR 1020040090809 A KR1020040090809 A KR 1020040090809A KR 20040090809 A KR20040090809 A KR 20040090809A KR 101033591 B1 KR101033591 B1 KR 101033591B1
Authority
KR
South Korea
Prior art keywords
debugging
hardware
target system
target
memory
Prior art date
Application number
KR1020040090809A
Other languages
English (en)
Other versions
KR20060041561A (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 KR1020040090809A priority Critical patent/KR101033591B1/ko
Publication of KR20060041561A publication Critical patent/KR20060041561A/ko
Application granted granted Critical
Publication of KR101033591B1 publication Critical patent/KR101033591B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 임베디드 시스템의 디버깅 방법에 관한 것이다. 본 발명은, 모니터링 프로그램을 통해 호스트와 연계된 프로세서를 내장한 타겟 시스템의 디버깅 방법에 있어서, 상기 타겟 시스템 내부 하드웨어의 인터럽트 수행 요청에 따라 상기 프로세서를 이용하여 각 하드웨어의 동작을 수행하고 그 결과를 시스템의 메모리에 저장하는 단계와, 상기 타겟 시스템의 대기 시간동안 디버깅하여 디버깅 정보를 시스템의 메모리에 저장하는 단계와, 상기 모니터링 프로그램을 수행하여 상기 하드웨어 동작 수행 결과 및 디버깅 정보를 호스트에게 모니터링 해주는 단계를 포함하여 이루어지는 임베디드 시스템의 디버깅 방법을 제공한다. 따라서, 별도의 디버깅 환경 구현없이 시스템의 하드웨어와 소프트웨어를 타겟 시스템에서 직접 디버깅하며, 타겟 시스템이 갖는 자원 활용을 최대화함으로써 디버깅 환경 구현에 요구되는 비용절감 및 용이성 향상을 도모하는 효과가 있다.
Figure R1020040090809
임베디드 시스템, 모니터링 프로그램, EISC 프로세서, 디버깅

Description

임베디드 시스템의 디버깅 방법{Method of debugging in Embedded system}
도 1 내지 도 2는 종래 기술에 따른 임베디드 시스템에서의 디버깅 방법을 나타낸 도면
도 3은 본 발명에 따른 임베디드 시스템의 보드 구성 및 디버깅 환경을 나타낸 도면
도 4는 본 발명에 따른 엠펙 2 엔코더 시스템의 동작 흐름을 나타낸 도면
도 5는 본 발명에 따른 모니터링 디버깅 방법을 나타낸 도면
- 도면의 주요 부분에 대한 부호의 설명 -
100 : 타겟 보드 200 : EISC 프로세서
300 : PREP부 400 : 메모리
500 : ME부 600 : VENC부
700 : 호스트
본 발명은 임베디드 시스템의 디버깅 방법에 관한 것으로, 보다 상세하게는 엠펙 2 엔코더 시스템 구현에 적용될 수 있는 디버깅 방법에 관한 것이다.
임베디드 시스템(Embedded System)이란 미리 정해진 특정 기능을 수행하기 위해 컴퓨터의 하드웨어와 소프트웨어가 조합된 전자 제어 시스템을 말한다.
이러한 임베디드 시스템의 개발시 활용되는 디버깅(debugging) 방법은 첨부한 도 1에 도시하였다.
도 1 내지 도 2는 종래 기술에 따른 임베디드 시스템에서의 디버깅 방법을 나타낸 도면이다.
먼저, 도 1과 같은 디버깅 방법은 ICE(In-Circuit Emulator)(40) 장비를 별도의 모듈로 활용하여 타겟 보드(Target board)(10)와 호스트 컴퓨터(Host Computer)(50)간의 통신 매개 수단으로써 디버깅하는 방법이다.
상기 ICE(40)는 내부에 별도의 중앙 처리 장치를 가지고 있어 상기 호스트 컴퓨터(50)로부터 명령을 전달 받아 타겟 보드(10)의 제어 버스(Control Bus), 주소 버스(Address Bus) 및 데이터 버스(Data Bus)를 직접 제어하여 입출력을 수행하고, 강제로 디버깅 모드(Debugging mode)로 진입시켜 디버깅 작업을 수행하게 한다. 따라서, 호스트 컴퓨터(50)와 타겟 보드(10) 사이에 명령어 수신 및 데이터 전송에 대한 편리성을 제공하며 시스템 개발의 용이성을 제공하였다.
하지만, 이러한 종래 기술에 따른 ICE(40)를 이용한 디버깅 방법은, 상기 ICE(40)를 별도로 구입해야 하며, 개발 환경 구현에 높은 비용이 요구되는 단점이 있었다.
또한, 도 2와 같은 디버깅 방법은, 호스트 컴퓨터(50)의 리모트 디버거(Remote debugger)(60)로 하여금 디버깅을 가능하게 하는 통신 프로그램을 타겟 보 드(10)의 메인 프로그램과 별도로 두어 씨리얼 통신(Serial communication)을 통해 디버깅하는 리모트 디버깅(Remote-Debugging) 방법이다.
이와 같은 리모트 디버깅 방법은 상기 타겟 보드(10)에서 실행될 프로그램을 컴파일 해줄때 스텁 파일(Stub File)이라 불리우는 타겟 보드(10) 상에서 동작할 통신 프로그램을 같이 컴파일해서 링크해주게 된다.
이때 사용되는 상기 스텁 파일은 씨리얼 통신을 통해 호스트 컴퓨터(50)와 타겟 보드(10)간의 통신과 디버깅 기능을 수행하는 프로그램이며, 호스트 컴퓨터(50)상의 디버거 프로그램과 함께 연동되어 일종의 암호화된 패킷을 주고 받음으로써 통신을 담당하게 된다.
따라서, 이 방법을 사용할 경우에는 별도의 디버깅을 위한 통신 프로그램 즉, 타겟 보드(10) 및 호스트 컴퓨터(50)에서 실행되는 디버거 프로그램의 특성이 고려된 스텁 파일을 개발해 주어야 하므로 개발의 용이성 측면에서 불리한 단점이 있었다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 ICE와 같은 별도의 장비 도움없이 타겟 보드의 디버깅을 수행하도록 하여 비용을 최소화하는 임베디드 시스템의 디버깅 방법을 제안하는데 있다.
본 발명의 다른 목적은 타겟 보드의 프로그램과 동시에 별도로 개발되어야 하는 스텁 파일과 같은 프로그램의 도움없이 디버깅을 수행하도록 하여 디버깅 환경 개발의 용이성을 도모하는 임베디드 시스템의 디버깅 방법을 제안하는데 있다.
상기 목적을 달성하기 위하여, 본 발명은 모니터링 프로그램을 통해 호스트와 연계된 프로세서를 내장한 타겟 시스템의 디버깅 방법에 있어서, 상기 타겟 시스템 내부 하드웨어의 인터럽트 수행 요청에 따라 상기 프로세서를 이용하여 각 하드웨어의 동작을 수행하고 그 결과를 시스템의 메모리에 저장하는 단계와, 상기 타겟 시스템의 대기 시간동안 디버깅하여 디버깅 정보를 시스템의 메모리에 저장하는 단계와, 상기 모니터링 프로그램을 수행하여 상기 하드웨어 동작 수행 결과 및 디버깅 정보를 호스트에게 모니터링 해주는 단계를 포함하여 이루어지는 임베디드 시스템의 디버깅 방법을 제공한다.
그리고, 상기 디버깅 단계는, 디버깅 지원을 위한 코드를 엔코딩 소프트웨어와 함게 수행하여 시스템의 메모리에 저장하는 것을 특징으로 한다.
상기 타겟 시스템의 대기 시간은 상기 인터럽트 요청에 따라 인터럽트 서비스 루틴을 완료한 이후부터 다음의 인터럽트 요청 시간까지인 것을 특징으로 한다.
따라서, 본 발명은 별도의 디버깅 환경 구현없이 시스템의 하드웨어와 소프트웨어를 타겟 시스템에서 직접 디버깅하며, 시스템의 리얼 타임 특성 및 하드웨어와 소프트웨어가 밀접하게 연관되어 상호 동작해야 하는 제한 조건을 만족시킴과 동시에 타겟 시스템이 갖는 자원 활용을 최대화함으로써 디버깅 환경 구현에 요구되는 비용절감 및 용이성 향상을 도모하는 효과가 있다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다.
도 3은 본 발명에 따른 임베디드 시스템의 보드 구성 및 디버깅 환경을 나타낸 도면으로, 타겟 시스템은 엠펙 2 비디오 엔코더 시스템을 예시하였다.
도 3과 같은 임베디드 시스템은, 타겟 보드(100)가 운영 체제(Operating System)의 도움 없이 수행되는 특성을 지니므로, 시스템의 중추 역할을 담당하는 EISC(Extendable Instruction Set Computer) 프로세서(200)가 시스템 부팅시 프로세서 및 기타 초기화에 필요한 스타트 업(start-up) 코드를 수행함으로써 시스템 운영에 필요한 메인 프로그램의 수행 준비를 완료하게 된다.
이때, 상기 메인 프로그램 수행시 비디오 엔코딩(Video encoding) 하드웨어가 되는 PREP(PRE-Processing)부(300), ME(Motion Estimator)부(500), 그리고 VENC(Video ENCoder)부(600)를 초기화함으로써 각 하드웨어의 제어 준비를 완료하게 된다.
상기 타겟 보드(100)는 이러한 초기화 수행후 시스템의 입력으로 엔코딩할 비디오 스트림(Video Stream)이 상기 PREP부(300)에 주기적으로 공급됨으로써 구동된다. 이때, 상기 PREP부(300)는 상기 스트림을 입력받아 전처리(Pre-processing) 기능을 수행하고, 그 처리 결과를 ME부(500) 또는 VENC부(600)에 의해 처리될 수 있는 형태의 데이터로 변환하여 메모리(400)에 저장한 다음 하드웨어 인터럽트(Interrupt)를 띄워 자신의 동작이 완료되었음을 EISC 프로세서(200)에게 알려주게 된다.
이처럼, 상기 타겟 보드(100)상에서 동작하는 시스템을 타겟 시스템이라 명명하며, 본 발명에 따른 엠펙 2 엔코더 시스템의 전체적인 동작 흐름은 첨부한 도 4에 도시하였다.
도 4와 같이, 타겟 시스템의 실제적인 엔코딩(encoding) 기능을 담당하는 VENC(Video ENCoder)부 또는 ME(Motion Estimator)부는, PREP(PRE-Processing)부의 인터럽트 요청에 의해 수행되는 인터럽트 서비스 루틴(ISR : Interrupt Service Routine)에 의해 제어 및 구동된다. 즉, PREP부에 의해 전처리된 데이터를 메모리로부터 읽어들여 엔코딩을 수행하고 그 결과 데이터인 비트 스트림(Bit-stream)을 메모리에 저장한 후 EISC 프로세서쪽에 하드웨어 인터럽트를 요청함으로써 자신의 동작이 완료되었음을 알리게 된다.
이와 같이, 각 하드웨어 인터럽트 요청을 통해 제어권을 넘겨받은 EISC 프로세서는 도 4와 같이, 각각의 해당되는 인터럽트 서비스 루틴을 수행함으로써 엔코딩에 필요한 역할을 담당하게 된다.
이러한 프로세서의 동작(Operation)은 각 하드웨어로부터 제어권을 넘겨받을 때마다 수시로 이루어지며, 각 인터럽트 서비스 루틴 수행을 완료한 EISC 프로세서는 각각의 하드웨어 구동을 완료한 뒤 하드웨어로부터 제어권을 다시 넘겨받기 전까지는 시스템 멈춤(System Halt) 상태에서 대기하게 된다. 따라서, EISC 프로세서는 동작(Operation)과 멈춤(Halt) 상태를 반복하게 된다.
본 발명에 따르면, 이처럼 EISC 프로세서가 멈춤 상태에서 대기하고 있는 시간 즉, 프로세서가 동작하지 않고 멈춰있는 시간을 이용하여 디버깅을 수행하도록 하는데, 이를 첨부한 도 5를 참조하여 좀 더 자세히 설명하면 다음과 같다.
도 5는 본 발명에 따른 모니터링 디버깅 방법을 나타낸 도면이다.
도 5와 같이, 프로세서가 동작하지 않고 멈춰있는 시간동안 디버깅을 수행하도록 하기 위해서, 디버깅에 필요한 정보들을 모니터링 디버거(Monitoring Debugger) 프로그램 수행을 통해 EISC 프로세서로 하여금 사용자에게 모니터링 해주도록 한다. 즉, 상기 모니터링 디버거 프로그램은 도 3과 같이 호스트(700)의 터미널 프로그램과 연계되어 디버깅 상황을 모니터링해주도록 동작하게 되는 것이다.
이를 위해, 엔코딩 소프트 웨어 및 하드웨어가 수행되는 동안의 런타임 디버깅 정보(Runtime Debugging Information)들은 시스템의 리얼 타임 특성을 제한하지 않는 범위 내에서 디버깅 지원을 위한 코드를 엔코딩 소프트웨어와 함께 수행하여 시스템의 메모리에 저장해 놓은 후 모니터링 프로그램 수행시 이 정보를 가져다가 디버깅 정보로 제공한다.(A)
또한, 각 인터럽트 서비스 루틴이 수행된 결과에 대한 정보들 즉, 시스템의 데이터, BSS 영역 정보 및 기타 컴파일 관련한 정보들은 실행 결과 정보(Excution result Information)로써 메모리에 저장되어 있다가, 모니터링 프로그램 수행시 사용자에게 그 결과 정보들을 제공해준다.(B)
따라서, 본 발명에 따른 방법은 별도의 디버깅 환경 구현 절차가 필요하지 않으며, 프로세서가 인터럽트 서비스 루틴을 수행하지 않는 동안 디버깅 프로그램을 수행하게 되므로, 시스템의 리얼 타임 특성 및 기타 동작 조건을 유지하면서 엔코딩 하드웨어와 소프트웨어를 직접 디버깅할 수 있다.
뿐만 아니라, 이 방법은 EISC 프로세서의 프로세서 사용율을 100%까지 올릴 수 있게 되므로 타겟 시스템의 자원 활용율을 최대화하게 된다.
한편, 본 발명은 상술한 실시예에 한정되지 않으며, 첨부된 청구범위에서 알 수 있는 바와 같이 본 발명이 속한 분야의 통상의 지식을 가진 자에 의해 변형이 가능하고 이러한 변형은 본 발명의 범위에 속한다.
상기에서 설명한 본 발명에 따른 임베디드 시스템의 디버깅 방법의 효과를 설명하면 다음과 같다.
첫째, 별도의 디버깅 환경 구현없이 시스템의 하드웨어와 소프트웨어를 타겟 시스템에서 직접 디버깅하는 효과가 있다.
둘째, 시스템의 리얼 타임 특성 및 하드웨어와 소프트웨어가 밀접하게 연관되어 상호 동작해야 하는 제한 조건을 만족시킴과 동시에 타겟 시스템이 갖는 자원 활용을 최대화함으로써 디버깅 환경 구현에 요구되는 비용절감 및 용이성 향상을 도모하는 효과가 있다.

Claims (4)

  1. 모니터링 프로그램을 통해 호스트와 연계된 프로세서를 내장한 타겟 시스템의 디버깅 방법에 있어서,
    상기 타겟 시스템 내부 하드웨어의 인터럽트 수행 요청에 따라 상기 프로세서를 이용하여 각 하드웨어의 동작을 수행하고 그 결과를 시스템의 메모리에 저장하는 단계와,
    상기 타겟 시스템의 대기 시간동안 디버깅하여 디버깅 정보를 시스템의 메모리에 저장하는 단계와,
    상기 모니터링 프로그램을 수행하여 상기 하드웨어 동작 수행 결과 및 디버깅 정보를 호스트에게 모니터링 해주는 단계를 포함하여 이루어짐을 특징으로 하는 임베디드 시스템의 디버깅 방법.
  2. 제 1 항에 있어서,
    상기 타겟 시스템은 엠펙 2 비디오 엔코더 시스템인 것을 특징으로 하는 임베디드 시스템의 디버깅 방법.
  3. 제 2 항에 있어서,
    상기 디버깅 단계는, 디버깅 지원을 위한 코드를 엔코딩 소프트웨어와 함께 수행하여 시스템의 메모리에 저장하는 것을 특징으로 하는 임베디드 시스템의 디버 깅 방법.
  4. 제 1 항에 있어서,
    상기 타겟 시스템의 대기 시간은 상기 인터럽트 요청에 따라 인터럽트 서비스 루틴을 완료한 이후부터 다음의 인터럽트 요청 시간까지인 것을 특징으로 하는 임베디드 시스템의 디버깅 방법.
KR1020040090809A 2004-11-09 2004-11-09 임베디드 시스템의 디버깅 방법 KR101033591B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040090809A KR101033591B1 (ko) 2004-11-09 2004-11-09 임베디드 시스템의 디버깅 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040090809A KR101033591B1 (ko) 2004-11-09 2004-11-09 임베디드 시스템의 디버깅 방법

Publications (2)

Publication Number Publication Date
KR20060041561A KR20060041561A (ko) 2006-05-12
KR101033591B1 true KR101033591B1 (ko) 2011-05-11

Family

ID=37148093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040090809A KR101033591B1 (ko) 2004-11-09 2004-11-09 임베디드 시스템의 디버깅 방법

Country Status (1)

Country Link
KR (1) KR101033591B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100868762B1 (ko) 2006-12-01 2008-11-17 삼성전자주식회사 임베디드용 소프트웨어의 오류 검출 방법
KR100925517B1 (ko) * 2007-09-20 2009-11-05 엠디에스테크놀로지 주식회사 임베디드 디바이스 테스트 시스템 및 그 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030003945A (ko) * 2001-07-04 2003-01-14 엘지전자 주식회사 임베디드 컴퓨터 시스템의 다중 부트모드 구현방법 및부트모드 전환장치
KR20030043382A (ko) * 2001-11-28 2003-06-02 학교법인 선문학원 산업용 제어기의 모니터링/제어를 위한 임베디드 웹서버시스템
US6622260B1 (en) 1999-12-30 2003-09-16 Suresh Marisetty System abstraction layer, processor abstraction layer, and operating system error handling
KR20040022066A (ko) * 2002-09-06 2004-03-11 엘지전자 주식회사 임베디드 시스템용 프로토타이핑 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622260B1 (en) 1999-12-30 2003-09-16 Suresh Marisetty System abstraction layer, processor abstraction layer, and operating system error handling
KR20030003945A (ko) * 2001-07-04 2003-01-14 엘지전자 주식회사 임베디드 컴퓨터 시스템의 다중 부트모드 구현방법 및부트모드 전환장치
KR20030043382A (ko) * 2001-11-28 2003-06-02 학교법인 선문학원 산업용 제어기의 모니터링/제어를 위한 임베디드 웹서버시스템
KR20040022066A (ko) * 2002-09-06 2004-03-11 엘지전자 주식회사 임베디드 시스템용 프로토타이핑 장치

Also Published As

Publication number Publication date
KR20060041561A (ko) 2006-05-12

Similar Documents

Publication Publication Date Title
EP1754156B1 (en) Data processing system with trace co-processor
US7992042B2 (en) Debug support device, and program for directing computer to perform debugging method
CN102955737B (zh) 异构处理器体系的程序调试方法和系统
JP4388518B2 (ja) スレッドデバッグ装置、スレッドデバッグ方法及びプログラム
US9852038B2 (en) Debugging system and debugging method of multi-core processor
US6324684B1 (en) Processor having real-time execution control for debug functions without a debug monitor
US8607199B2 (en) Techniques for debugging code during runtime
US20060143523A1 (en) Apparatus and method for debugging embedded software
US7941650B2 (en) Microprocessor based on event-processing instruction set and event-processing method using the same
US20090228861A1 (en) Method and System for Improved Tool Interaction with a Target
CN105740139A (zh) 一种基于虚拟环境的嵌入式软件调试方法
US7698544B2 (en) Automatic halting of a processor in debug mode due to reset
KR101033591B1 (ko) 임베디드 시스템의 디버깅 방법
CN100349121C (zh) 嵌入式并行计算系统以及嵌入式并行计算方法
CN115221053B (zh) 一种基于以太网的dsp调试架构
JP4024026B2 (ja) 半導体装置および評価装置
CN114218067A (zh) 一种异构众核软件调试装置及调试方法
KR100952762B1 (ko) 디지털 시그널 프로세서의 실시간 디버깅 방법
Roop et al. A new reactive processor with architectural support for control dominated embedded systems
JP2005107909A (ja) デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム
CN118093446B (zh) 一种异构程序调试方法、系统、装置、电子设备及存储介质
JP2003005987A (ja) エミュレーション装置
JP2004199630A (ja) データ処理装置
JP2006039879A (ja) クラスファイル実行方法およびJava(R)実行環境プログラム
Peng et al. Towards A Unified Hardware Abstraction Layer Architecture for Embedded Systems

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140414

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160324

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170314

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180314

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee