E-Con Version 1.0.1 Advanced Digital Chips Inc.
변경 사항 1.0.1 : 2011-01-13 1. 오타 수정 및 명령어 입력 예 추가 2. E-Con 과 GDB 를 이용한 프로그램 디버깅방법 수정 1.0.0 : 2010-11-26 1. PIN 배치 그림 추가 0.9.8 : 2010-10-30 1. support CANTUS Jtag Debug 2. EISC Studio 3 : Debugger Option 변경 0.9.6 :2010-10-19 New command : proc_ibreak,proc_dbreak bug fixed: 1. flash write 시에 file size 가 4byte 단위가 아닐 경우 에러 발생 ==> 버그 수정 2. cantus, en773: flash write 시에 0 번지에서맊 다운로드 시작되던 버그 수정 0.9.2 : 2010-10-1 jtagspeed 명령어 추가 0.9.1 : 2010-06-24 GDB 와 연결하여 원격디버깅 내용 추가 0.9 : 2010-06-18 First Release. E-CON Manual cadvanced Digital Chips Inc. All right reserved. No part of this document may be reproduced in any form without written permission from Advanced Digital Chips Inc. Advanced Digital Chips Inc. reserves the right to change in its products or product specification to improve function or design at any time, without notice. Office 8th Floor, KookMin 1 Bldg., 1009-5, Daechi-Dong, Gangnam-Gu, Seoul, 135-280, Korea. Tel: +82-2-2107-5800 Fax: +82-2-571-4890 URL: http://www.adc.co.kr EISC 는 Advacned Digital Chips Inc.의 등록상표입니다. AE32000 은 Advacned Digital Chips Inc.의 등록상표입니다. ECON Manual 2 Advanced Digital Chips Inc.
목 차 1. E-Con... 6 2. ECONMAN.EXE 젂체 명령어 요약... 7 3. 명령어 상세 설명... 10 target TARGET_NAME(option)... 11 help COMMAND(option)... 11 q... 11 exit... 11 sleepms... 11 readb ADDRESS SIZE... 12 reads ADDRESS SIZE... 12 readw ADDRESS SIZE... 12 writeb ADDRESS 1BYTE-VALUE... 12 writes ADDRESS 2BYTE-VALUE... 12 writew ADDRESS 4BYTE-VALUE... 12 fileread ADDRESS SIZE FILE_NAME... 13 filewrite ADDRESS FILE_NAME... 13 flash_init... 13 flash_eraseall... 13 flash_erase START_SECTOR SECTOR_COUNT... 13 flash_filewrite ADDRESS FILENAME... 14 flash_fileread ADDRESS SIZE FILENAME... 14 ECON Manual 3 Advanced Digital Chips Inc.
nand_init... 14 nand_eraseall... 14 nand_erase START_block block_count... 14 nand_filewrite ADDRESS FILENAME... 15 nand_fileread ADDRESS SIZE FILENAME... 15 proc_readb ADDRESS SIZE... 15 proc_reads ADDRESS SIZE... 15 proc_readw ADDRESS SIZE... 15 proc_writeb ADDRESS 1BYTE-VALUE... 16 proc_writes ADDRESS 2BYTE-VALUE... 16 proc_writew ADDRESS 4BYTE-VALUE... 16 proc_stop... 16 proc_resume... 16 proc_read_all_regs... 17 proc_read_reg REGNUM... 17 proc_write_reg REGNUM 4BYTE-VALUE... 18 proc_ibreak ADDRESS SET/CLEAR... 18 proc_dbreak ADDRESS SET/CLEAR... 18 runat ADDRESS... 18 runscript SCRIPT_FILENAME... 18 version... 19 targetlist... 19 ECON Manual 4 Advanced Digital Chips Inc.
memtest ADDRESS SIZE... 19 reset... 19 jtagspeed NUMBER... 20 gdbserver PORT_NUMBER... 20 4. 프로그램 실행 명령어 옵션... 21 5. EISC Studio 에서 Flash write 기능을 사용하기 위한 설정... 21 6. SystemInit 에서 실행되는 초기화... 22 Dummy... 22 Cantus... 22 EN773... 22 KLDW... 22 7. E-Con 과 GDB 를 이용한 프로그램 디버깅방법... 23 8. E-CON 과 Target Board 연결 정보... 30 ECON Manual 5 Advanced Digital Chips Inc.
1. E-CON E-CON TM 은 EISC JTAG Debugger 를 제어하기 위한 장비의 이름이다. E-CON 과 JTAG Debugger EISC JTAG Debugger 는 두 가지 모델로 나누어 질 수 있다. EISC CORE 를 제어 하는 부분과 시스템버스 를 제어하는 부분으로 나뉘어 진다. EISC CORE 를 제어하는 기능을 이용하여 프로그램 디버깅을 수행 할 수 있으며 SYSTEM BUS 를 제어하는 기능을 이용하여 FLASH, Memory write 와 같은 기능을 할 수 있다. E-CON 을 제어하는 프로그램은 EConMan.exe 1 라는 별도의 프로그램을 제공한다. EConMan 은 Microsoft Windows 홖경에서맊 구동된다. EConMan 을 실행 하면 아래 그림과 같은 화면을 볼 수 있다. 이 상태에서 명령어을 입력하여 실행 한다. 1 EISC Studio 3.2 이상 설치 시 자동으로 설치 되나 최싞 Version 은 별도 자료실에서 배포한다. ECON Manual 6 Advanced Digital Chips Inc.
2. ECONMAN.EXE 전체 명령어 요약 아래 목록은 EConMan 에서 사용할 수 있는 젂체 명령어이다. help 명령어를 실행하여 젂체 명령어 목록을 확읶 할 수 있다. EConMan 의 명령어 중 Processor Type 에 따라 사용할 수 있는 명령은 제한 된다. Command Argument 1 Argument 2 Argument 3 Description (full, short) target,ta TARGET_NAME (option) X X Connect E-Con and Target System. If target name not defined, it will search target. help,h Command(optio X X Show help message. n) q X X X Exit exit X X X Equal to Exit sleepms,slm ms sec X X Interval ms for script readb,rb ADDRESS 1BYTE-SIZE X Read SIZE*1byte. reads,rs ADDRESS 2BYTE-SIZE X Read SIZE*2byte readw,rw ADDRESS 4BYTE-SIZE X Read SIZE*4byte. writeb,wb ADDRESS 1BYTE-VALUE X Write 1Byte DATA. writes,ws ADDRESS 2BYTE-VALUE X Write 2Byte DATA. writew,ww ADDRESS 4BYTE-VALUE X Write 4Byte DATA. filewrite,fw ADDRESS FILENAME X Read File(HOST PC) and Write it to Target Memory fileread,fr ADDRESS SIZE SAVE FILENAME Read Target Memory and Save as FILENAME(HOST PC) flash_init X X X Check and initialize Target Flash Memory controller and information Indeed, you do not need this command. flash_xxx command ECON Manual 7 Advanced Digital Chips Inc.
always call this function. flash_filewrite,ffw ADDRESS FILENAME X Read File(HOST PC) and erase sector and Write it to Target Flash Memory. flash_fileread,ffr ADDRESS SIZE FILENAME Read Target Flash Memory and Save as FILENAME(HOST PC). flash_eraseall,fea X X X Erase Flash All Sector. flash_erase,fe START SECTOR SECTOR COUNT X Erase sectors. nand_init X X X Check and initialize Target NAND Flash Memory controller and information Indeed, you do not need this command. nand_xxx command always call this function nand_filewrite,nfw ADDRESS FILENAME X Read File(HOST PC) and erase sector and Write it to Target NAND Flash Memory. nand_fileread,nfr ADDRESS SIZE FILENAME Read Target NAND Flash Memory and Save as FILENAME(HOST PC). nand_eraseall,nea X X X Erase Flash All Block. nand_erase,ne START BLOCK BLOCK COUNT X Erase blocks. proc_readb,prb ADDRESS 1BYTE-SIZE X Read SIZE*1byte. proc_reads,prs ADDRESS 2BYTE-SIZE X Read SIZE*2byte proc_readw,prw ADDRESS 4BYTE-SIZE X Read SIZE*4byte. proc_writeb,pwb ADDRESS 1BYTE-VALUE X Write 1Byte DATA. proc_writes,pws ADDRESS 2BYTE-VALUE X Write 2Byte DATA. proc_writew,pww ADDRESS 4BYTE-VALUE X Write 4Byte DATA. proc_stop,pst X X X Stop Processor of Target proc_resume,pre X X X Resume Processor of Target proc_read_all_regs X X X Print All registers of ECON Manual 8 Advanced Digital Chips Inc.
,prar CPU. proc_read_reg,prr REG_NUM X X Print register of CPU proc_write_reg,pwr REG_NUM X X Write value to the register of CPU proc_ibreak,pib ADDRESS SET/CLEAR X Instruction breakpoint proc_dbreak,pdb ADDRESS SET/CLEAR X Data Access breakpoint runat,ra ADDRESS X X Run program at Address runscript,rs SCRIPT FILENAME X X Read Command List File and Run commands.(command string should be separated by New-Line) version, v X X X Print version information. targetlist,tali X X X Print supported Target Name. reset,res X X X Reset Target System systeminit,sysinit X X X Run pre-defined system initialize memtest,mtest ADDRESS SIZE X Memory Read/Write Testing using simple algorithm. jtagspeed,jtags N X X Set jtag clock speed. Clock = 30Mhz/(N+1) gdbserver,gdb portnumber X X Run GDB Server ECON Manual 9 Advanced Digital Chips Inc.
3. 명령어 상세 설명 모든 명령어는 대소문자 구분을 하지 않는다. 접미사는 단위를 의미 한다 -b : byte -s : 2byte(short) -w : 4byte(word) 모든 Read 나 Write 명령어의 경우 ADDRESS 가 그 data 형의 경계에 존재 해야 된다. 즉 0x1 번지에 2byte 나 4byte 의 Read/Write 명령어의 경우 잘못된 값을 인거나 쓸 수 있다. -b 명령어는 어떤 번지도 상관 없다. -s 명령어의 경우 최하위 번지가 2 의 배수여야맊 한다. -w 명령의 경우 최하위 번지가 4 의 배수여야맊 한다. 특정 번지에서 인은 값 출력 형식은 16 진수로 표현된다. 0 1 2 3 4 5 6 7 8 9 A B C D E F ADDRESS(16byte 단위) : proc_ 이라는 접두어가 붙지 않는 read/write 함수의 경우 시스템 BUS 를 통해서 그 역홗을 수행한다. 즉 Cache memory 나 SPM 의 접근이 없다. proc_ 이라는 접두어가 붙는 read/write 함수는 EISC Core 를 통해서 그 역할을 수행하므로 현재 설정에 따라서 Cache Memory 나 SPM 에 접근 될 수도 있다. ECON Manual 10 Advanced Digital Chips Inc.
TARGET TARGET_NAME(OPTION) ECON 과 연결한다. TARGET_NAME 을 연결 한다. JTAG BUS 모드로 진입한다. target or target cantus 모든 명령어 이전에 반드시 실행되어야 할 명령어이다. TARGET_NAME 이 지정 하지 있지 않을 경우 현재 프로그램에서 지원되는 모든 Device 를 호출 하여 Device 를 찾는다. 이 경우 TARGET_NAME 이 지정 될 경우 보다 다소 느려질 수 있다. HELP COMMAND(OPTION) 도움말을 출력한다. COMMAND 가 지정될 경우 특정 도움말맊 출력 하지맊 그렇지 않을 경우 모든 command 에 대한 도움말을 출력한다. Q 프로그램을 종료한다. exit 와 동읷하다. EXIT 프로그램을 종료한다. q 와 동읷하다. SLEEPMS 읷정 ms 동안 EConMan 의 명령 수행을 정지 한다. runscript 에서 필요할 경우 사용한다. sleepms 1000 ECON Manual 11 Advanced Digital Chips Inc.
READB ADDRESS SIZE 특정 주소에서 1byte 단위로 SIZE 맊큼 인어서 그 값을 출력한다. readb 0x20000000 16 READS ADDRESS SIZE 특정 주소에서 2byte 단위로 SIZE 맊큼 인어서 그 값을 출력한다. ADRRESS 는 반드시 2 의 배수여야 한다. reads 0x20000002 7 READW ADDRESS SIZE 특정 주소에서 4byte 단위로 SIZE 맊큼 인어서 그 값을 출력한다. ADRRESS 는 반드시 4 의 배수여야 한다. readw 0x20000004 3 WRITEB ADDRESS 1BYTE-VALUE 특정 주소에 BYTE-VALUE 를 write 한다. writeb 0x20000000 0x12 WRITES ADDRESS 2BYTE-VALUE 특정 주소에 2BYTE-VALUE 를 write 한다. writes 0x20000002 0x1234 WRITEW ADDRESS 4BYTE-VALUE 특정 주소에 4BYTE-VALUE 를 write 한다. writew 0x20000004 0x12345678 ECON Manual 12 Advanced Digital Chips Inc.
FILEREAD ADDRESS SIZE FILE_NAME 특정 주소에 SIZE*BYTE 맊큼 인어서 host pc 에 FILE_NAME 이라는 이름으로 저장한다. fileread 0 0x100 dump.bin FILEWRITE ADDRESS FILE_NAME host pc 의 FILE_NAME 이라는 파읷을 인어서 target memory 에 저장한다. FAT 와 같은 파일시스템의 형태로 저장 하는 것이 아니라 특정 번지에 저장한다. filewrite 0 dump.bin FLASH_INIT Flash Memory Controller 를 초기화한다. 장착된 Flash memory 정보를 수집 및 출력한다. flash_xxx 관렦 함수들이 항상 이 함수를 먼저 호출 하게 되므로 이 명령어를 반드시 실행할 필요는 없다. FLASH_ERASEALL Flash Memory 젂체를 Erase 한다. FLASH_ERASE START_SECTOR SECTOR_COUNT START_SECTOR 부터 SECTOR_COUNT 맊큼 Erase 한다. flash_erase 0 1 ECON Manual 13 Advanced Digital Chips Inc.
FLASH_FILEWRITE ADDRESS FILENAME Host PC 의 FILENAME 을 인어서 Target Flash Address 에서 부터 저장 한다. 이 함수는 필요한 sector size 맊큼 erase 한 후 file data 를 write 하므로 별도의 erase 함수를 호출 할 필요가 없다. file data 가 write 되지 않는 sector 안의 기존 data 는 지워진다. flash_filewrite 0x0 dump.bin FLASH_FILEREAD ADDRESS SIZE FILENAME Target Flash memory 의 특정 번지에서 SIZE byte 맊큼 인어서 Host PC 의 FILENAME 이라는 파읷로 저장한다. flash_fileread 0x0 1024 dump.txt NAND_INIT NAND Flash Memory Controller 를 초기화한다. 장착된 NAND Flash memory 정보를 수집 및 출력한다. nand_xxx 관렦 함수들이 항상 이 함수를 먼저 호출 하게 되므로 이 명령어를 반드시 실행할 필요는 없다. NAND_ERASEALL NAND Flash Memory 젂체를 Erase 한다. NAND_ERASE START_BLOCK BLOCK_COUNT START_BLOCK 부터 BLOCK_COUNT 맊큼 Erase 한다. nand_erase 0 1 ECON Manual 14 Advanced Digital Chips Inc.
NAND_FILEWRITE ADDRESS FILENAME Host PC 의 FILENAME 을 인어서 Target NAND Flash Address 에서 부터 저장 한다. 이 함수는 필요한 block size 맊큼 erase 한 후 file data 를 write 하므로 별도의 erase 함수를 호출 할 필요가 없다. file data 가 write 되지 않는 block 안의 기존 data 는 지워진다. nand_filewrite 0x0 dump.bin NAND_FILEREAD ADDRESS SIZE FILENAME Target NAND Flash memory 의 특정 번지에서 SIZE byte 맊큼 인어서 Host PC 의 FILENAME 이라는 파읷로 저장한다. nand_fileread 0x0 1024 dump.txt PROC_READB ADDRESS SIZE 내부 EISC Core 를 이용하여 특정 주소에서 1byte*SIZE 맊큼 인어서 출력한다. proc_readb 0x20000000 16 PROC_READS ADDRESS SIZE 내부 EISC Core 를 이용하여 특정 주소에서 2byte*SIZE 맊큼 인어서 출력한다. proc_reads 0x20000002 7 PROC_READW ADDRESS SIZE 내부 EISC Core 를 이용하여 특정 주소에서 4byte*SIZE 맊큼 인어서 출력한다. proc_readw 0x20000004 3 ECON Manual 15 Advanced Digital Chips Inc.
PROC_WRITEB ADDRESS 1BYTE-VALUE 내부 EISC Core 를 이용하여 특정 주소에 BYTE-VALUE 를 기록한다. proc_writeb 0x20000000 0x12 PROC_WRITES ADDRESS 2BYTE-VALUE 내부 EISC Core 를 이용하여 특정 주소에 2BYTE-VALUE 를 기록한다. proc_writes 0x20000002 0x1234 PROC_WRITEW ADDRESS 4BYTE-VALUE 내부 EISC Core 를 이용하여 특정 주소에 4BYTE-VALUE 를 기록한다. proc_writew 0x20000004 0x12345678 PROC_STOP Target system 의 EISC Core 강제로 멈춘다. proc_stop PROC_RESUME 정지된 EISC Core 를 재 실행 시킨다. proc_resume ECON Manual 16 Advanced Digital Chips Inc.
PROC_READ_ALL_REGS CPU 내의 모든 register 값을 출력한다. proc_read_all_regs PROC_READ_REG REGNUM CPU 내의 특정 register 값을 출력한다. Register Number REG_GPR0=0, REG_GPR1=1 REG_GPR15=15 REG_CR0=16 REG_CR1, REG_ML, REG_MH, REG_ER, REG_LR, REG_PC=22 REG_SR, REG_SSP, REG_ISP, REG_USP=26 proc_read_reg 1 ECON Manual 17 Advanced Digital Chips Inc.
PROC_WRITE_REG REGNUM 4BYTE-VALUE CPU 내의 특정 register 에 특정 값을 기록한다. proc_write_reg 1 0x12345678 PROC_IBREAK ADDRESS SET/CLEAR Instruction 이 있는 특정 Address 에서 Processor Stop 을 SET 또는 CLEAR. 즉 해당 주소의 Instruction 을 수행하기 젂에 프로그램 실행의 중지 유무를 설정할 수 있다. proc_ibreak 0x322 1 PROC_DBREAK ADDRESS SET/CLEAR Address 의 DATA 를 Access 하기 젂에 Processor Stop 을 SET 또는 CLEAR. 즉 해당 주소의 DATA 를 Access 하기 젂에 프로그램 실행의 중지 유무를 설정할 수 있다. proc_dbreak 0x60024000 1 RUNAT ADDRESS 프로그램카운터 레지스터를 ADDRESS 로 설정 한 다음 프로세서를 재 실행 시킨다. 즉 해당 어드레스에서 프로그램을 실행 시킬 수 있다. runat 0x1BA RUNSCRIPT SCRIPT_FILENAME 명령어로 이루어진 text 파읷을 인어서 그 명령어를 숚차적으로 실행한다. 명령어가 정상적으로 실행되지 않았을 경우 그 이후 명령어는 실행 하지 않는다. runscript test_script.txt ECON Manual 18 Advanced Digital Chips Inc.
VERSION 프로그램 버젂 정보 및 간략한 update 정보를 출력한다. version TARGETLIST 현재 지원되는 모든 Target 를 출력한다. targetlist MEMTEST ADDRESS SIZE 내부 알고리즘을 이용하여 메로리 Read/Write 테스트를 진행한다. memtest 0x20000000 1024 RESET 아래 두 가지 reset 제어싞호를 보낸다. 1. E-CON 의 Jtag Cable 을 통해서 reset 싞호를 보낸다. (이 경우 Target system 의 reset pin 과 연결되어 있어야 한다) 2. EISC JTAG Debugger 를 통해서 reset 싞호를 보낸다. 3. CANTUS 는 지원하지 않는다. reset ECON Manual 19 Advanced Digital Chips Inc.
JTAGSPEED NUMBER JTAG CLOCK Speed 를 설정 한다. Clock = 30Mhz/(number+1) jtagspeed 1 GDBSERVER PORT_NUMBER GDB 와 통싞찿널로 port number 를 설정 한 후 GDB 의 Remote debug server 역할을 수행한다. 자세한 내용은 7. E-CON 과 GDB 를 이용한 프로그램 디버깅방법 에서 다룬다. gdbserver 7878 ECON Manual 20 Advanced Digital Chips Inc.
4. 프로그램 실행 명령어 옵션 ecoman.exe 실행 할 때 연속적으로 실행 될 명령어를 입력 할 수 있다. ecoman.exe command1 arg1 arg2 arg3 command2 arg1 와 같이 명령어 앞에 - 맊 붙이면 된다. 이 경우 숚차적으로 명령어를 실행 하게 되면 특정 명령어의 실행이 올바르지 않을 경우 그 이후 명령어는 실행 하지 않는다. ex) econman.exe target cantus systeminit flash_filewrite 0 bootloader.bin exit 1. CANTUS Target board 를 연결 2. 미리 설정된 시스템 초기화 루틴 실행 3. 0 번에 bootloader.bin 파읷을 다운로드 4. 종료 5. EISC STUDIO 에서 FLASH WRITE 기능을 사용하기 위한 설정 EISC Studio 버젂 3.1 이상 버젂의 경우 Build Download to Target, Download Option 기능이 있다. 이 기능을 이용하여 econman.exe 를 실행 하여 target board 에 binary 를 다운로드 할 수 있다. Download Option 을 실행하여 위 그림과 같이 설정한 이후 Download to Target 을 실행 하면 EConMan.exe 를 이용하여 Target 에 다운로드 할 수 있다. ECON Manual 21 Advanced Digital Chips Inc.
6. SYSTEMINIT 에서 실행되는 초기화 EConMan.exe 실행파읷은 특정 Target 마다 미리 정해진 초기화 기능들이 내포되어 있다. 미리 정해진 초기화 기능은 다음과 같다. (Flash 가 내장되어 있는 경우 항상 마지막에 Flash 정보를 인는다.) DUMMY Dummy 를 Target 을 설정 할 경우 어떤 코드도 실행되지 않는다. CANTUS 1. 0x2040 으로 PLL 설정(XIN 이 11.2896Mhz 읷 경우 96Mhz PLL) 2. 0x3300 으로 Flash Control Register 설정 3. Flash 정보를 인는다. EN773 1. Serial Flash Controller 를 초기화 한다.(Quad Mode, 1Clock) 2. Serial Flash 정보를 인는다. KLDW 1. Serial Flash Controller 를 초기화 한다.(Quad Mode, 1Clock) 2. Serial Flash 정보를 인는다. ECON Manual 22 Advanced Digital Chips Inc.
7. E-CON 과 GDB 를 이용한 프로그램 디버깅방법 E-Con 을 이용하여 Target Board 와 GDB 를 연결하여 프로그램을 디버깅 할 수 있다. GDB 를 통해서 디버깅을 하기 위해서는 반드시 프로세서를 멈춰야 한다. 프로그램 디버깅을 어느 시점에서부터 할 것읶가에 따라서 두 가지 형태로 나눌 수 있다. 첫 번째는 프로그램을 최초 부팅 시부터 디버깅을 하는 것이고 다른 하나는 현재 동작중읶 프로그램을 세워서 그 상태에서부터 디버깅 하는 것이다. 첫 번째 방법으로 디버깅 하기 위해선 Target Board 를 JTAG Debug Mode 로 부팅하여야 한다. JTAG Debug Mode 로 부팅 하게 되면 프로세서는 Reset vector 를 인어온 상태에서 멈추게 된다. 따라서 최초 부팅 시부터 프로그램 디버깅을 할 수 있게 된다. E-Con 과 JTAG Debug Mode PIN 이 연결되어 있다면 E-CON 이 제어 하므로 별도의 외부 작업은 필요 없다. 하지맊 연결되어 있지 않다면 사용자가 해당 PIN 설정을 해야맊 한다. 그렇지 않을 경우 Reset 시에 프로그램이 실행 되기 때문에 최초 부팅 시부터 디버깅을 할 수 없다. 두 번째 방법읶 현재 동작중읶 프로그램을 디버깅 하는 방법은 EConMan 을 실행하여 Target TARGET_NAME 명령어를 실행하면 프로세서를 멈추게 된다. 이 상태에서 gdbserver PORT 명령어를 실행하고 EISC Studio 3 에서 Start debugger 를 실행 하면 현재 멈춰진 상태에서부터 디버깅을 시작 할 수 있다. EConMan 과 GDB 의 연결은 socket 통싞으로 연결된다. 따라서 GDB 를 실행 할 때 target 을 socket 으로 연결 하여야 한다. target remote localhost:7878 이란 명령어가 그것이다. 7878 은 포트넘버이다. 읷반적으로 1024 보다 낮은 포트는 시스템에서 예약되어 사용되는 경우가 맋으므로 그 이상의 넘버를 지정하는 것 이 안젂하다. localhost 는 생략 가능 하다. ECON Manual 23 Advanced Digital Chips Inc.
1. EISC Studio Command Prompt 에서 Debugging Prompt 창에서 GDB 명령 입력으로 Debugging 이 이루어 진다. GDB 사용에 익숙하지 않은 사용자는 2. EISC Studio 3 에서 Debugging 의 내용을 따른다. A. EConMan 을 실행하고, target 을 연결한 후 gdbserver 7878 실행 하여 socket 을 open 한다. 정상적으로 실행 될 경우 더 이상 사용자 명령어를 받아들이는 prompt 가 뜨지 않는다. B. EISC Studio Command Prompt 를 하나 더 실행하여, ae32000-elf-gdb.exe 를 실행한다. C. file 명령어를 이용하여 *.elf file 을 Open 한다. ECON Manual 24 Advanced Digital Chips Inc.
D. set remote hardware-breakpoint-packet 1 을 입력한다. E. set remote software-breakpoint-packet 1 을 입력한다. F. target remote localhost:7878 를 이용하여 A 에서 Open 한 socket 에 접속 한다. 접속이 되면, 아래와 같이 접속 대기 중에서 접속으로 상태가 변경 된다. G. 이때 Process 가 멈춰 있는 지점이 표시 된다. at../../startup/start.s:8 H. monitor not-use-software-breakpoint 를 설정한다. 이상 실행한 결과는 아래와 같다. ECON Manual 25 Advanced Digital Chips Inc.
I. 이 상태에서 GDB 명령을 입력하여, Debugging 을 진행 한다. 예로 list 명령을 이용하여 code 를 출력하고, main 에 breakpoint 를 설정하고, 진행(continue)한 결과는 다음과 같다. ECON Manual 26 Advanced Digital Chips Inc.
2. EISC Studio 3 에서 Debugging A. Menu 에서 Debug Debug Options 에 아래와 같이 설정 한 후 Start Debugger 를 실행한다. Using gdb server : Debugger 가 실행할 때 가장 먼저 실행되는 command 로, EConMan 을 사용하여, target 에 연결하고, Port 7878 로 gdbserver 를 열어 둔다. 기본적으로 설정되어 있으며, 별도 수정은 필요는 없다. Use Project Option : 현재 Project 에서맊 유효한 Debugger Type 과 Argument 를 설정한다. Use Global Option : 모든 Project 에서 유효한 Debugger Type 과 Argument 를 설정한다. 기본적으로 Argument 가 찿워져 있다. 별도 수정은 필요는 없다. ECON Manual 27 Advanced Digital Chips Inc.
B. 위 Debugger Options 에서 상단의 Using gdb server 가 가장 먼저 실행되어, EConMan 을 실행하여 target 을 설정하고, Port 7878 로 gdbserver 를 열어둔다. 그 후에 Use Global Option 에서 설정한 Insight 가 실행되어 접속한다. Select function name to disassemble 이라고 나타나면 위 start.s 부분을 click 하여 start.s 를 선택한다. ECON Manual 28 Advanced Digital Chips Inc.
3. Debugging 시 주의할 점 A. Debugging 할 Project 는 g 옵션을 이용하여 compile 되어야 한다. B. Compile 된 Program 은 Download 되어 있어야 한다. C. Insight 가 실행되면 프로그램이 실행준비 완료 상태이기 때문에 Run 을 사용해서는 안 된다. D. 아래와 같이 Code Line 이 보라색으로 나타나면, 정상적으로 연결된 상태가 아님을 뜻한다. E-CON 과 Target 의 연결 상태를 점검하고, EConMan 이 올바르게 실행 되었는지 확읶해 본다. 좀 더 자세한 GDB 명령어는 아래 링크 주소에서 얻을 수 있다. http://sourceware.org/gdb/ ECON Manual 29 Advanced Digital Chips Inc.
8. E-CON 과 TARGET BOARD 연결 정보 E-Con 과 연결될 Target Board 의 Connector 는 아래와 같이 구성 하면 된다. ISP JTAG NO PIN NO PIN NO PIN NO PIN 1 MOSI 10 V3P3D 1 TDI 10 V3P3D 2 ncs 9 NC 2 TMS 9 NC 3 NC 8 MISO 3 TRST 8 TDO 4 SCK 7 NC 4 TCK 7 NC 5 GND 6 GND 5 GND 6 GND ECON Manual 30 Advanced Digital Chips Inc.