JTAG의 소개 및 원리
|
글쓴이: 유영창
K.E.L.P.
Korea Embedded Linux Project
Foreword
이 글은 K.E.L.P. (Korea Embedded Linux Project - 이하 KELP로 표기) Website에서 "유영창"님이 강의하신 [임베디드 강좌]중 "JTAG의 소개 및 원리"라는 내용의 강좌를 제가 HTML Format의 문서로 Conversion 작업을 한 글입니다. 원본이 Text문서인 관계로 모든 그림은 유영창님께서 직접 작업하신 ASCII Art로 되어있습니다. (일반 그림보다도 더 그림같은 환상적인 ASCII Art를 덤으로 감상하실수 있습니다...^^;)
KELP는 임베디드 리눅스 초보자들을 위해 문서로서 도움을 주고자 하는 곳입니다.
Copyright (c) 2001 유영창. |
- Original Text 문서 작성: 유 영창 / HTML Conversion 작업: 양 창우 -
JTAG를 알아야 하는 이유편...
등록: 2001-07-25 14:59:59
음... 정말 정말 글쓰기 위한 맘을 먹기 위해서 세운 하얀 밤이 몇 날 몇일 인지 모르겠네요. 항상 쓴다 쓴다 하면서 이렇게 키보드 두드리기가 너무 힘들군요... 그렇지만 이렇게 펜? 아니 키보드를 들어? 아니 치기 시작했습니다.
우선 박철님에게 하사 받은 내용 중 JTAG라는 훌륭한 디버그 툴이 있어서 이렇게 소개합니다.
자 이 단계는 어떤 단계인가.... i386과 StrongARM 의 비교 중 어떤 단계일까요? 부트 매체에 부팅 프로그램과 커널을 써 넣는 단계입니다. KELP의 숙제 중에 부팅 디스크를 만드는 단계가 있습니다. 우리는 이 부팅 디스크를 만드는 단계에서 플로피 매체에 커널과 루트 이미지를 올리게 됩니다. 물론 플로피 매체를 처음 읽어 들이는 것은 바이오스에서 하지요.
그렇다면? 아사벳 보드에도 바이오스가 있나요? 물론 있습니다. 뭐 BLOB라는 프로그램이지요.
커널은 BLOB라는 프로그램에서 읽어 오겠네요? 맞습니다.
그럼 BLOB는 커널을 플로피에서 읽어 오나요? 으잉? ......
자... 그렇습니다. 아사벳 보드에서는 당연 플로피가 없습니다. 내부에 플레쉬 메모리가 있어서 커널은 이곳에 기록되게 끔 설계되어 있지요.. 또 BLOB라는 바이오스에 해당하는 프로그램도 롬으로 박혀 있는 것이 아니라서 이 플레쉬 메모리에 써야 합니다. 그럼.. 보드에서 플레쉬 메모리에 읽고 쓸 수 있도록 무엇인가가 있습니까? 당연! 있습니다. 그런데 그것은 플레쉬 메모리 전용이 아닙니다. 원래는 StrongARM의 코어 로직이나 주변 디바이스를 시험하기 위한 목적으로 만든 것이지요...
그 이름이 바로 그 유명한 JTAG 이고 우리는 이것을 TAP라는 포트를 이용하여 접근 할 수 있습니다.
자 여러분은 제가 이 강좌를 어떤 식으로 끌고 갈지 궁금하지요? JTAG에 대한 내용은 다음과 같은 순서로 이끌어 갈 겁니다.
- JTAG 의 소개 및 원리
- 아사벳 보드에서의 JTAG
- JTAG와 PC 와의 연결
- JTAG 를 이용한 플레쉬 메모리에 기록하는 방법 및 프로그램 예제..
뭐 이런 식일 겁니다. 물론 여러분은 제 강좌를 읽지 않아도 빠른 시간에 공부 할 수 있지요... KELP 자료실에서 JTAG에 관련한 내용을 제가 박철님에게서 받아서 올려 놓은 것이 있습니다. 그 중에 영문 매뉴얼이 있는데 그 내용을 다운 받으셔서 읽으셔도 됩니다. 뭐 영어도 그리 어려운 편은 아닙니다.
자 i386과 StrongARM 의 리눅스 비교 제 2 탄을 여기서 마무리 지지요.. 강좌 한편이 너무 길면 읽기 지루하겠죠.... 저도 타이핑하기에 손가락이 너무 아프죠...
참 항상 이야기하는 데요. 이 글의 지적 소유권 관계는 GPL을 따릅니다. 물론 상업적인 용도로는 사용할 수 없죠.... 그럼..