Shortcut for T32
2012년 8월 9일 목요일
오후 3:03
 
Trace32 Command Summary

대분류

단축키

설명

   

심볼명 = 함수명 or 변수명

   

   

주소 = num

   

화면

   

   

   

winclear:

모든 windows를 close하겠다는 command

   

screen

화면 update

시스템

   

   

   

sys.res

디버거를 리셋

   

sys.u

타겟시스템과 디버거가 연결되면서, 동시 점검 및 타겟리셋과 더불어 디버깅 ready상태로감.

   

sys.d

타겟시스템과 디버거가 연결을 제거

   

sys.g

sys.up + go

   

sys.mode attach

target을 reset하지 않고 현재상태에서 T32와 연결을 하여 현재 상태(현재 pc주소)를 보여준다.

   

res

icd debugger reset와 target reset를 동시에 수행한다.

   

   

sys.up 구조

   

   

1. JTAG test

   

   

2. target reset

   

   

3. target과 연결후 디버그 모드로 전환

   

   

3. pc를 0번지로 만든다.

브라우징

 

   

   

y.b

어떤 심볼을 찾아야 하는데 그 심볼의 이름을 정확히 알수 없을때(참고로, 먼저 해당 elf가 로딩되어 있어야 한다.)

   

y.b.m [파일명]

어떤 파일 (t32에서는 모듈이라고 부름)을 찾고 싶을때,

   

   

c파일경우는 확장자 없이. H파일경우는 확장자와 함께 파일명을 기록한다.

   

y.l [심볼명]

심볼이 위치하는 주소및 주변주소를 참조하거나 알고 싶을때

   

y.l.SEC

알지 못하는 어떤 모델의 메모리 맵을 보고자 할때, 섹션과 메모리 위치를 보여준다.

   

y.d [섹션명]

위에서 보여준 섹션을 심볼에서 제거 할수있다. 즉, y.b했을경우 제거 하면 나오지 않게 된다.

브레이크

 

   

   

map.nobonchip 0--0xffffff

s/w interrupt mode를 사용하기위해서

   

map.bonchip [range]

map.bonchip 0x0—0xffff = flash memory나 Rom과 같은 영역을 trace32에게

   

   

알려 주어 trace32로 하여금 그영역에는 onchip break를 seting 하도록 함

   

   

이영역 이외에 break를 걸면 s/w break로 인식하게된다.

   

b.l

break 브라우징 창열기, 현재 어떤 break가 걸렸는지와 그 상태를 알고 싶을때

   

b.s 심볼명/주소

특정 심볼위치에 break를 건다.

   

b.s num--num /w

특정 메모리 영역을 write할때 break가 걸린다.

   

b.s num /w

특정 메모리를 write할때 break가 걸린다.

   

b.s nvimr_read

break set 함수 (ex: b.s error_fatal_put_log)

   

   

ex) b.s 0x1000000 /HLL 특정 메모리에 HLL break를 건다.

   

   

b.s 변수명 /data.b 0x55

   

   

b.s sieve = sieve함수 첫머리에 break point를 잡겠다는 command

   

   

b.s sieve+0xf0 = sieve함수 첫머리에서 0xf0만큼 offset을 갖는 위치에

   

   

break point를 잡겠다는 command

   

b.d

break delete

변수및 메모리

 

   

   

d 심볼명/주소 /spotlight

특정 심볼위치의 메모리나 주어진 번지의 메모리 내용을 보여준다.

   

   

(참고로 트레이스에서는 0x를 붙이지 않아도 모든 주소를 hex로 인식, spotlight은 주황색으로 변화된값을 표시)

   

   

Dump [address] [/width]

   

   

ex)d 0xfff0 /W = word단위로 0xfff0번지부터 dump창에 보여줌(default long)

   

v.v %open rex_best_task

variable view 특정변수나, 구조체의 값을 display

   

v.print 변수이름

변수 print

   

   

그냥 print와 차이점: 그냥 print는 cmm파일등에서 &input과 같이 선언된 사용자 변수를 보기위한 것이며

   

   

v.print는 trace하고 있는 소스상의 변수를 보기위함이다.

   

v.INFO 변수명

enum type의 변수값을 보고자 할때

   

d.s

Data.Set [address][%L | %W | %B][data] :

   

   

명시된 addr에 4bytes(long)나 1bytes(word),1byte(byte)단위로 명시된 data를 써넣겠다는 command

   

   

ex)data.set 0xff0 %w 0xf0f0 = data 0xf0f0의 값을 0xff0에 써넣음

   

   

d.s 0xff20 %b 0xff = data 0xff를 0xff20번지에 써넣음

   

d.SAVE

Data.SAVE.[binary | InteHex] ] [file name] [range]

   

   

ex)d.save.b test.bin 0x0—0xffff = 0번지부터 0xffff번지까지 binary format으로 test.bin file에 저장

   

d.LOAD

Data.LOAD.[format] [file name] [address]

   

   

ex)d.load.b test.bin 0xfff0 = binary format인 test.bin file을 0xfff0번지부터 down

   

   

loading하라는 명령임,여기서 format은 elf,coff,binary,intelhex,srecord,omf등임

   

d.f

Data.Find [range] [%width] [data]

   

   

ex)d.f 0x0—0xffff %l 0xf0f0f0f0 = 이는 0—0xffff번지내에서 data(long형4byte) 0xf0f0f0f0

   

   

를 찾으라고 하는 명령임

   

d.compare

특정 영역의 내용끼리 비교한다.

   

   

ex) d.compare 0x100++0x300 0x1100

   

   

0x100-0x400까지의 영역을 0x1100-0x1400과 비교한다.

   

Data.Test &range /Prime

