공개 mstk-ohmmanager3.dotname.kr/ohm_data/le060408d/mstk-2440... · cd...

34
MSTK-2440 사용자 매뉴얼 홍보용 ( ) OHM www.ohm.co.kr

Upload: others

Post on 08-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

MSTK-2440

사용자 매뉴얼홍보용( )

사OHM

www.ohm.co.kr

Page 2: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 2 -

저작권

사의 동의 없이 본 문서의 내용을 무단 복사 발췌 게재하는 행위를 금합ohm , ,●

니다.

에 포함된 일부 펌웨어 용 부트로더 복구 프로그램 유틸리MSTK-2440 CD , PC , DNW●

티 드라이버는 삼성전자가 사용자를 위해 공개한 것을 사용하고, USB S3C2440

있으며 저작권은 삼성전자에 있습니다.

이 평가키트에 포함된 툴 체인의 라이센스는 에 따릅니다GNUARM GPL .●

등록상표

은 삼성전자의 제품 모델명입니다S3C2440 .●

여기서 별도로 언급하지 않는 모든 등록상표는 각 해당 업체의 고유 등록상표임●

을 명시합니다.

알림

에 포함된 매뉴얼 하드웨어 소프트웨어 등은 성능 및 품질 개선을MSTK-2440 , ,●

위해 예고 없이 변경될 수 있습니다.

에 포함된 하드웨어와 소프트웨어는 있는 그대로 제공되며 사에MSTK-2440 , ohm●

서는 안정성에 대해 어떤 보장도 하지 않습니다 생명과 재산에 치명적인 손상.

을 줄 수 있는 기계나 장비에 충분한 시험과 검증 없이 본 제품을 적용해서 재

해가 발생할 경우 사는 그 책임이 없음을 명시합니다ohm .

Page 3: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 3 -

문서이력

===========================================================================

변경코드 작성자 작성일 변경내용

===========================================================================

초안 사 년 월ohm 2006 9

(Rev1.0)

===========================================================================

이 문서의 내용은 개선을 위해 예고 없이 변경될 수 있습니다.

사OHM

서울시 용산구 갈월동 번지 세기빌딩 호17 101

전화 팩스: 02-776-4868, : 02-779-6757

웹사이트 : www.ohm.co.kr

이메일 : [email protected]

제품 등록

사는 지속적으로 유용한 예제를 추가해서 제공할 예정입니다 제품을 등록하시ohm .

면 예제 업데이트를 이메일로 통보해 드립니다 제품등록은 아래 사항을 기재해서.

이메일 로 보내주시면 됩니다([email protected]) .

시리얼 번호1. :

라고 인쇄된 부분에 형식으로 기재돼있음- “CF CONNECTOR” ATSN-01XXXXX

사용자 이름2. :

회사 또는 학교명3. :

구입일4. :

구입처5. :

전화번호6. :

주소7. e-mail :

Page 4: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 4 -

제품소개

구성품

MSTK-2440 B/D & TFT-LCD B/D●

2.8" TFT LCD●

은 삼성전자 기반의 트레이MSTK-2440 S3C2440A(ARM920T Core) 닝 키트입니다. RTOS(Real

Time O/S) 포팅 및 인터Pen Drag, CF & HDD 페이스가 가능합니다 는 최대. S3C2440A

까지의 빠른400MHz 속도와 다양한 을 가지고 있는 강력한 프로세서입니Peripheral

다 오픈 소스 기반의 다양한 디바이스 드라이버 및 교재 제공으로 보다 효율적.

이고 개발 기간의 단축 효과를 볼 수 있습니다.

Page 5: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 5 -

5V/2A Adaptor●

Cable(USB, Serial, Parallel)●

● CD(User Manual, Program Source, Schematic, Part List, Utility, GNU Compiler)

JTAG Downloader●

개발자를 위한 프로세서 기초에서 실무까지 사" ARM " (Ohm )●

보드구성

MSTK-2440 Main Board

ETHERNET

PORT

COM2 COM1 USB HOST

USB DEVICE

DC Adaptor

JTAG

PORT

TFT LCD

CONNECTOR

POWER

S/W

Regulator

3V/1.2V

