====== TRACE32 사용하기 ======
T32 의 여러가지 사용방법에 대해서 설명하고 있다.
T32 가 다른 디버거들과 가장 크게 다른 점이 있다면, T32 내에서의 자체적인 스크립트 언어(.cmm) 를 이용해서 여러가지 작업들을 할 수 있다는 것이다. 앞에서 스크립트 언어라고 표현한 것은 자체적인 문법을 가지고 있기 때문이다. 또한 반복적인 작업을 자동화 시켜줌으로서, 좀 더 편한 디버깅을 할 수 있다.
.cmm 파일을 이용해서 생각보다 많은 일들을 할 수 있다.
====== Toolbar 에 버튼 추가하기 ======
T32 에서는 메뉴와 아이콘이 위치한 Toolbar 를 편집할 수 있다. 정말 강력한 기능이 아닐 수 없다.
먼저,
B:: MENU T32.MEN
입력하면, 창이 하나 뜬다. 바로 T32.mem 파일을 수정하기 위한 창이다. 여기서 사용자의 입맛에 맞게 편집을 해주면 된다.
여기서는 간단한 예제로 FAT 이라는 이름의 아이콘을 Toolbar 에 추가시켜 보겠다. 다음과 같이 추가한다.
;======================================================================
; Speedbar definition
;======================================================================
toolbar
(
separator
toolitem "Single Step" ":step" "Step"
toolitem "Step Over Call" ":stepover" "Step.Over"
separator
toolitem "Go Next" ":gonext" "Go.Next"
toolitem "Go Till Return" ":goreturn" "Go.Return"
toolitem "Go Up" ":goup" "Go.Up"
separator
toolitem "Go" ":go" "Go"
toolitem "Break" ":brk" "Break"
separator
toolitem "Toggle Mixed/HLL Mode" ":mode" "Mode"
separator
toolitem "Help Topics" ":help" "help.topics"
toolitem "Help Context" ":helpc" "help.pick"
separator
toolitem "Stop Command" ":stop" "STOP"
separator
toolitem "Fat" ":stop" "AREA" -->> 바로 이 부분을 추가
)
추가해준 뒤에 'Save+Comp' 버튼을 누르면, 저장과 동시에 컴파일이 된다. 컴파일 에러가 없다면, Toolbar 의 맨 오른쪽에 버튼이 하나 생겼을 것이다.
마우스를 아이콘에 갖다대면, 'Fat' 이라는 글자가 뜨고, 누르면, 'AREA' 명령어가 실행되어, 창이 하나 뜬다.
| toolitem | Comment(풍선말) | 표시될 아이콘 | 눌렀을 때 실행 명령어 |
===== REGISTER.REDO & UNDO 버튼 만들기 =====
디버깅을 좀 더 용이하게 하기 위해서 자주 쓰는 명령어를 버튼으로 만들어보자!
앞의 설명에서와 같이, 'menu t32.men' 을 실행하여, 다음과 같이 추가해주면 된다.
...
...
toolitem "Help Context" ":helpc" "help.pick"
separator
toolitem "Stop Command" ":stop" "STOP"
separator
toolitem "Undo" ":stop" "REGISTER.UNDO" -->> 바로 이 부분을 추가
toolitem "Redo" ":stop" "REGISTER.REDO" -->> 바로 이 부분을 추가
...
...
'Save+Comp' 버튼을 누르면, 두 개의 아이콘이 보인다.
====== Menu 추가하기 ======
이번에는 기존의 메뉴에 새로운 메뉴를 추가해보도록 하겠다.
B:: MENU T32.MEN
다음과 같이 추가한다.
popup "&Help"
(
default
menuitem "[:help]&Contents" "HELP.Topics"
menuitem "[:index]&Index" "HELP.Index"
menuitem "[:find]&Find" "HELP.Find"
menuitem "[:tree]T&ree" "HELP.Tree"
separator
menuitem "&Operating System User Manual" "HELP __IDE_USER_"
separator
if ice()
(
menuitem "&ICE Target Manual"
(
local &item
&item=cpuhelp()
help __em&(item)_
)
menuitem "ICE &User Manual" "HELP __E_USER_"
)
else
(
if fire()
(
menuitem "&FIRE Target Manual"
(
local &item
&item=cpuhelp()
help __em&(item)_
)
menuitem "FIRE &User Manual" "HELP __FIRE_USER_"
)
else
(
menuitem "ICD &Target Manual"
(
local &item
&item=cpuhelp()
help __em&(item)_
)
menuitem "ICD &User Manual" "HELP __B_USER_"
)
)
enable analyzer()
menuitem "&Analyzer User Manual" "HELP __A_USER_"
addhere
separator
enable ta32()
menuitem "Timing Analyzer User Manual" "HELP __TA_USER_"
enable powerprobe()
menuitem "Power Probe User Manual" "HELP __PP_USER_"
enable stg()
menuitem "Stimuli Generator User Manual" "HELP __STG_USER_"
separator
menuitem "[:t32]About TRACE32..." "VERSION"
)
/* 추가할 부분 */
popup "&inter"
(
menuitem "&disable"
(
setup.imaskasm on
setup.imaskhll on
)
menuitem "&enable"
(
setup.imaskasm off
setup.imaskhll off
)
)
/* 추가할 부분 */
)
저장한 후에, 컴파일을 한다. 에러없이 수행되었다면, 메뉴의 맨 오른쪽에 'inter' 이라는 이름의 메뉴가 생성되었을 것이다.
'CPU -> System Settings...' 를 선택하고, 앞에서 만든 메뉴의 항목을 선택해본다. Option 항목중에 'IMASKASM , IMASKHLL' 이 선택되어질 것이다.
----
{{indexmenu>:#1|skipns=/^(wiki|etc|diary|playground)$/ skipfile=/^(todays|about|guestbook)$/ nsort rsort}}
----