정지용
‘PC에 리눅스 설치하기’부터
메신저 제작에 앞서서 준비해야 할 것이 몇 가지 있다. 임베디드 프로그래밍을 할 수 있는 임베디드 시스템 구축과 개발 툴의 설치이다. 가장 먼저 해야 할 것은 ‘PC에 리눅스 설치하기’. 설치할 때 패키지 중에서 Glade와 tftp 등의 필요한 패키지를 선택해서 설치해야 한다. tftp(Trivial File Transfer Protocol)는 파일을 송수신할 수 있는 매우 단순한 형태의 파일전송 프로그램이다. 주로 커널이나 부트로더 전송시 이용된다. 그리고 Glade는 GTK로 GUI를 꾸밀 예정이라면 설치하는 것이 좋다. 쉽게 GTK 코드를 생성해 주기 때문에 유용하게 쓸 수 있을 것이다.
PC에 리눅스 설치하기가 끝났다면 임베디드 보드를 하나 구입하자. 이미 시중에는 임베디드 보드가 다양하게 출시되어 있다. 주로 ARM 계열과 DSP 계열의 보드들인데 영상 처리나 고속데이터 처리 위주의 프로그래밍이라면 DSP를 추천하고 일반적인 프로그래밍에서는 ARM을 추천하고 싶다. 처음 시작하기에는 ARM 계열의 보드인 팜팜테크의 Tynuxbox X를 이용한다면 쉽게 접근할 수 있을 것이다. Tynuxbox X의 경우 Intel Xscale PXA255를 탑재하고 있고 그래픽 LCD부터 TCP/IP 모듈까지 기본적인 하드웨어 모듈을 제공하기 때문에 초보자도 쉽게 이용 가능하다. 현재 CDMA 모듈을 탑재한 Tynuxbox Xe까지 출시되어 있다.
보드를 준비했다면 부트로더와 OS를 타켓 보드에 설치하고 크로스 컴파일 환경까지 구축해 보자. 제공되는 매뉴얼을 하나하나 따라가면서 설치하면 어렵지 않게 할 수 있을 것이다. 간혹 문제가 발생하거나 어려움에 빠졌을 때는 보드 제작사의 Q&A를 이용해서 해결하자.

<그림1> 개발 환경 구축 순서

<화면2> TynuxBox에서 SWIM을 실행한 모습

<그림2> 메신저 전체 구성도
소스 제작 및 관리는 이렇게
임베디드 프로그래밍뿐만 아니라 모든 프로그래밍에서 소스를 제작하는 것과 관리하는 것은 매우 중요하다. 임베디드 프로그래밍에서는 크로스 컴파일의 과정을 거치기 때문에 더욱 편리한 툴이 필요하다. IDE 툴인 ESTO는 ETRI에서 개발한 프로그래밍 툴이다. 크로스 컴파일부터 타켓보드 전송 후 실행하는 기능까지 다양한 기능을 가지고 있다. 임베디드 프로그래밍을 하다 보면 컴파일, 전송, 실행의 세 과정을 반복하는 경우가 많은데 이를 한번에 처리해 주기 때문에 매우 편리하다. 또한 대규모 작업이 되면 makefile을 매번 수정하는 일 또한 번거로운 작업인데 그런 작업을 간단하게 해결할 수 있다. vi에서 작업을 해도 상관은 없지만 이런 IDE 툴을 이용해서 개발을 한다면 개발 속도를 더 높일 수 있을 것이다.
대규모 프로젝트라면 소스와 문서를 관리하는 것이 매우 중요하다. 한 번의 실수로 그 동안의 결과를 날려버릴 수도 있다. 또한 여러 명이 동시에 비슷한 분야의 일을 한다면 소스가 섞여버리는 경우도 있다. 이를 위해 소스 관리를 할 필요가 있다. 리눅스에서는 CVS (Concurrent Versions System)를 지원하고 있는데 서버로 셋팅을 해 주고 CVS를 이용해서 소스를 관리하기를 추천한다. 리눅스가 아니라도 CVS는 얼마든지 이용 가능하므로 소스나 문서를 관리하기에 매우 유용하리라 생각한다. CVS는 버전별로 소스를 관리해 주고 동시작업으로 인한 소스 충돌에 대해서도 어느 정도 해결책을 제시해 주기 때문에 대규모 프로젝트에서는 필수적이라 할 수 있다.
필자 팀은 CVS의 덕을 많이 보았다. 프로젝트 마무리를 앞두고 하드코딩 모드(?)에 돌입해서 프로그래밍을 하다가 소스가 뒤섞여버리는 바람에 프로젝트를 거의 실패할뻔 했다. 그때 CVS를 이용해서 간단히 1주 전의 소스로 모든 것을 되돌릴 수 있었고 1주 전의 코드부터 새로 시작해서 그 상황을 복구할 수 있었다. 프로그램을 제작하는 일만큼이나 그 프로그램을 관리하는 일 역시 중요하다는 것을 항상 명심하자.
‘PC에 리눅스 설치하기’부터
메신저 제작에 앞서서 준비해야 할 것이 몇 가지 있다. 임베디드 프로그래밍을 할 수 있는 임베디드 시스템 구축과 개발 툴의 설치이다. 가장 먼저 해야 할 것은 ‘PC에 리눅스 설치하기’. 설치할 때 패키지 중에서 Glade와 tftp 등의 필요한 패키지를 선택해서 설치해야 한다. tftp(Trivial File Transfer Protocol)는 파일을 송수신할 수 있는 매우 단순한 형태의 파일전송 프로그램이다. 주로 커널이나 부트로더 전송시 이용된다. 그리고 Glade는 GTK로 GUI를 꾸밀 예정이라면 설치하는 것이 좋다. 쉽게 GTK 코드를 생성해 주기 때문에 유용하게 쓸 수 있을 것이다.
PC에 리눅스 설치하기가 끝났다면 임베디드 보드를 하나 구입하자. 이미 시중에는 임베디드 보드가 다양하게 출시되어 있다. 주로 ARM 계열과 DSP 계열의 보드들인데 영상 처리나 고속데이터 처리 위주의 프로그래밍이라면 DSP를 추천하고 일반적인 프로그래밍에서는 ARM을 추천하고 싶다. 처음 시작하기에는 ARM 계열의 보드인 팜팜테크의 Tynuxbox X를 이용한다면 쉽게 접근할 수 있을 것이다. Tynuxbox X의 경우 Intel Xscale PXA255를 탑재하고 있고 그래픽 LCD부터 TCP/IP 모듈까지 기본적인 하드웨어 모듈을 제공하기 때문에 초보자도 쉽게 이용 가능하다. 현재 CDMA 모듈을 탑재한 Tynuxbox Xe까지 출시되어 있다.
보드를 준비했다면 부트로더와 OS를 타켓 보드에 설치하고 크로스 컴파일 환경까지 구축해 보자. 제공되는 매뉴얼을 하나하나 따라가면서 설치하면 어렵지 않게 할 수 있을 것이다. 간혹 문제가 발생하거나 어려움에 빠졌을 때는 보드 제작사의 Q&A를 이용해서 해결하자.