External

S/W

Boot Mode

설정 S/W

CF & HDD SPEAKER

확장

CONNECTOR

CAMERA

Page 6: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 6 -

240×320 2.8" TFT LCD with Touch

Screen

특 징

크로스 컴파일러 환경 제공 및 다양한 소스 코드 제공GNUARM●

용 다양한 소스 코드 제공ADS(Arm Developer Studio)●

다양한 프로그램을 다운로드 및 실행할 수 있는 풍부한 메모리●

uC/OS (RTOS) Support●

Pen Drag,● 인터Compact Flash Card & Hard Disk Drive(HDD) 페이스

하드웨어 사양

항 목 사 양

CPUSamsung S3C2440A-40 (ARM920T with MMU)

- CPU Operation Frequency : Up to 400MHz

Boot ROMAM29LV800 Nor Flash (1MByte)

K9F1208 Nand Flash (64MByte)

SDRAM K4S561632E 4EA (128MByte)

LCD 2.8" LTP280QV-E01 (240×320 Size TFT LCD, Touch Screen)

PeripheralIDE & CF Interface 각각XC95144XL-TQ100 ( 1 Port)

Ethernet CS8900A (10 Based-T 1 Port)

SD/MMC 1 Slot

Audio UDA1341TS (Audio Jack)

Serial RS-232 2 Port

USB Host & Device

Speaker 0.25W/20mm

JTAG 20 Pin Box Header

Infrared Receiver KSM603LM

Key Pad 4EA & 1 External Interrupt SW

Page 7: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 7 -

메모리맵

OM[1:0] = 01,10

0x4000_0000 --->SROM/SDRAM

(nGCS7)

SDRAM

(K4S561632E)

0x3800_0000 --->SROM/SDRAM

(nGCS6)

SDRAM

(K4S561632E)

0x3000_0000 --->SROM

(nGCS5)Reserved

0x2800_0000 --->SROM

(nGCS4)Reserved

0x2000_0000 --->SROM

(nGCS3)

ETHERNET

(CS8900A)

0x1800_0000 --->SROM

(nGCS2)Reserved

0x1000_0000 --->SROM

(nGCS1)

CPLD

(XC95144XL-TQ100)

0x0800_0000 --->SROM

(nGCS0)

NOR-Flash

(AM29LV800BB)

0x0000_0000 --->

(Not using Nand flash for boot ROM)

프로세서에는 총 개의 뱅크 가 있으며 각 뱅크는 의S3C2440A ARM 8 (BANK) 128M Byte

크기를 가진다.

Connector Data, Address, Camera, IrDA

External Interrupt, GPIO

Internal FunctionIIC AT24C16 EEPROM

Timer, Watch-Dog, RTC, ADC(10bit 8:1 Mux CH & Pen Drag)

OS Support uC/OS-II

Operating Temperature 0 ~ 70 °C

Page 8: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 8 -

내용CD

아래 그림은 제공된 에 들어있는 내용을 보여줍니다CD .

● 부트로더이미지 플래시에 저장돼 있는 부트로더 이미지 파일과 용 부: NOR PC

트로더 프로그램이 있는 디렉터리입니다 부트로더가 손상됐을 경우를 대비해.

제공합니다 부트로더 복원에 대한 내용은 뒤에서 설명합니다. .

● Datasheet 하드웨어 구성에 대한 각각의 부품 데이터 쉬트가 들어: MSTK-2440

있는 디렉터리 입니다.

● GNU Tool 의 모든 예제는 두가지로 구분이 됩니다 하나는: MSTK-2440 . ADS(Arm

환경에서 다른 하나는 이라는 크로스 개발환경을 사용Developer Suite) , GNUARM

합니다 이 개발환경의 설치파일이 있는 디렉터리입니다 컴파일러는 제약. . GNU

없이 사용할 수 있으며 이 폴더 내에는 환경에서의 다양한 소스코드가 들어GNU

있습니다.

● PartList 하드웨어 구성에 대한 부품 리스트가 들어 있는 디렉터리: MSTK-2440

입니다.

Page 9: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 9 -

● schematic 메인보드 와 보드의 회로도가 들어 있는 디렉터: MSTK-2440 TFT LCD

