Upload
others
View
9
Download
1
Embed Size (px)
Citation preview
AVR Studio 4를 이용한ATmega128 디버깅
발표자: 이정법연암공업대학 S/W과 3학년
2012. 09. 10.
2019-04-25 1
순서
1. 개요
2. 생김새
3. AVR Studio 4 설치
4. AVR Studio 4 실행/프로젝트 생성
5. JTAG 사용 준비
6. JTAG을 이용한 디버그
7. 질의 응답
2019-04-25 2
개요
• 목표: AVR Studio 4와 타겟 보드 사이를JTAG 인터페이스를 통해 연결
• 장점: 실제 보드상에서 동작하는 프로그램을 실시간으로 디버깅 가능(포트/레지스터 단위 상태 조회 및 제어, 중단점 설정 등 가능)
호스트 PCJTAG
Emulator타겟 보드
2019-04-25 3
개요
• 준비물: ATmega128 보드 세트
(AB-M128Pro-A V03)
JTAG Emulator
(AD-JTAG V02)
ISP
(AD-USBISP V4.0)
컴퓨터
(USB Port 필수)
2019-04-25 4
드라이버는http://www.newtc.co.kr
에서모델명으로
찾을 수 있습니다
개발 보드 생김새
JTAG 포트PORT F와 단자 공유
GPIO PORT E0 ~ 7
ISP 연결 단자
GPIO PORT B0 ~ 7
GPIO PORT D0 ~ 7
리셋스위치
GPIO PORT C0 ~ 7
GPIO PORT A0 ~ 7
7-SegmentPORT A, C 사용
전원 연결 단자DC 12V/1A
2019-04-25 5
JTAG Emulator 생김새
USB LINKUSB 연결시 점등
USB DATAUSB 자료 소통시 점등
JTAG DATAJTAG 자료 소통시 점등 JTAG CONN.
JTAG 연결시 점등
2019-04-25 6
JTAG Emulator에 커넥터를 꽂을 때 들어가지 않는다고 무리한 힘을 가하지 마세요. 모든 일에는 그럴만한 이유가 있는 겁니다. (커넥터 연결방향 존재)
AVR Studio 4 설치
• http://www.atmel.com/Images/AvrStudio4Setup.exe
에서 다운로드 후 설치 진행
* 주의사항 *
설치 도중 드라이버 설치를 물어볼 경우
함께 설치 후 설치 속행
필히 설치 완료 후 ISP 연결!
2019-04-25 7
AVR Studio 4 실행
• 시작→프로그램→Atmel AVR Tools→AVR Studio 4
2019-04-25 8
프로젝트 생성
자동으로 나타나지 않거나 실수로 닫았다면 Project→Project Wizard
Type은 Atmel AVR Assembler로,저장 경로는 입맛대로 설정
2019-04-25 9
ISP 연결
• ISP를 보드의 ISP 커넥터와 컴퓨터의USB Port에 연결 후 장치 드라이버 설치
• JTAG으로 디버깅이 목적인데ISP를 연결해야 하는 이유는?>> 보드 출고 당시 기본적으로 JTAG을 사용하지 않게 되어있기 때문.
(JTAG을 enable하게 되면 PORT F의 8핀 중 4핀을 사용할 수 없음)
(근거: ATmega128 Datasheet)
ISP로 먼저 enable 해주어야 함
2019-04-25 10
http://www.newtc.co.kr에서 자료실→AVR 참고
JTAG 사용 준비과정
• AVR Studio에서Tools→Program AVR →Connect…
COM Port 번호는 PC마다 다를 수 있으니 장치 관리자에서 확인 후 사용>> 시작 – 컴퓨터 – 마우스 오른쪽 눌러서 속성 – 장치 관리자로 가서
포트(COM & LPT) 쪽 확인
Platform은?
STK500설정 확인 후
Connect!
2019-04-25 11
JTAG 사용 준비과정
OCDEN, JTAGEN이 check되어 있는지 확인 후
Program 프로그램 완료 후 JTAG을 연결
2019-04-25 12
JTAG 연결
• JTAG Emulator를 보드의 JTAG 커넥터와컴퓨터의 USB Port에 연결 후 장치 드라이버 설치
2019-04-25 13
http://www.newtc.co.kr에서 자료실→AVR 참고
JTAG 연결
• AVR Studio 4 에서
Tools→Program AVR→Connect...
Platform은?
JTAG ICE설정 확인 후
Connect!
2019-04-25 14
JTAG 연결
ATmega128을 선택 후 read signature를 눌러서선택된 장치와 서명이 일치합니다 라고 나오면 JTAG 정상 작동
2019-04-25 15
JTAG으로 디버그 해보기
• AVR Studio 4에서 프로젝트 생성 후다음의 예제 코드를 활용
idunno.asm 파일의 내용:1 .include "m128def.inc"2 .dseg3 .org 0x01004 MOLLA: .byte 15 .cseg6 .org 0x00007 RESET: RJMP MAIN8 .org 0x00809 MAIN: RJMP IL10 IL: RJMP IL11 .exit
*map 파일*(include것은 생략함)
DSEG MOLLA 0x00000100CSEG RESET 0x00000000CSEG MAIN 0x00000080CSEG IL 0x00000081
2019-04-25 16
간략한 디버거 사용법
• Label RESET, IL에 중단점 지정
커서를 RESET, IL에 놓고 F9를 누르거나
Debug 메뉴의 Toggle Breakpoint를 이용
중단점이각각 RESET, ILLabel에 지정됨
2019-04-25 17
간략한 디버거 사용법
• Debug 시작/종료
필히 타겟 보드와의연결상태를 확인 후
시도하세요!
주의: 디버그를 하게 되면 기존에 Flash내에 들어 있는 프로그램은지워집니다
2019-04-25 18
주의: 디버그 중에 코드가 변경되면 디버그를 중지 후다시 실행해야 합니다
Troubleshooting
• Debug를 시작하게 했지만 다음과 같이나오면서 잘 되지 않을 경우
COM1과 COM4 사이에 JTAG COM Port가 없거나 기타 알 수 없는 이유로인식 할 수 없기 때문에 위와 같은 이야기가 나옴
앞에서 Platform이나 COM Port를 정확히 확인하여 지정하였는지Cross Check 후 다시 진행
2019-04-25 19
중단점
디버그 실행 후 자동으로 RESET이 있는곳에서 실행이 정지되어 있는 상태
이 상태에서 F11을 누르면
2019-04-25 20
중단점
RESET Label에 있는 한줄을 수행하여위치가 MAIN으로 옮겨옴
참고로 PC값은 0x0080이 되나아직 0x0080에 있는 명령은아직 수행되지 않은 상태임
2019-04-25 21
레지스터 값 확인
여러 레지스터의 상태값을 표시
Register별 값 확인 및 수정 가능실행 사이클 확인 가능
위의 예시는 SREG의 Sign Flag을 ON한 모습
2019-04-25 22
I/O 제어
여러 범주의 입출력 가능 레지스터들이 존재
포트별로 연결된 주변 장치부터 먼저 확인
PORT A: 7-Segment 데이터PORT C: 7-Segment 위치
2019-04-25 23
I/O 제어
원하는 PORT를 찾아서마우스 클릭으로 각 PORT의 출력 상태를
변경 가능
위의 예시는 DDRA, PORTA를 전부 0으로 만든 모습임
Bits 칸은 총 8개이며 가장 왼쪽이 1번 핀에 대응됨검게 칠해져 있으면 1, 그렇지 않으면 0
2019-04-25 24
I/O 제어
• 7-segment 전부 켜보기(켜보고 싶으면 PORT를 다음과 같은 상태로 만든다)
상기 예시를 응용하면 다른 장치의 특성을 알아보는데 도움이 됩니다
(일일이 5V를 인가하는 것보다 더 나을지도…)
2019-04-25 25
Fusing
• 코딩을 완료 후 Build를 수행하면 프로젝트 경로에hex 파일이 생성됨
• Tools→Program AVR→Connect… 에서Platform과 Port 선택 (앞의 과정과 동일)
2019-04-25 26
Flash부분에서Input HEX File을
선택하고파일 선택
Program을 클릭(밑의 로그 메시지를
읽어봐서잘 되었는지 확인)
Program 전에Erasing이 자동으로
수행됨
Troubleshooting
• Programming을 하는데 JTAG이 연결된COM Port가 명단에 나오질 않습니다
포트를 사용하는 작업을 중지한 후에 다시 시도해 보십시오만약 디버그 중이라면 디버그를 중지하고 다시 시도해보시는 건
어떻겠습니까?
2019-04-25 27
질의 응답
감사합니다
2019-04-25 28