전자회로실험
DK128
dk128 키트의 구성도. 기본적으로 2개의 보드로 이루어져 있는데, 한쪽엔 핵심칩인 Atmega128 칩이 장착되어 있고 한쪽엔 여러가지 IO들이 장착되어 있다.
Atmega128은 8비트 마이크로 컨트롤러로 Harvard architecture로 설계되어 있는 칩이다.
여기서 마이크로컨트롤러란 CPU코어 하나가 아니라 CPU와 메모리 및 주변 하드웨어 제어회로 모두를 뜻한다. 보통 MCU(Micro-controller Unix)이라 하며 1개의 칩으로 컴퓨터의 구현이 가능하다. Harvard architecture은 일반적인 컴퓨터 구조인 폰노이만 구조와 달리 프로그램 메모리와 데이터 메모리가 따로 분리되어 있는 구조이다. 즉, 어드레스 버스와 데이터 버스가 독립적으로 분리되어 있는데 이는 주소 접근과 데이터 접근을 동시에 할 수 있어서 CPU의 처리속도가 빠르다.
오늘은 DK128에 간단한 프로그램을 올려보는 과정을 실습하였다. 이 과정을 간단히 요약해보면 먼저 키트에 올릴 c소스코드를 작성하고 Atmega128용 컴파일러를 이용하여 컴파일한다. 컴파일 되서 나온 결과물을 Parallel port를 이용하여 Program flash에 write하면 이 과정이 끝나는 것이다.
1. 컴파일러 설치 : WinAVR이라는 Atmega128용 컴파일러를 설치 하였다. 이 자료는 http://winavr.sourceforge.net 에서 구할 수 있다.
2. Makefile 생성 : WinAVR을 설치하면 mfile이라는 프로그램이 같이 설치 된다. mfile을 이용하여 Atmega128에 맞는 Makefile를 생성한다.
- MCU type을 atmega128로 선택
- Enable Editing of Makefile 선택
- F_CPU 항목을 80000000 에서 16000000로 변경
- File > Save As로 Makefile을 저장)
3. 프로그램 작성 : Programmers Notepad 프로그램을 이용해서 프로그램을 작성한다.
- File > New로 Project를 생성
- 생성된 Project에 소스파일(ex.main.c)를 추가
- 생성된 소스파일이 존재하는 디렉토리에 2번과정에서 생성한 Makefile을 복사
- Tool > Make All 을 이용해 컴파일하면 .hex확장자 파일이 생성된다
4. PonyProg2000 설치 : 컴파일 된 .hex 파일을 키트에 올리기 위해서 설치한다 . 이 자료는 http://www.lancos.com에서 구할 수 있다.
5. 키트에 작성한 프로그램을 쓰기 : PonyProg2000을 이용하여 작성한 프로그램을 키트에 쓴다.
- Device > AVR micro에서 ATmega128선택
- Setup > Calibration > OK
- Setup > Interface Setup에서 Parallel // Avr ISP I/O // LPT1 을 선택
- Probe버튼을 눌려서 연결을 테스트 해본다.
- File > Open Program(Flash)File을 선택해서 생성한 .hex파일을 불러온다.
- Command > write program 을 선택하면 프로그램 Flash로 작성한 프로그램을 기록한다
오늘 직접 올려본 프로그램
실제 사용된 핀. C핀에 스위치 입력을 연결하고, F핀에 LED 출력을 연결했다.
실험결과 각 스위치들를 누르면 거기에 대응하는 LED에 불이 들어왔다.
vmware-tool 설치 & vi 사용법
오늘 오후 시간에는 저번 시간에 vmware에 우분투 리눅스를 설치한 곳에 vmware-tool을 설치하였다. 이 tool을 설치한 이유는 vmware상의 가상 virtual machine과 실제 Host 컴퓨터간의 데이터를 쉽게 이동시키기 위해서다. 이 머신 사이에 공유하는 폴더를 만듬으로써 쉽게 데이터를 이동시킬 수 있었다.
vi는 Visual editer의 약자로 리눅스 운영체제에서 보편적으로 가장 많이 사용하는 텍스트 편집기이다. vi는 일반 윈도우에서 사용하던 nodepad 같은 프로그램과 그 사용법이 완전히 다르기 때문에 vi를 처음부터 바로 사용하기는 어렵다.
vi는 세 가지 모드가 존재한다.
- 입력모드 : 문서를 편집하기 위한 모드
- 명령모드 : 커서 이동, 삭제, 복사, 붙이기 등의 작업이 가능
- ex 모드 : 라인 에디터인 ex 에디터 기능을 사용하는 모드
ex 모드 ->(esc키) 명령모드 ->(i, a, o, s) 입력모드
입력모드 ->(esc키) 명령모드 ->(:, /, ?) ex모드
vi에는 사용 가능한 무수히 많은 명령어들이 있는데, 최대한 키보드 자판에서 손을 놓지 않도록 설계되어 있기 때문에 익숙해지면 굉장히 강력한 편집기가 될 수 있다.
위의 표를 보면 vi의 명령어에 대해 자세히 나와 있다. 이 명령어들은 단독으로만 사용하는 것이 아니라 여러 조합으로 같이 사용할 수도 있다. 에를 들어 d(삭제)w(word)를 누르면 한 단어가 지워지고, d(삭제)G(파일 끝 줄로 이동)를 누르면 현재 위치에서 파일 끝까지의 내용을 지운다.