리 입니다.

● source 환경에서의 다양한 소스코드가 들어있는 디: ADS(Arm Developer Suite)

렉터리 입니다.

● util & tools 아래와 같은 디렉터리와 이 있습니다: Tools .

사용자가 작성한 예제 프로그램을 으로 다운로드할 때 사용하는DNW : MSTK-2440

유틸리티입니다.

용 부트로더 프로그램은 상의 병렬포트를 통해 부트로더를 프sjf2440m : PC PC

로그램합니다 이때 병렬포트를 사용할 수 있도록 해주는 디바이스.

드라이버가 있는 디렉터리입니다.

과 는 유틸리티를 통해 가지 통신 인터페이스로usb driver : MSTK-2440 PC DNW 2

동작합니다 하나는 시리얼 포트이고 다른 하나는 포트입니. USB

다 시리얼 포트는 보드의 동작을 확인할 수 있는 문자열 데이터.

를 주고 받는데 주로 사용하고 포트는 사용자가 작성한 예제, USB

를 다운로드하는 용도로 사용합니다 이때 포트를 통해 통신. USB

하기 위한 용 디바이스 드라이버가 있는 디렉터리입니다PC .

지금 보고 있는 사용자 매뉴얼입니다user's manual : .●

Page 10: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 10 -

시작하기

보드동작확인

은 다양한 어플리케이션을 번지로 다운로드하여 동작시킬 수 있도록MSTK-2440 RAM

모니터 프로그램이 플래쉬에 저장되어 있습니다 먼저 전원을 연결하면 중앙에NOR .

보이는 개의 가 순차적으로 점멸하는 것을 확인 할 수가 있는데 이는 모니터4 LED

프로그램이 정상적으로 동작하는 것입니다.

주의 아직은 전원 외에 다른 케이블을 연결하지 마십시오: .

사용자가 작성한 예제 프로그램을 에서 실행하기 위해서는 다음 가지를MSTK-2440 3

에 설치해야 합니다PC .

❚ 크로스 툴 체인 또는 개발환경GNUARM ADS

❚ 용 드라이버PC USB

❚ 다운로드 및 시리얼통신용 유틸리티(DNW.exe)

이들 가지 중 크로스 툴 체인 또는 개발환경 드라이버는 설치과3 GNUARM ADS , USB

정이 필요하고 다운로드 및 시리얼통신용 유틸리티는 제공된 실행파일을 단순히,

임의의 디렉터리에 복사해서 사용하면 됩니다.

개발환경은 사에서 만든 것으로ADS ARM 여기에서는 ARM Developer Suite(ADS)

를 사용하였으며 지금은 라 하는 이후Version 1.2 RVDS(RealView Developer Suite)

버전이 있습니다 평가판 를 신청하면 일간 사용할 수 있는 데모 버전을 무료. CD 45

로 받을 수 있으며 설치과정은 설치 시 안내 메시지를 따라하면 되므로 설치과정은

생략합니다.

여기서는 크로스 툴 체인과 드라이버를 설치하는 방법을 설명합니다GNUARM USB .

툴 체인 설치GNUARM

실습을 위해서 개발환경 컴파일러 링커 어셈블러 등 으로 툴 체인MSTK-2440 ( , , ) GNU

을 사용합니다 이 툴 체인은 에 포함되어 제공됩니다(Tool chain) . MSTK-2440 CD .

와 함께 제공되는 툴 체인의 버전은 입니다 툴 체인 설치 실행파CD GCC gcc-4.0.2 .

일은 디렉터리안에 있는GNUARM bu-2.16.1_gcc-4.0.1-c-c++_nl-1.13.0_gi-6.1.exe

입니다 이 파일을 실행하면 아래와 같은 창이 뜹니다 버튼을 클릭해서 다음. . Next

Page 11: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 11 -

으로 넘어갑니다.

아래 창에서 라이센스 조건에 동의하는 항목을 선택한 뒤 버튼을 누릅니다Next .

Page 12: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 12 -

툴 체인을 설치할 경로를 지정합니다 아래와 같이 기본 경로를 확인하고 다음으로.

