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' 이 선택되어질 것이다.