T32에서 지원하는 RAM 테스트 루틴으로 임의의값을 write하여 정상동작을 검사한다.

   

d.l 심볼명

특정 심볼위치를 보여준다.

   

   

Data.List [address]

   

   

ex)d.l 0x1000 = 1000번지부터 source list창을 띄워주게 된다

   

   

ex)d.l = default값으로 0번지부터 source창을 띄워준다

   

d.l

현재 break가 걸린 메모리번지를 기준하여 그에 해당하는 소스라인의 명령을 볼때

   

d.l num

특정 메모리번지를 선택한다.

레지스터

 

   

   

r /spotlight

register 브라우징 창열기, 현재 모드별 레지스터값을 출력해주고

   

   

변화된 값을 주황색으로 보여준다.

   

Register.Set [register name] [data]

 

   

   

ex)r.s pc 0x10000 = pc값을 0x10000으로 써넣음

   

   

r.s pc sieve = pc값을 sieve함수가위치한 addr에 위치하도록 함

   

r.undo

한 step전으로 돌아가는 명령어로, 레지스터 값을 이전으로 돌리므로써 구현된다.

   

   

그러므로 일반 메모리 operation을 수행했다면, 그것은 이전으로 돌리지는 못한다.

   

   

디버깅 장비를 연결할여 타겟을 동작시 running시는 일반 normal 모드로 장비가 물려있지 않은 상태와 같게

   

   

된다. 그러나 break을 걸때, 타켓을 디버깅 모드가 되어 타켓의 정보를 디버깅 장비가 읽어올수 있게 되는 것이다

   

   

그러므로 r.undo를 했을때, 만약 step으로 실행시켰다면 바로 이전 명령어로 가겠지만, go stop으로

   

   

실행했다면 이전 break가 걸린 곳으로 가게 되는것이다.

   

   

이것을 이용하여 reset 되면 sys.up을 하여 target을 붙이고. r.undo하여 t32에 저장된 이전 레지스터 값을

   

   

로딩하여 이전 마지막으로 break되었던 곳으로 이동할수가 있는것이다. 그래서 만약 step cmd로 동작하고

   

   

있었다면 바로 이전명령어가 되는것이다.

   

r.redo

undo한것을 다시 원상태로 만든다.

인터럽트

 

   

   

to.set [IRQ/FIQ] [on/off]

IRQ/FIQ/ETC등을 trace에서 받도록 설정하거나 disable시킨다.

   

   

ex) to.set IRQ off

디버깅

g (go)

Go [address] : ex) go = 프로그램을 실행하겠다는 command

   

   

go sieve = sieve함수까지 실행하겠다는 command

   

s (step)

step명령(source list창의 step버튼과 같음)

   

b (break)

break명령(source list창의 break버튼과 같음)

   

wait [time.ms|s]

프로그램 running과 상관없이 trace가 몇초동안 기다린후 명령을 수행하게된다.

   

   

ex)

   

   

wait 100.ms;

   

   

WAIT 1.s ;

   

   

WAIT Register(pc)==0x1000 ;

   

   

WAIT !run() ;

   

print "[text string]"

print " " 문자열을 area에 표시해 준다.

   

   

ex) print "this is test mode" = status line에 this is test mode출력

디버깅관련 명령 설명

 

   

   

(Step) : HLL또는 disassemble된 소스를 한 개의 라인씩 진행. 함수내로의 step into기능도 포함하고 있음.

 

   

(StepOver) : Step명령과 비슷하나 함수내로 분기해 들어가지 않고 함수도 하나의 라인으로 간주하고 처리

 

   

(Go Next ) : Step Over 명령과 유사하나 루프문에서 바로 빠져 나올수 있음.

 

   

(Go Return) : 함수의 리턴문까지 수행

 

   

(Go Up) : 함수를 빠져 나옴. 호출한 상위 모듈로 올라감.

 

   

* Go till here(Pop up 메뉴) : 현재 커서가 있는 부분까지 수행.

 

   

* Set PC here : PC만 현재의 커서부분으로 옮김.

 

기타

   

   

   

cmm file editor : 이는 cmm file(mcro file)을 편집하고 실행할수있는 editor를 여는 command이다.

 

   

   

pedit [file name]

   

   

ex)pedit moon = moon.cmm file을 editor에 가져옴

   

menu editor : 이는 menu file을 편집하고 compile해서 저장할수 있는 editor를 여는 command이다

 

   

   

menu [file name]

   

   

ex)menu test = test.men file을 menu editor에 가저옴

   

   

ex)menu : t32.men 파일이 열리면서 편집가능함.

   

   

일반 editor로 t32.men을 편집시에는 menu.rp라는 명령을 추가로 실행시켜야 적용이됨.

   

text editor

   

   

   

edit [file name] : 이는 도스상에서 edit 명령을 친것과 거의 다름없는 명령어로서 text editor이다

   

   

ex)edit text.txt

   

history,ls,dir,copy명령 :

   

   

   

history명령은 지금까지 command line에서 사용한 명령을 보여주는 command이고

   

   

ls/ dir은 현제 path의 file및 folder를 보기 위한 명령이며

   

   

copy명령 또한 dos command와 같은 기능을 한다

   

현재 Trace32에서 지원하고 있는 패러렐 모드로는 양방향 스탠다드모드,ECP, EPP 모드가 지원 되고 있음.

 

   

EPP는 스탠다드 방식에 비해 다운로드와 업로드 속도가 2-3배 빠르며 ECP의 경우는 다운로드 속도만 3-4배 빠름.

 

   

이 설정을 위해서는 PC BIOS에서 알맞은 모드로 설정해주어야 한다.

 

   

Trace32은 PRACTICE라는 매크로 언어를 사용하여 일련의 과정을 일괄 처리할 수 있다(do filename.cmm).