넘어갑니다.

구성요소를 선택하는 창이 뜨면 이 선택됐는지 확인하고 다음으Full installation

로 넘어갑니다.

Page 13: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 13 -

나머지 과정도 모두 디폴트 값으로 진행합니다.

Page 14: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 14 -

Page 15: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 15 -

드라이버 설치USB

은 포트를 통해 여러 분이 작성한 예제를 빠른 속도로 다운로드할 수MSTK-2440 USB

있습니다 그러기 위해서는 에 드라이버를 설치해야 합니다. PC USB .

다음은 드라이버를 설치하는 과정을 설명합니다USB .

❚ 보드의 전원을 끕니다.

❚ 점퍼를 설정한다 플래시 부팅OM[1:0] .(NOR )

❚ 제공된 를 드라이브에 넣습니다CD CD-ROM .

❚ 와 사이에 케이블을 연결합니다PC MSTK-2440 USB .

❚ 보드의 전원을 켭니다.

❚ 잠시 후 아래와 같이 장치용 드라이버를 설치하는 창이 뜨면 중앙에 위치한USB

옵션을 선택한 뒤 다음 버튼을 누릅니다.

Page 16: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 16 -

두 번째 옵션을 선택하고 다음으로 넘어갑니다.

Page 17: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 17 -

다음 창이 뜨면 검색할 때 다음 위치 포함 옵션만 선택한 뒤 찾아보기 버튼을" " " "

누릅니다.

폴더 찾기 창에서 상의 디렉터리를 선택한 뒤 폴더를CD util & tools usb driver

선택 확인 버튼을 누릅니다, " " .

Page 18: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 18 -

검색 위치에 폴더명이 제대로 업데이트 됐는지 확인한 뒤 다음 버튼을 누릅니다.

소프트웨어 설치 중이라는 것을 보여주는 창이 뜹니다.

다음과 같은 경고 창이 뜨면 계속 버튼을 누릅니다" " .

Page 19: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 19 -

드라이버 설치가 끝나면 완료 창이 뜨고 마침 버튼을 누르면 잠시 후 윈도우 화면,

의 오른쪽 하단에 장치를 사용할 준비가 됐다는 팝업 메시지가 나옵니다.

드라이버 설치가 끝났습니다 이제 포트를 통해 에서 으로 예제를. USB PC MSTK-2440

다운로드할 수 있습니다 실제 다운로드는 라는 유틸리티를 사용합니다. DNW .

유틸리티 설정DNW

는 삼성전자가 개발자를 위해 제공하는 통신 유틸리티입니다 이 유틸DNW S3C2440 .

리티는 와 시리얼 통신을 동시에 지원합니다 통신은 예제 프로그램을 다운USB . USB

로드한 뒤 실행하는 용도로 사용하고 시리얼 통신은 부트로더 또는 예제 프로그램

과의 상호작용을 위해 사용합니다 에 있는. CD util & tools 디렉터리 내에 DNW.EXE

를 하드 드라이브로 복사합니다 여기서는 드라이브의 루트 디렉터리에 복사한. C:

다고 가정합니다.

설정DNW▷

프로그램을 실행시킨다DNW .❚❚ 프로그램 메뉴의DNW [Configuration]→ 을 선택한다[Options] .

Page 20: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 20 -

시리얼 통신을 위한 보레이트를 설정한다.❚프로그램은 의 속성을(DNW Data bits:8-bit / Stop bits:1 / No flow control

가진다.)

과 와의 통신을 위한 를 선택 한다MSTK-2440 PC COM PORT .❚다운로드 주소를 설정한다USB .❚다운로드 어드레스는 번지로 지정한다 실행 이미지파일을(USB 0x30000000 .

번지에 로드하게 된다0x30000000 .)

버튼을 누른다OK .❚

설정DNW

예제 프로그램 실행

드라이버 설치와 설정이 끝났으므로 예제 프로그램을 다운로드해서 실행해USB DNW

봅니다.

❚ 와 사이에 시리얼 케이블과 케이블을 모두 연결합니다PC MSTK-2440 USB .

이때 시리얼 케이블은 타겟보드의 컨넥터에 케이블은 컨넥UART 0 , USB USB DEVICE

