카테고리 없음

[펌] ▧ T32

꿈꾸는 모먼트 2011. 10. 28. 10:55
▧ T32 입문 교육 최초 장비 세팅
[출처 ] http://www.hachangho.com/homev30/bbs/zboard.php?id=tech&page=5&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=199&PHPSESSID=8ead7879698a22a10199bae0eadb95d9

1. 전원 연결시 먼저 T32 케이블 연결하고 T32 부터 전원 켠 후 타겟 보드에 전원을 넣는다.

2. Select 램프에 불이 깜박이다가 SYS.U 시 불이 켜진 상태로 지속된다.

3. 타겟 보드에 파워가 OFF 일 경우 Power Down 으로 표시되고
파워 ON 시 System Down 으로 표시
SYS.U 시 System Up 으로 표시된다.

4. JTAG Line Test
>>B::SYS.D
>>B::AREA
>>B::AREA.RESET
>>B::diag 3400
하면 결과 나옴
만약 다른 테스트를 원한다면
>>B::diag
하면 옵션값이 상세하게 나옴

5. 소프트웨어 및 펌웨어 버젼
메뉴의 Help 에 About T32 누르면 상세히 나옴

6. ARMXX-S 프로세스의 경우 RTCK 를 CPU의 RTCK로 연결하고 SYS 설정에서 클럭을 RTCK 로 설정해야 한다.
타 프로세스의 경우 그냥 GND 로 연결


▧ T32 입문 교육 최초 설정 부터 다운로드 까지
[출처] http://www.hachangho.com/homev30/bbs/zboard.php?id=tech&page=5&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=200&PHPSESSID=8ead7879698a22a10199bae0eadb95d9

1. 시스템 시작시 매크로 실행 파일 만들기
>>B::pedit sys.cmm
// >> sys.cmm 파일 내용시작
B::
SYS.RES
SYS
D.L // 데이터 리스트
Y.B // 심볼 브라우져
Y.RES // 심볼 브라우져 리셋
SYS.CPU ARM920T
SYS.JC 10.0MHZ
SYS.U
ENDDO
// << sys.cmm 파일 내용끝

2. 매크로 실행하기
>>B::DO sys.cmm
또는
>>B::DO *
하여 선택해서 실행

3. 메뉴 구성 및 툴 아이템 바꾸기
>>B::menu T32.men
실행 후 다음을 추가
toolitem "DIR"         "DI,R"         "do c:\t32\system.cmm"
"DIR" 은 풍선 도움말 명
"DI,R" 아이콘 이름과 색깔 R은 빨강
"do c:\t32\system.cmm"은 실행할 내용
예제
  toolitem "Window Clear"         "WC,R"         "winclear"
  toolitem "pedit load.cmm"         "ed,R"         "pedit load.cmm"
  toolitem "do load.cmm"         "ex,R"         "do load.cmm"
수정 후 변경 적용을 원할 때
>>B::DO T32.cmm

4. 최초 매크로 파일에 자동실행 변경하기
>>B::pedit T32.cmm

5. 다운로드
BIN 파일은 기계코드만 있는 파일
ELF 파일은 헤더와 기계코드 심볼 정보가 있는 파일
BIN 파일 다운로드의 경우
>>B::D.LOAD.B Test.BIN 0x번지수 /옵션
ELF 파일 다운로드의 경우
>>B::D.LOAD.E Test.ELF

뒤에 붙는 옵션의 종류
ComPare: 비교만 한다.
NOCODE: 심볼만 로드해서 디버깅하겠다.
NosYmbol: 바이너리만 다운로드 하겠다.
NoClear: 기존꺼 지우지 않고 다운로드

6. 디버그시 심볼정보가 있는데 소스가 나오지 않을 경우
제 컴파일 하거나 원래 컴파일시 디렉토리 구조 맞춘다.
심볼 소스 바꾸는 명령어
Y.SPath + * // 심볼 위치를 추가 하겠다

7. 디버그시 심볼정보가 없을 경우
컴파일러 옵션에서 심볼정보 포함하여 컴파일 하도록 옵션 조정

