EPI MAJIC 용 디버거 소프트웨어로 일반적인
디버거와는 달리 하드웨어 개발자들에게 꼭 필요한
test program을 제공하고 있습니다.
초기 하드웨어가 나오면, JTAG 인터페이스가 정상적으로 되는지 확인하고, CPU가 정상적으로 동작하는지, 그리고, memory controller가 정상적으로 잘 동작하는지 쉽게 test할 수 있도록 command line debugger가 내장되어 있다.
뿐만 아니라 초기 boot 프로그램이 없더라도 flash에 프로그램할 수 있도록 flash utilliy와 스크립트 파일을 제공하기 때문에, bootloader없이도 쉽게 하드웨어 테스트를 할 수 있습니다.
EPI 디버거 환경
EPI의 경우 Open Debug Environment라고 해서 모든 디버거 소프트웨어와 호환가능하게 하기 위한 interface드라이버를 제공하고 있다.
EPI EDB Debugger
Understands most ARM/MIPS
compiler debug info file formats:

◆EPI CC-MIPS - COFF
◆ IDT/c - GNU ECOFF
◆ Algorithmics - ELF/Stabs
◆ Wind River - ELF/Stabs
◆ Green Hills - ELF/DWARF 1.1
◆ Diab Data - ELF/ DWARF 1.1

Understands most ARM compiler
debug info file formats:

◆ COFF
◆ ECOFF
◆ ELF/Stabs
◆ ELF/DWARF 1.1
◆ ELF/Dwarf 2.0
◆ PE-COFF
◆ MS-COFF


EDB C Source-level Debugger

소스 레벨 디버거들이가지고 있는 기능을 모두 내장하고 있고, 바탕화면의 바로가기 메뉴로 쉽게 실행할 수있다. 일반적인 다른 디버거들은 환경설정이 복잡한 반면, 초기 환경 설정후 원 클릭으로
디버거를 한번에 실행할 수 있는 장점이 있다. 디버거 실행시간을 최소화 하기 위해 스크립트 언어를 사용하고 있고, 간단한 flash programming을 하기위해 쉽게 사용할 수 있다.

아래그림은 각 부분의 명칭에 대한 설명이다.
Browser winow의 경우
module view, function view, globals view 세가지로 구분되는데,
elf나 기타 debug information이 포함된 파일을 load할 경우 symbol table에 나타나는 모든 정보를 쉽게 찾을 수 있도록 기능을 내장했다.

Register window
CPU에 필요한 내부 register를 모두 보여 줄 뿐만이 아니라, 현재의 PC값이나, sp를 확인 할때 사용된다.

Memory window
현재의 메모리를 볼 때 사용하며, 메모리가 정상적으로 동작하는 지 쉽게 확인 할 수 있다..
Call Stack Window
프로그램이 지금까지 수행한 과정에 대해 보여준다.

사용자 Peripheral Register View 등록
AT91R40800 칩의 경우 EBI Register 가 있다. EBI register를 등록하기 위해서는 우선 AT40800.rd라는 파일명을 하나 만든 후 아래와 같이 추가를 하면 된다.


// Register Definition File (spaces.rd) for Atmel AT40800, ARM7tdmi
// Defines memory and register spaces for the ARM Architecture
//
//
// Atmel AT40800 Peripherals
// PIO User Interface
REG=PIO_STATUS 0xFFFF0008 MEMORY 4
REG=PIO_OUTPUT_STATUS 0xFFFF0018 MEMORY 4
//
// EBI Chip Select and Memory Controller
REG=EBI_CSR0 0xFFE00000 MEMORY 4
REG=EBI_CSR1 0xFFE00004 MEMORY 4
REG=EBI_CSR2 0xFFE00008 MEMORY 4
REG=EBI_CSR3 0xFFE0000C MEMORY 4
REG=EBI_CSR4 0xFFE00010 MEMORY 4
REG=EBI_CSR5 0xFFE00014 MEMORY 4
REG=EBI_CSR6 0xFFE00018 MEMORY 4
REG=EBI_CSR7 0xFFE0001C MEMORY 4
REG=EBI_MCR 0xFFE00024 MEMORY 4
//
REG_WINDOW=EBI EBI_CSR0, EBI_CSR1, EBI_CSR2, EBI_CSR3, EBI_CSR4, EBI_CSR5, EBI_CSR6, EBI_CSR7, EBI_MCR
REG_WINDOW=PIO PIO_STATUS, PIO_OUTPUT_STATUS

그런 후 startice.cmd에서 다음과 같이 추가한 후
FR RD AT40800.RD 그러면 EDB에서 화면과 같이 register window에 나타난다.
Break point Edit 기능
사용자가 원하는 하드웨어 및 소프트웨어 break point를 에디팅할 수 있고, 조건에 따라 breakpoint를 걸 수 있는 advanced 기능이 포함되어 있다.