터에 연결합니다.

Page 21: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 21 -

❚ 과 연결 사용MSTK-2440 HOST PC (DNW )

메뉴에서 를 선택합니다 의 가 정상적으DNW [Serial Port] [Connect] . PC COM PORT→

로 되었다면 화면 상단에 보이듯이 라는 메시지를 확인Enable [COM1,115200bps]

할 수 있습니다.

보드의 전원을 켭니다 화면 상단에 라는 메시지가 뜨면 와의MSTK-2440 . [USB:OK] PC

연결이 정상적으로 이루어 진 것을 의미합니다 그림은 플래시 부팅 화면입니다USB . NOR .

❚ 를 이용한 실행 이미지파일 다운로드 및 실행DNW

메뉴에서 를 선택하고 다운로드 하고자 하는 파일을 선택[USB Port] [Transmit]→

합니다 여기서는 에. CD ₩GNU Tool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led

폴더에 있는 파일을 선택합니다'GPIO_Led.bin' .

Page 22: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 22 -

위 그림은 다운로드가 완료되고 이미지 파일이 실행되는 화면입니다 다운로드 어.

드레스는 보드의 메모리 공간인 번지인데 정상적인MSTK-2440 SDRAM '0x30000000'

다운로드가 완료되면 는 모니터 프로그램에 의해 이 주소로PC(Program Counter)

점프하도록 되어있습니다 이 순간부터 으로 다운로드 한 이미지 파일이 동작. RAM

하게 되며 이미지 파일을 다운받고 램으로 점프 하는 일은 모니터 프로그램이 해,

주는 것입니다.

예제 프로그램 빌드 편(GNUARM )Ⅰ

이번에는 이라는 크로스 개발환경을 이용하여GNUARM 예제 프로그램을 빌드하는 방

법을 설명합니다.

우선 제공된 에서 이라는 디렉터리를 드라이브의 루트CD E:₩GNU Tool₩MSTK-2440 C:

디렉터리로 복사합니다 명령창을 연 뒤. c:₩MSTK-2440₩FirmwareExamples₩Chapter6₩

디렉터리로 이동합니다 각 예제 디렉터리에는 이 있습니다GPIO_Led₩ . makefile .

은 유틸리티가 사용하는 텍스트 기반의 스크립트 파일로 빌드makefile make.exe ,

과정을 관장합니다 우선 명령창에서 다음 명령을 입력합니다. .

make

명령을 입력하면 아래 그림과 같이 빌드 과정을 거쳐 실행 이미지make GPIO_Led.bin

Page 23: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 23 -

이 생성됩니다 생성된 실행 이미지를 다운로드해서 실행하는 방법은 앞에서 설명.

한 대로 진행하면 됩니다 나머지 예제들도 각 디렉터리에서 이와 동일한 방법으로.

빌드합니다.

예제 디렉터리 및 만드는 방법makefile

여기서는 예제를 구성하는 디렉터리와 을 설명합니다 에 제공makefile . MSTK-2440

되는 예제는 제공된 의 디렉터리 안에 있습니다 다음GNU CD ₩GNU Tool₩MSTK-2440 .

그림은 디렉터리의 구조를 보여줍니다MSTK-2440 .

Page 24: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 24 -

❚ 스타트업 코드와 하드웨어 의존적인 코드가 들어있는 디렉터리입니다BSP : .

❚ 디바이스 드라이버가 들어있는 디렉터리입니다 이 디렉토리는 확장Drivers : .

성을 고려하여 미리 만들어 놓은 것입니다 지금 현재 사용하지는 않습니다. ( .)

❚ 에 포함된 주변장치 및 내부 기능을 사용하는FirmwareExamples : MSTK-2440 CPU

다양한 예제가 있는 디렉터리입니다.

이하생략[--- ---]

예제 프로그램 빌드 편(ADS )Ⅱ

여기에서는 사에서 만든 컴파일러를 사ARM ARM Developer Suite(ADS) Version 1.2

용하여 프로젝트 만드는 방법과 설정 방법 프로그램 빌드 과정 등을 확인해 보도,

록 하겠습니다.

프로젝트 만들기

를 실행하여 를 만들고 컴파일하는 일련의 과정을 살펴ADS1.2 CodeWarrior Project

보도록 합니다.

❚ 실행CodeWarrior

Page 25: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 25 -

이하생략[--- ---]

❚ 생성하기Group

이하생략[--- ---]

❚ 프로젝트에 파일추가하기

이하생략[--- ---]

❚ 타겟 설정하기 컴파일 링크 옵션 설정( , )

이하생략[--- ---]

❚ 소스 파일 만들기 컴파일&

이하생략[--- ---]

부트로더

앞에서 를 이용한 예제 실행 방법을 설명했습니다 예제 실행은 와 보드 상DNW . DNW

에서 동작하는 부트로더 사이의 통신을 통해 이뤄집니다 이때 두 가지 통신 채널.

을 사용하는데 포트는 실행이미지 다운로드용이고 시리얼 포트 는 부트, USB (UART0)

로더와 사이의 상호작용을 위해 사용합니다 여기서는 부트로더 사용법에 대해DNW .

설명합니다.

부트로더 는 시스템에 전원이 들어온 뒤 최초로 동작하는 실행코드입니(Bootloader)

다 프로세서 구조에 따라 리셋 후 최초 명령을 읽어오는 번지가 다릅니다 의. . ARM

경우는 번지에 있는 명령을 최초로 실행합니다 도 코어를 기반으로0 . S3C2440 ARM

한 프로세서이므로 최초 코드는 번지부터 실행합니다 에서 동작하는 부0 . MSTK-2440

트로더는 원래 삼성전자가 용으로 제공하는 부트로더를 기반으로 합니다S3C2440 .

Page 26: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 26 -

삼성전자가 원래 제공하는 부트로더는 삼성전자 웹사이트에서 소스코드로 구할 수

있습니다.

에서 동작하는 부트로더는 다음 일을 수행합니다MSTK-2440 .

시스템 초기화❚포트를 통한 예제 이미지 다운로드 및 실행USB❚

메모리 테스트❚

여기서의 부트로더는 모니터 프로그램을 말하는 것으로 모니터 프로그램에 대하여

간단히 설명하겠습니다.

모니터 프로그램이란?

모니터 프로그램이란 무엇인가 간단히 말하자면 다운로드 기능을 가지는 감시 프로그램이?

다 이것은 필요한 것인가 이 물음에 대해서는 꼭 그렇다 라고 대답할 수는 없을 것이. ? ' !'

다 개발자가 시스템을 개발 하는데 있어 구현해야 할 기능들을 코딩하고 그것을 테스트해.

야 하는데 있어 어떻게 빠르고 쉽게 할 수는 없을까 라는 생각에서 그 필요성이 대두되었, ?

다.

에뮬레이터나 에뮬레이터 같은 장비가 있다면 에뮬레이터를 이용해서 빠르고 편리CPU ROM

하게 테스트하고자 하는 이미지 파일을 다운로드해서 디버깅 및 프로그램 개발을 할 수 있

을 것이다 하지만 에뮬레이터 장비는 고가의 장비이다 보니 많은 사람들이 사용하는 것은.

아니다 예전에 을 사용할 때는 프로그램 컴파일을 하고 여기서 만들어진 이미지 파일. EPROM

을 에 라이트 하고 롬라이터를 이용 보드에 그 을 꽂아 실험을 하였던 기억이 있EPROM ( ) ROM

다 프로그램이 잘못되었으면 다시 컴파일 하고 다시 롬에 프로그램하고 다시 보드에 꽂아.

서 테스트하고 이러한 과정이 지금 생각해보면 참 무식한 방법 이었던 것 같다 하지만 그, .

때는 별 다른 방법도 사실 없었다 물론 위의 얘기는 에뮬레이터가 없었을 때 얘기이다 지. .

금은 많은 마이컴들이 내부에 플래시 메모리를 내장하고 있고 또한 부트로더가 내장되어 있

거나 아니면 저가의 다운로더를 가지고 부트로더 및 프로그램 가write Application write

가능해졌다.