8. 다운로드 메크로 만들기
// >> load.cmm 파일 내용시작
B::
do sys.cmm
do windows.cmm // 현재 윈도우 위치 저장된 매크로
data.load.elf C:\T32\example\Debug\project.axf /nocode
y.spath + C:\T32\example\교육용코드 // 심볼 위치 추가
register /sl
map.bonchip 0x0--0x3fffff // onchip breakpoint 잡기
go Main // 심볼의 메인 함수 위치로 가라 대소문자 구분
ENDDO
// << load.cmm 파일 내용끝

9. Toolbox 에서 New Page 하면 페이지 넘기면서 작업 할 수 있다.



▧ T32 입문 교육 메뉴 구성
http://www.hachangho.com/homev30/bbs/zboard.php?id=tech&page=5&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=201&PHPSESSID=8ead7879698a22a10199bae0eadb95d9

1. 심볼브라우져 윈도우
>>B::Y.B
또는 메뉴의 View>Symbol
함수 찾을 때
함수 내용 볼 때
변수의 값 내용 볼 때
함수 내용 안에 변수나 함수 찾아가기

2. 데이터리스트 윈도우
>>B::D.L
소스 정보와 어셈블리 코드 정보
PC 위치
브레크이크 설정 및 디버깅

3, 데이터덤프 윈도우
>>B::D.dump Main /DIALOG /BE //창메뉴 넣고 엔디언 바꿔서 보여줘라
>>B::D.S SD:0x30000000 %LE %LONG 0x12345678 // 해당 번지에 리틀엔디언으로 글을 써라
Modify 데이터 채우기 및 테스트
Find 데이터 찾기
>>B::D.dump sunny++0x1f /DIALOG /BE /BYTE /SpotLight //창메뉴 넣고 엔디언 바꿔서 sunny 변수 부터 0x1f 까지 변수가 바뀌는 점을 표시해서 보여줘라

4. (중요) 디버그시 C 코드만 보고 디버그 진행해서는 안됨
가끔 Static 등의 변수의 경우 실제 C 소스 위치에 어셈블 코드가 없어
변수 값이 다르게 설정되는 경우가 있음


▧ T32 입문 교육 메뉴 구성 2
[출처] http://www.hachangho.com/homev30/bbs/zboard.php?id=tech&page=5&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=202&PHPSESSID=8ead7879698a22a10199bae0eadb95d9

1. 레지스터 윈도우
>>B::register /sl
>>B::register .undo // 레지스터 값을 이전값으로 변경 단 데이터 값이 바뀌지 않음 ETN 장비가 있다면 가능
>>B::CTS // 의 사용으로 데이터 값까지 백트레이스 가능

2. 브레이크 리스트로 현재 설정된 브레이크 리스트 확인 및 설정 가능
>>B::B.L

3. 와치 윈도우
>>B::Var.Watch
>>V %sp sunny[1] = 0 // 값 바꾸기
해당 변수 클릭후 포멧을 바꾸면 해당 변수의 포멧 및 포인터의 값을 알 수 있다.

4. 스택 윈도우
>>B::Var.Frame /L /C

5. Freeze 기능은 창 상태 변경을 멈춘다.
새창을 띄워 진행후 멈춘 창과 값을 비교한다.

6. 자동 와치 윈도우
>>B::Var.Ref
>>B::Var.Local

7. 데이터를 한글로 보려면
SETUP.ASCIITEXT DBCS SPACE
원래대로 영문으로 보려면
SETUP.ASCIITEXT full7


▧ T32 입문 교육 브레이크 포인트
http://www.hachangho.com/homev30/bbs/zboard.php?id=tech&page=5&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=203&PHPSESSID=8ead7879698a22a10199bae0eadb95d9

1. 브레이크 포인트 종류
OnChip 브레이크 포인트는 2개 까지 플레쉬도 가능
Software 브레이크 포인트는 무한정이나 메모리(램)에 소스가 있어야 한다.

2. 브레이크 포인트 종류 변경
온칩 브레이크 포인트 잡기 위해서
B::>>map.bonchip 0x0--0x3fffff // onchip breakpoint 잡기 0x0--0x3fffff는 플레쉬 메모리 위치
실행
현재 맵 구조를 보면 설정 상태를 볼 수 있음
B::>>map.list
온칩 브레이크 포인트를 지우려면
B::>>map.reset
하면 옵칩설정 지워짐
이 때 브레이크 잡을 때 클릭시 에러나는 이유는 플레쉬의 데이터를 브레이크 잡기 때문

3. 브레이크 포인트 어드번스드 옵션 보면 상세히 설정 할 수 있음