소스 제작 및 관리는 이렇게
임베디드 프로그래밍뿐만 아니라 모든 프로그래밍에서 소스를 제작하는 것과 관리하는 것은 매우 중요하다. 임베디드 프로그래밍에서는 크로스 컴파일의 과정을 거치기 때문에 더욱 편리한 툴이 필요하다. IDE 툴인 ESTO는 ETRI에서 개발한 프로그래밍 툴이다. 크로스 컴파일부터 타켓보드 전송 후 실행하는 기능까지 다양한 기능을 가지고 있다. 임베디드 프로그래밍을 하다 보면 컴파일, 전송, 실행의 세 과정을 반복하는 경우가 많은데 이를 한번에 처리해 주기 때문에 매우 편리하다. 또한 대규모 작업이 되면 makefile을 매번 수정하는 일 또한 번거로운 작업인데 그런 작업을 간단하게 해결할 수 있다. vi에서 작업을 해도 상관은 없지만 이런 IDE 툴을 이용해서 개발을 한다면 개발 속도를 더 높일 수 있을 것이다.
대규모 프로젝트라면 소스와 문서를 관리하는 것이 매우 중요하다. 한 번의 실수로 그 동안의 결과를 날려버릴 수도 있다. 또한 여러 명이 동시에 비슷한 분야의 일을 한다면 소스가 섞여버리는 경우도 있다. 이를 위해 소스 관리를 할 필요가 있다. 리눅스에서는 CVS (Concurrent Versions System)를 지원하고 있는데 서버로 셋팅을 해 주고 CVS를 이용해서 소스를 관리하기를 추천한다. 리눅스가 아니라도 CVS는 얼마든지 이용 가능하므로 소스나 문서를 관리하기에 매우 유용하리라 생각한다. CVS는 버전별로 소스를 관리해 주고 동시작업으로 인한 소스 충돌에 대해서도 어느 정도 해결책을 제시해 주기 때문에 대규모 프로젝트에서는 필수적이라 할 수 있다.
필자 팀은 CVS의 덕을 많이 보았다. 프로젝트 마무리를 앞두고 하드코딩 모드(?)에 돌입해서 프로그래밍을 하다가 소스가 뒤섞여버리는 바람에 프로젝트를 거의 실패할뻔 했다. 그때 CVS를 이용해서 간단히 1주 전의 소스로 모든 것을 되돌릴 수 있었고 1주 전의 코드부터 새로 시작해서 그 상황을 복구할 수 있었다. 프로그램을 제작하는 일만큼이나 그 프로그램을 관리하는 일 역시 중요하다는 것을 항상 명심하자.
"Embedded" 카테고리의 다른 글
- 임베디드 프로그래밍 개요와 MSN 메신저 설계-4 (0)2005/10/04
- 임베디드 프로그래밍 개요와 MSN 메신저 설계-3 (0)2005/10/04
- 임베디드 프로그래밍 개요와 MSN 메신저 설계-2 (0)2005/10/04
- 임베디드 프로그래밍 개요와 MSN 메신저 설계-1 (0)2005/10/04
- 부트로더의 네트워크 구현(2)-6 (0)2005/08/30

수안이의 컴퓨터 연구실



Leave your greetings.