왜 이러한 변화가 생겼을까 마이컴을 생산하는 메이커들도 개발자들이 좀 더 빨리 좀 더? ,

저렴하게 좋은 결과물을 만들어 내기를 원하기 때문이다 또한 저렴한 개발 비용은 제품의.

가격 경쟁력을 높일 수 있는 부분이기도 하다 그래야 메이커들의 제품들도 더 많이 팔. IC

리기 때문이다 그래서 많은 기능들을 추구하고 사용자가 좀 더 편하게 개발할 수 있는 개.

발환경을 제공하고자하는 것이다.

프로세서는 어떠한가 보드에는 플래시가 실장 되어 있S3C2410A, S3C2440A ? MSTK-2440 NOR

는데 이 플래시는 보드에 납땜 되어 있어야 하는 타입이라서 소켓화 할 수도 있지만, NOR ( ,

제품화하는데 가격적인 문제점이 있다 이 또한 개발환경 구축이 쉽지만은 않다 다행히) .

프로세서는 가 있고 또한 저가의 다운로더가 있어서 프S3C2410A, S3C2440A JTAG PORT , JTAG

Page 27: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 27 -

로그램 에는 문제가 없으나 이마저도 속도가 느린 관계로 프로그램 디버깅 시 상당한write ,

시간 손실이 불가피 하다.

그렇다면 좀 더 빠르고 편리한 방법은 없을까 방법이 있다 바로 모니터 프로그램을 사용? .

하면 좋을 것 같다 프로세서 관련 모니터 프로그램은 삼성전자 홈페이. S3C2410A, S3C2440A

지에서도 다운받을 수 있다 이 모니터 프로그램이 하는 일은 무엇인가 또는 채. ? UART USB

널로부터 데이터 수신을 하여 그 수신된 데이터를 으로 복사하고 다운로드가 정상적으로RAM

완료되었다면 그 번지로 점프하여 다운로드 받은 프로그램을 실행시키는 것이다, RAM .

일단 으로 점프하면 그때부터는 에서 프로그램 다운로드한 프로그램 이 실행되는 것RAM RAM ( )

이다. 책에서 스타트업 코드 부분에서 대하여 설명하였지만 프로그램에서는 제RAM 2 EVT

(Exception 번지에 실행하고자 하는 함수의Vector Table) ISR (Interrupt Service routine)

시작주소를 대입하도록 해 놓음으로서 인터럽트도 손쉽게 처리할 수 있다.

인터럽트가 발생하면 의 번지로 점프한다 그 번지에는 제 번지로 점프ROM 0x00000018 . 2 EVT

하도록 분기 주소가 저장되어 있는데 그 제 번지에 에 저장된 함수의 시작주, 2 EVT RAM ISR

소를 넣어 인터럽트 루틴을 처리하게 된다 즉 원래의 인터럽트 실행번지를 으로 맵핑시. RAM

키는 것이다 따라서 모니터 프로그램은 통신 채널로 데이터가 수신되는지를 계속 감시하게.

되며 이 밖에도 메모리 초기화나 메모리 레지스터 업 로딩 기능 등을 넣어서, View, View,

개발 시 필요한 디버깅 기능으로 사용할 수도 있다.

이렇듯 사용자가 필요로 하는 기능을 넣어서 모니터 프로그램을 만들었다면 다운로더JTAG

를 가지고 플래시에 프로그램을 하고 그 때부터는 에 프로그램을 다운로드해NOR write RAM

서 테스트하고 디버깅 할 수 있을 것이다 모니터 프로그램은 에 프로그램 되어 실행되. ROM

는 것이므로 번지부터 위치하게 되고 컴파일 시 를 번지로 설정해 주어0x0 'RO BASE' '0x0'

야 한다 모니터 프로그램을 이용해 에서 실행 될 프로그램은 를. RAM 'R0 BASE' '0x30000000'

번지로 설정해야 한다 그럼 왜 번지인가 에 대해서는 특별한 의미보다는 다음. 0x30000000 ?

그림의 메모리맵에서 보듯이 전체적인 메모리 맵 상 적당한 위치이기 때문이다.

Page 28: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 28 -

모니터 프로그램 메모리 맵

0x3400_0000

0x33ff_ff00

Exception & ISR

Vector table∧

|

|

|

Cacheable

|

|

|

|

|

|

|

|

|

|

|

|

|

Bank6

64MB

|

|

|

|

|

|

|

|

|

_ISR_START

ADDRESS

0x33ff_8000Not use Area

_STACK_BASE

_MMUTT_START

0x33ff_4800

FIQ ~ User Stack

Area

0x33ff_0000

Heap & RW AreaHEAPEND

0x3100_0000

Non-cacheable

0x3000_0000

Download Area

(16MB)

|

|

Cacheable

|

|

0x0000_0000

Nor-Flash

( 1MB )

Monitor

Program

Page 29: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 29 -

부트로더 복구

이하생략[--- ---]

다음은 부트로더 이미지를 프로그램하는 순서입니다.

❚ 명령창을 연 뒤 및 부트로더 이미지가 있는 디렉터리로 이동합니다sjf2440m.exe .

그림과 같이 이라고 입력합니다sjf2440m.exe /f:uMon2440.bin .❚

여기서 는 병렬포트를 통해 부트로더를 프로그램하는 프로그램이고sjf2440m.exe PC

파일은 실제 플래시에 저장해야 할 부트로더 이미지입니다 케이uMon2440.bin NOR .

블과 병렬포트 드라이버를 정상적으로 설치했다면 를 감지했다는 메시지가 명령CPU

창으로 출력됩니다 를 감지하지 못했다는 메시지가 출력되면 드라이버 설치와. CPU

케이블 연결을 다시 확인해 보십시오.

옵션을 선택하는 프롬프트가 나오면 을 입력합니다0x0 .❚

Page 30: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 30 -

지금부터 부트로더 프로그램을 시작하며 약 바이트의 부트로더 이미지를 프로, 32K

그램하는 전체 시간은 약 분 정도가 걸립니다3~4 .

부트로더 프로그램이 끝나면 이라는 종"End of the sector data writing!!!"❚료 메시지가 표시됩니다.

의 전원을 끕니다MSTK-2440 .❚보드에서 케이블을 제거합니다JTAG .❚다시 전원을 넣어서 정상 부팅하는지 확인합니다.❚

Page 31: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 31 -

회로설명

❚ 파워 전원부( )

이하생략[--- ---]

❚ 리셋 로직(Reset Logic)

이하생략[--- ---]

❚ 클럭 소스 와 부트 모드 설정(Clock Source) (Boot Mode)

이하생략[--- ---]

❚ SDRAM(Synchronous DRAM)

이하생략[--- ---]

❚ 플래시 플래시NOR & NAND

이하생략[--- ---]

❚ K9F1208 NAND FLASH

이하생략[--- ---]

❚ RTC(Real Time Clock)

이하생략[--- ---]

Page 32: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 32 -

❚ GENERAL I/O PORTS

이하생략[--- ---]

❚ 외부 인터럽트 인터페이스(External Interrupt)

이하생략[--- ---]

❚ LCD INTERFACE

이하생략[--- ---]

❚ 터치 패널 인터페이스(Touch Panel)

이하생략[--- ---]

❚ 인터페이스SD(MMC) HOST

이하생략[--- ---]

❚ 인터페이스IIC

이하생략[--- ---]

❚ 인터페이스IIS

이하생략[--- ---]

❚ AC97 Audio-CODEC Interface

Page 33: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 33 -

이하생략[--- ---]

❚ 카메라 인터페이스 커넥터

이하생략[--- ---]

❚ 인터페이스COMPACT FLASH & HARD DISK

이하생략[--- ---]

❚ 인터페이스UART & IrDA

이하생략[--- ---]

❚ USB INTERFACE

이하생략[--- ---]

❚확장 커넥터 인터페이스(Extension)

이하생략[--- ---]

Page 34: 공개 MSTK-ohmmanager3.dotname.kr/OHM_DATA/lE060408D/MSTK-2440... · CD ₩GNUTool₩MSTK-2440₩FirmwareExamples₩Chapter6₩GPIO_Led 폴더에있는 파일을선택합니다'GPIO_Led.bin

- 34 -

회로도

이하생략[--- ---]