티스토리 뷰
개요
처음 ATmega328P 칩을 다루게 되어
IDE 는 Atmel Studio 7, Programmer / Debugger 는 Atmel-ICD3 를 사용하게 되었다.
Atmel-ICD 는 Programmer 와 Debugger 를 동시에 사용할 수 없고,
Debugging 을 하려면 매번 보드의 DWEN fuse bit 를 설정해줘야 하며
다시 ISP (=Programming) 을 하려면 disable 해줘야 한다.
처음 접하는 분들께는 낯설 수 있기에 간단히 정리, 공유한다.
- 참고링크: https://goo.gl/R7S5zR
개념도
Fuse bytes 라고 하여, 잘 변하지 않는 설정값으로 칩셋에 써넣는 것들이 있다.
- SPIEN 을 set 하면 SPI 를 통해서 PC - Atmel-ICD3 - Atmega328P 로 Programming (ISP = In-System Programming)이 가능하다.
(중요) DWEN 을 하더라도 SPIEN 은 항상 enable 되어 있어야 한다.
- DWEN 을 set 하면 debugWIRE 를 통해서 디버깅이 가능하다.
debugWIRE 모드로 들어가기
- 참고링크: https://goo.gl/R7S5zR
1) Project >> (Project 의 ) Properties… >> Tool 메뉴로 들어간다.
2) debugger 를 Atmel-ICE 로 선택하고, 인터페이스를 debugWIRE 로 선택한다.
3) Debug >> Start Debugging 을 선택
4) 하지만 DWEN unset 상태라서 안된다. 이때 Atmel Studio 가 대신 DWEN set 해줄지를 물어본다. Yes!
5) 두번째 팝업의 안내처럼 Target (=Atmega328P)의 파워를 껐다가 켜주면 debugWIRE 모드가 된다.
|
|
* 참고. Make sure that the reset line is free 라는 구문을 주의해서 보자. DWEN set 상태라 하더라도
reset line 에 capacitor 등이 달려있어서 천천히 low 상태가 된다면 debugWIRE 를 쓸 수 없는 경우가 있다.
이때에는, capacitor 를 떼어내면 된다.
* 참고. Tools >> Device Programming 메뉴에서 DWEN set 하고 fuse 를 program 할 수도 있다.
- 이때, SPIEN 도 set 상태를 유지해야 함에 주의할 것
debugWIRE - debugging 하기
수정하고 프로그래밍하기
1) Stop Debugging 한 다음
2) 코드 수정 및 build
3) Start Debugging 하면 Writing 해주고 실행됨
디버깅하기
1) 코드의 멈추고 싶은 위치에 asm("break"); 삽입하고 build → Start Debugging
2) UART 로 원하는 위치에서의 값 출력하기
3) breakpoint 설정, 변수값 보기
ISP mode 로 돌아오기
현재는 Atmel-ICE가 debugWIRE 모드이다.
여기서 나가려면 Debug >> Disable debugWIRE and Close 선택
→ Atmel-ICE 가 ISP 모드로 바뀐다. 아마도 fuse의 debugWIRE bit 가 disable?
'embedded' 카테고리의 다른 글
Embedded Project - Modularizing (0) | 2019.01.18 |
---|---|
Atmega 328p - Software reset (1) | 2019.01.16 |
ScriptCommunicator - Serial packet test (0) | 2018.12.20 |
Arduino - Memory and PROGMEM, F() macro (0) | 2018.09.28 |
Arduino - TCP Client로 명령받기 (10) | 2018.09.18 |
- Total
- Today
- Yesterday
- strange
- folklore
- 노션
- intellij
- bun
- OpenAI
- Gin
- 체호프
- go
- Bug
- 인텔리제이
- API
- 영화
- github
- websocket
- 잡학툰
- 제이펍
- ChatGPT
- 독서
- golang
- 클린 애자일
- agile
- 티스토리챌린지
- 엉클 밥
- 독서후기
- 오블완
- solid
- clean agile
- 2023
- notion
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |