1
Armadillo-500 Development Board
StartUp Guide Version 1.0.1
http://www.atmark-techno.com/
http://armadillo.atmark-techno.com/
2
목차
1. 들어가며
1.1. 대상 독자
1.2. 본서 구성.
1.3. 표기에 대해
1.3.1. 폰트
1.3.2. 커맨드 입력 예
1.3.3. 아이콘
1.4. 감사의 말씀
1.5. 주의사항
1.5.1. 안전에 관한 주의사항
1.5.2. 취급상 주의사항
1.5.3. 소프트웨어에 관한 주의사항
1.6. 보증에 대하여
1.6.1. 보증범위
1.6.2. 보증대상 외인 경우
1.6.3. 면책사항
1.7. 상표에 대해
2. 작업하기 전에
2.1. 전체도
2.2. 준비할 것
2.3. 연결방법
2.4. 점퍼핀 설정에 대해
2.5. 시리얼통신소프트웨어 설정
3. 기동과 종료
3.1. 기동
3.2. 로그인
3.3. 종료방법
4. 기동모드와 부트로더 기능
4.1. 기동모드 선택
4.2. Linux 커널 기동 옵션 설정
4.2.1. 콘솔 설정
4.2.2. 루트파일시스템 설정
4.2.2.1 루트파일시스템이미지 위치
4.2.2.2. 루트파일시스템 Type
4.2.2.3. 마운트 전 delay
4.2.3. 그 외 기동옵션
4.2.4. 기동옵션 설정예
4.3. 커널 이미지 위치설정
5. Configuration영역 - 설정파일 저장영역
5.1. Configuration영역 읽어내기
5.2. Configuration영역 저장
5.3. Configuration영역 초기화
6. 네트워크
6.1. 네트워크 설정
6.1.1. 고정IP주소에 설정하기
6.1.2. DHCP에 설정하기
6.1.3. DNS서버 지정하기
6.1.4. 연결 확인하기
6.2. 방화벽
6.3. 네트워크 어플리케이션
6.3.1. TELNET
3
6.3.1.1. TELNET서버
6.3.1.2. TELNET 클라이언트
6.3.2. FTP
6.3.2.1 FTP서버
6.3.2.2. FTP클라이언트
6.3.3. SSH
6.3.3.1. SSH서버
6.3.3.2. SSH클라이언트
6.3.4. Web서버
6.3.5. NTP클라이언트
7. 스토리지
7.1. 스토리지로서 사용가능한 디바이스
7.2. 스토리지 초기화와 마운트
7.2.1. NAND플래쉬디바이스
7.2.1.1. 파일시스템을 JFFS2로 하는 경우
7.2.1.2. 마운트
7.2.2. 그 외 디바이스
7.2.2.1. 디스크 초기화
7.2.2.2. 파일시스템 구축
7.2.2.3. 마운트
8. 비디오
8.1. 커널 기동로그를 비디오에 출력
8.2. 해상도 변경
8.2.1. VGA에 설정하기
8.2.2. SVGA에 설정하기
9. 그외 디바이스
9.1. LED
9.1.1. Ledct기에 의한 제어
9.1.2. ledctrl사용 예
9.2. 탁트스위치
9.2.1. swmgr에 의한 이벤트 취득
9.2.2. swmgr사용 예
9.3. GPIO
9.3.1. Direction을 INPUT로 하기
9.3.2 Direction을 OUTPUT로 하기
표 목차
표 1-1 사용하는 폰트
표 1-2 표示프론프트와 실행환경의 관계
표 2-1 시리얼통신설정
표 3-1 시리얼콘솔 로그인시 사용자명과 비밀번호
표 4-1 기동모드
표 4-2 콘솔지정에 따른 출력 위치
표 4-3 루트파일 시스템 디바이스
표 4-4 커널 이미지 위치
표 6-1 고정IP주소설정
표 6-2 telnet으로 로그인가능한 사용자
표 6-3 ftp로 로그인가능한 사용자
표 6-4 ssh로 로그인가능한 사용자
표 7-1 스토리지 디바이스
표 8-1 대응해상도 일람
4
표 9-1 ledctrl:LED ID
표 9-2 ledctrl:제어ID
표 9-3 swmgr:SW ID
표 9-4 GPIO파일 노드
그림 목차
그림 2-1 전체도
그림 2-2 연결그림
그림 3-1 기동 로그
그림 3-2 기동 로그(계속 1)
그림 3-3 기동 로그(계속 2)
그림 3-4 기동 로그(계속 3)
그림 3-5 종료 방법
그림 4-1 Linux커널 기동옵션 클리어
그림 4-2 콘솔 지정
그림 4-3 루트파일 시스템 지정
그림 4-4 기동옵션 설정 예1
그림 4-5 기동옵션 설정 예2
그림 4-6 기동옵션 설정 예3
그림 4-7 커널 이미지 위치 지정
그림 5-1 Configuration영역 읽어내기 방법
그림 5-2 Configuration영역 저장 방법
그림 5-3 Configuration영역 초기화 방법
그림 6-1 고정IP주소 설정
그림 6-2 DHCP 설정
그림 6-3 DNS서버 설정
그림 6-4 설정을 반영시키기
그림 6-5 PING 확인
그림 6-6 iptables
그림 6-7 telnet
그림 6-8 ftp
그림 6-9 ssh
그림 6-10 Armadillo-500 TOP 화면
그림 6-11 msntp
그림 7-1 MTD 파티션 일람
그림 7-2 NAND 초기화 예
그림 7-3 NAND 마운트 방법
그림 7-4 디스크 초기화 방법
그림 7-5 파일시스템 구축
그림 7-6 마운트 방법
그림 8-1 콘솔지정(비디오)
그림 8-2 해상도 지정방법(VGA)
그림 8-3 해상도 지정방법(SVGA)
그림 9-1 ledctrl커맨드 예
그림 9-2 ledctrl사용 예1
그림 9-3 ledctrl사용 예2
그림 9-4 ledctrl사용 예3
그림 9-5 ledctrl사용 예4
그림 9-6 swmgr커맨드 예
그림 9-7 swmgr사용 예1
그림 9-8 swmgr사용 예2
그림 9-9 GPIO:Direction을 INPUT로 하기
5
그림 9-10 GPIO:INPUT시 입력상태を취득하기
그림 9-11 Direction을 OUTPUT로 하기
그림 9-12 OUTPUT시 출력상태 변경하기
6
1.들어가며
Armadillo-500 개발 세트를 구매해 주셔서 감사합니다.
Armadillo-500은 CPU Core に ARM1136JF-S를 탑채한 초소형 ・ 고성능 CPU 모듈입니다.
정보표시기기나 멀티미디어기기 등 메인프로세서로서 사용하실 수 있습니다.
Armadillo-500 개발보드(이하 개발보드라고 표기)는 Armadillo-500과 Armadillo-500에 탑채된
기능을 효율적으로 사용하실 수 있게 각종 콘트롤러 및 커넥터를 실장한 베이스보드 구성이 됩니다.
개발보드는 표준OS로 Linux를 채용하고 있어 Linux의 풍부한 소프트웨어 자산을 이용할 수 있습니다.
또한 C 등 프로그래밍 언어를 사용하여 오리지널 프로그램을 작성하여 동작시키는 것도 가능합니다.
커스터마이즈 방법에 대해서는 “ Armadillo-500 Development Board Software Manual” 등을 참조해
주십시오.
본서에는 이용상 주의사항이나 구매시 상태로 이용할 수 있는 소프트웨어 기능에 대해 기재되어
있습니다. 개발보드를 받으시면 하드웨어 동작확인 및 디폴트소프트웨어 사용 방법에 대하여 확인해
주시기 바랍니다.
1.1. 대상 독자
● 하드웨어 동작확인을 하시는 분
● 소프트웨어 기본적인 사용방법을 확인하시는 분
1.2. 본서 구성
본서에서는 개발보드 기본적인 사용 방법에 대해 기재되어 있습니다. 이하 주요 항목을 듭니다.
● 연결방법
● 기동과 종료
● 각종 설정방법
● 각종 어플리케이션 사용방법
1.3. 표기에 대해
1.3.1. 폰트
본서에서는 아래와 같은 뜻으로 폰트를 나누어 사용합니다.
표1-1 사용하는 폰트
폰트 예 설명
본문 내 폰트 본문
[PC ~]$ ls 프론프트와 사용자 입력 문자열
text 편집하는 문자열이나 출력되는 문자열 또는 코멘트
7
1.3.2. 커맨드입력예
본서에 기재되는 커맨드 입력 예는 표시되어 있는 프론프트로 각각 대응한 실행환경을 상정하여
쓰여 있습니다. “ /” 부분은 current directory에 따라 달라집니다. 각 사용자 home directory는
“ ~” 로 표사합니다.
표1-2 표시 프론프트와 실행환경의 관계
프론프트 커맨드 실행환경
[PC /]# 작업용 PC상의 특권사용자로 실행
[PC /]$ 작업용 PC상의 일반사용자로 실행
[armadillo500 /]# 개발보드사의 특권사용자로 실행
[armadillo500 /]$ 개발보드상의 일반사용자로 실행
hermit> 개발보드상의 보수모드로 실행
1.3.3. 아이콘
본서에서는 아래와 같이 아이콘을 사용합니다.
1.4. 감사의 말씀
개발보드로 사용하고 있는 소프트웨어는 Free Software / Open Source Software로 구성되어
있습니다. Free Software / Open Source Software는 세계 많은 개발자의 성과로 이루어져 있습니다.
여기서 감사의 말씀을 드리겠습니다.
1.5. 주의사항
1.5.1.안전에 관한 주의사항
본제품을 안전하게 사용하기 위하여 특히 아래 점을 주의하시기 바랍니다.
도움이 되는 정보를 기재합니다.
주의사항을 기재합니다.
본제품에는 일반전자기기용 (OA기기・ 통신기기・ 계측기기・ 공작기기 등)으로 제조
된 반도체부품을 사용하고 있어 오작동이나 고장이 직접 생명을 위협하거나 신체
및 재산에 위해를 줄 우려가 있는 장치(의료기기・ 교통기기・ 연료제어・ 안전장치 등)
에 내장시켜 사용하지 마십시오. 또는 반도체부품을 사용한 제품은 외래 noise나
surge로 인해 오작동하거나 고장 날 수가 있습니다. 사용하실 경우에는 만에 일
오작동, 고장 난 경우에 있어서도 생명・ 신체・ 재산 등이 침해되지 않게 장치로서
의 안전 설계 (remit switch나 fuse, Breaker 등 보호회로 설치, 설치 다중화 등) 에
각별히 주의하시기 바랍니다.
8
1.5.2. 취급상 주의사항
본제품에 항구적인 충격을 주지 않도록 취급시에는 아래와 같은 점을 주의하시기 바랍니다.
●전원 투입
본제품이나 주변회로에 전원이 들어가 있는 상태서 범용 입출력 커넥터를 절대로 빼거나 끼지
마십시오.
●정전기
본제품에는 CMOS 디바이스를 사용하고 있기 때문에 사용하시기 전까지는 대전 방지 대책이 되어
있는 출하시 패키지 등으로 보관해 주십시오.
●Latch Up
전원 및 입출력으로 과대한 noise나 surge, 전원전압의 급격한 변동 등으로 사용하는 CMOS
디바이스가 Latch up를 일으킬 수 있습니다. 한번 latch up 상태가 되면 전원을 끄지 않은 한 이
상태가 유지되므로 디바이스가 파손될 수가 있습니다. Noise 영향을 받기 쉬운 입출력 라인에는
보호회로를 넣거나 noise 원인이 되는 장치와 같은 전원을 사용하지 않는 등 대책을 세워
주십시오.
1.5.3. 소프트웨어에 대한 주의사항
본제품에 포함되는 소프트웨어(부록 문서도 포함)는 현상대로(AS IS)제공되는 것이며 특정 목적에
적합하거나 그 신뢰성, 정확성을 보증하는 것이 아닙니다. 또한 본제품을 사용한 결과에 대한 것에
아무 보증도 하는 것이 아닙니다.
1.6. 보증에 대하여
1.6.1. 보증범위
부록품(소프트웨어 포함)을 사용하여 취급 설명서, 각 주의사항에 근거하는 정상적인 사용법에
한하여 유효입니다. 만에 일 정상적으로 사용했음에도 불구하고 제품이 고장 난 경우에는 초기
불량보증기간 내이라면 신품으로 교환해 드리겠습니다.
1.6.2. 보증대상 외로 될 경우
다음과 같은 경우의 고장 및 손상은 보증기간 내에도 보증 대상 외로 됩니다.
● 취급설명서에 기재된 사용 방법 또는 주의에 반한 취급으로 발생한 경우
● 개조 및 부품교환에 기원하는 경우. 또는 정품이 아닌 기기를 연결한 것에 기원하는 경우
● 손님이 받으신 후에 수송, 이동시 낙하 취급불비로 인한 경우
● 화재, 지진, 수해 그 외 천해, 공해나 이상 전압에 의한 경우
● AC어덥터, 전용 케이블 등 부록품을 사용하지 않은 경우
● 수리 의뢰시 구입시의 부록품이 모두 갖추지 않은 경우
1.6.3. 면책 사항
폐사에 고의 또는 중대한 과실이 있는 경우를 제외하고 제품 사용 및 고장, 수리로 인해 발생하는
어떤 손해에 대해서도 폐사는 아무 책임도 부담하지 않습니다.
본제품은 구입시 초기불량 이외는 보증하지 않습니다. 보증기관은 상품
도착 후 2주간입니다. 본제품을 구입하시면 번거로우시더라도 반드시 동
작 확인을 해서 사용해 주십시오. 본제품에 대하여 주의사항을 지키지
않아 발생한 고장에 대해서는 보증 대상 외로 됩니다.
9
1.7. 상표에 대하여
Armadillo는 ㈜atmark-techno의 등록상표입니다. 그 외 기재된 회사명, 제품명은 각각 등록상표
또는 상표입니다.
2. 작업하기 전에
2.1. 전체도
개발보드 전체도입니다. 각 인터페이스 배치 위치 등을 확인해 주십시오.
그림 2-1 전체도
2.2. 준비할 것
개발보드를 사용하시기 전에 다음과 같은 것을 준비해 주십시오.
● 작업용PC와 시리얼 교차케이블
Linux 또는 Windows가 동작하여 1포트 이상의 시리얼포트를 가지는 PC와 D-Sub9
pin(암컷-암컷) 교차연결용 케이블입니다. 작업용PC에는 시리얼통신 소프트웨어1를 설치치해
주십시오. (Linux요 소프트웨어는 부록CD 툴 디렉트리에 수록되어 있습니다.)
● 네트워크환경
타겟보드와 작업용PC를 네트워크통신을 할 수 있게 해 주십시오.
1 Linux에서는 “ minicom” , Windows에서는 “ Tera Term Pro” 등 입니다
10
● 디스플레이와 USB 키보드
VGA 입력단자를 가진 범용적인 디스플레이와 USB 포트에 연결하는 타입의 키보드입니다.
2.3. 연결방법
개발보드 연결예입니다.
그림 2-2 연결도
2.4. 점퍼핀 설정에 대해
본서에서는 JP1 이외는 조작하지 않습니다. JP2-JP6은 항상 오픈으로 설정해 주십시오. JP1에
대해서는 필요함에 따라 변경 지시가 있습니다. 여기서는 오픈으로 설정해 두겠습니다. 또한 점퍼핀
위치는 그림 2-1으로 확인할 수 있습니다.
2.5.시리얼통신소프트웨어 설정
시리얼통신소프트웨어를 기동하여 시리얼 통신설정을 표 2-1와 같이 설정해 주십시오.
표2-1 시리얼 통신 설정
항목 설정
전송레이트 115,200bps
데이터 길이 8bit
Stop bit 1bit
Parity 없음
플로우 제어 없음
11
3.기동과 종료
3.1. 기동
개발보드 전원을 켜 주십시오. 다음과 같이 기동 로그가 시리얼통신 소프트웨어로 표시됩니다
그림 3-1 기동 로그
Hermit-At v1.1.9 (Armadillo-500) compiled at 12:00:00, Jul 27 2007
Uncompressing
kernel.........................................................................................................
...............................................................done.
Uncompressing ramdisk......................................................
...........................................................................
...........................................................................
.....................................................done.
Linux version 2.6.18-12-at0 (atmark@atde) (gcc version 4.1.2 20061115
(prerelease) (Debian 4.1.1-21)) #1 PREEMPT Thu Jul 26 00:01:12 JST 2007
CPU: Some Random V6 Processor [4107b364] revision 4 (ARMv6TEJ), cr=00c5387f
Machine: Armadillo-500
ATAG_INITRD is deprecated; please update your bootloader.
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIPT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Built 1 zonelists. Total pages: 16384
Kernel command line: console=ttymxc0
MXC IRQ initialized
PID hash table entries: 512 (order: 9, 2048 bytes)
Actual CLOCK_TICK_RATE is 60000000 Hz
Console: colour dummy device 80x30
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 52748KB available (3078K code, 718K data, 120K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
Freeing initrd memory: 8192K
NET: Registered protocol family 16
MXC GPIO hardware
system_rev is: 0x11
Clock input source is 26000000
L2 cache: WB
Using SDMA I.API
MXC DMA API initialized
usb: Host 2 registered
usb: OTG HS Host registered
SCSI subsystem initialized
usbcore: registered new driver
usbfsusbcore: registered new driver hub
MXC MMC/SD driver
mxcmci-0 found
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
12
그림3-2 기동 로그(계속 1)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
Low-Level PM Driver module loaded
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
Console: switching to colour frame buffer device 80x30
fb0: MXC frame buffer at 640x480x16 (CRT-VGA)
gpio: Armadillo-5x0 GPIO Sample driver [Rev.1.00]
MXC WatchDog Driver 2.0
MXC Watchdog Timer: initial timeout 60 sec
Serial: MXC Internal UART driver
mxcintuart.0: ttymxc0 at MMIO 0x43f90000 (irq = 45) is a Freescale MXC
mxcintuart.1: ttymxc1 at MMIO 0x43f94000 (irq = 32) is a Freescale MXC
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
loop: loaded (max 8 devices)
eth0: LAN9118 (rev 1) at 0xc4850000 IRQ 64
eth0: Ethernet addr: 00:11:0c:0a:00:01
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $
armadillo5x0-nor: Found 1 x16 devices at 0x0 in 16-bit bank Intel/Sharp Extended Query Table
at 0x010AIntel/Sharp Extended Query Table at 0x010AIntel/Sharp Extended Query Table at
0x010AIntel/Sharp Extended Query Table at 0x010AIntel/Sharp Extended Query Table at
0x010A
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
armadillo5x0-nor: use default partitions(4)
Creating 4 MTD partitions on "armadillo5x0-nor":
0x00000000-0x00020000 : "nor.bootloader"
0x00020000-0x00220000 : "nor.kernel"
0x00220000-0x00fe0000 : "nor.userland"
0x00fe0000-0x01000000 : "nor.config"
MXC MTD nand Driver 2.0
NAND device: Manufacturer ID: 0x20, Chip ID: 0xf1 (ST Micro NAND 128MiB 3,3V
8-bit)
Scanning device for bad blocks
Creating 4 MTD partitions on "NAND 128MiB 3,3V 8-bit":
0x00000000-0x00020000 : "nand.ipl"
0x00020000-0x00420000 : "nand.kernel"
0x00420000-0x01a20000 : "nand.userland"
0x01a20000-0x10000000 : "nand.free"
armadillo5x0_pcmcia: PCMCIA driver [Rev.1 (2007/--/--)], (C) 2007 Atmark Techno,
Inc.
usbmon: debugfs is not available
13
그림3-3 기동 로그(계속 2)
그림3-4 기동 로그(계속 3)
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 36, io base 0x43f88400
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.1: irq 37, io base 0x43f88000
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
pegasus: v0.6.13 (2005/11/13), Pegasus/Pegasus II USB Ethernet driver
usbcore: registered new driver pegasus
mice: PS/2 mouse device common for all mice
tactsw: Armadillo-5x0 Tact-SW driver [Rev.1.00]
input: Tact-SW Port1 as /class/input/input0
input: Tact-SW Port2 as /class/input/input1
rtc-s353xxa: S-353XXA Real Time Clock class driver [Rev.1 (2007/--/--)], (C)
2007 Atmark Techno, Inc.
i2c /dev entries driver
i2c_armadillo5x0: Armadillo-5x0 I2C driver [Rev.1 (2007/--/--)], (C) 2007 Atmark
Techno, Inc.
rtc-s353xxa 0-0030: rtc intf: sysfs
rtc-s353xxa 0-0030: rtc intf: proc
rtc-s353xxa 0-0030: rtc intf: dev (253:0)
rtc-s353xxa 0-0030: rtc core: registered S-353XXA as rtc0
tlv320aic: TI TLV320AIC Audio codec driver [Rev.1 (2007/--/--)], (C) 2007 Atmark
Techno, Inc.
IPU Post-filter loading
SSI module loaded successfully
led: Armadillo-5x0 LED driver, (C) 2007 Atmark Techno, Inc.
Registered led device: led1
Registered led device: led2
Registered led device: led3
Registered led device: led4
Registered led device: led5
Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50
2006 UTC).
mxc_alsa_i2s: MXC ALSA iis audio driver [Rev.1 (2007/--/--)], (C) 2007 Atmark
Techno, Inc.
usbcore: registered new driver snd-usb-audio
ALSA device list: #0:
mxc i2s audio
14
IPv4 over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
NET: Registered protocol family 15
ieee80211: 802.11 data/management/control stack, git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation <[email protected]>
Power Management for Freescale MX31
VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 2
rtc-s353xxa 0-0030: setting the system clock to 2007-07-26 14:01:52 (1185458512)
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 8192KiB [1 disk] into ram disk... done.
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 120K
init started: BusyBox v1.00 (2007.07.25-15:02+0000) multi-call binary
Starting fsck for root filesystem.
fsck 1.25 (20-Sep-2001)
ext2fs_check_if_mount: No such file or directory while determining whether/dev/ram0 is
mounted. /dev/ram0: clean, 719/1024 files, 6572/8192 blocks Checking root filesystem: done
Remounting root rw: done
Mounting proc: done
Mounting usbfs: done
Mounting sysfs: done
Cleaning up system: done
Running local start scripts. Starting udevd: done
Changing file permissions: done
Configure /home/ftp: done
Starting syslogd: done
Starting klogd: done
Loading /etc/config: done
Starting basic firewall: done
Setting hostname: done
Configuring network interfaces: info, udhcpc (v0.9.9-pre) startedeth0: link down eth0: link
up, 100Mbps, full-duplex, lpa 0x05E1debug, Sending select for 172.16.1.93...
info, Lease of 172.16.1.100 obtained, lease time 86400
done Starting inetd:
done Stating sshd: done Starting thttpd: done Mounting ramfs /home/ftp/pub: done
atmark-dist v1.10.0 (AtmarkTechno/Armadillo-500)Linux 2.6.18-12-at0 [armv6l arch]
armadillo500 login:
15
3.2. 로그인
기동이 완료되면 로그인 프론프트가 표시됩니다. 표 3-1에 나타내는 사용자로 로그인할 수
있습니다.
표3-1 시리얼 콘솔 로그인시 사용자명과 비밀번호
사용자명 비밀번호 권한
root root 특권사용자
guest guest 일반사용자
3.3. 종료방법
안전하게 종료시킨 경우에는 다음과 같이 커맨드를 실행하여 “ System halted.” 라고 표시된 것을
확인한 다음에 전원을 끕니다.
그림 3-5 종료방법
외장 디스크를 사용하지 않은 경우는 전원을 끄고 종료시키는 것도 가능합니다.
4.기동모드와 부트로더 기능
이 장에서는 개발보드 기동모드로 채용한 부트로더” Hermit-At” 기동설정기능에 대해 설명합니다.
기동모드에는 자동 부트모드, 보수모드 등 시스템 기동시 먼저 동작하는 소프트웨어를 선택할 수
있습니다.
Hermit-At 에서는 Linux 커널을 기동시킬 때 기동옵션 설정, 커널 이미지의 위치 설정、clock 설정
등 시스템기동시 초기 설정을 할 수 있습니다.
[root@armadillo500 (ttymxc0) ~]# halt
[root@armadillo500 (ttymxc0) ~]#
System is going down for system reboot now.
Starting local stop scripts.
Exiting Syslogd!
Syncing all filesystems: done
Unmounting all filesystems: done
The system is going down NOW !! Sending SIGTERM to all processes. The system is halted. Press Reset or turn off power MXC Watchdog shutdown
System halted.
외장 디스크에 데이터를 쓰고 있는 중에 전원을 끈 경우 파일시스템 및
데이터가 손상될 가능성이 있습니다. 외장 디스크를 umount하여 전원을
꺼 주십시오.
16
4.1. 기동모드 선택
기동모드 설정은 JP1 설정으로 결정됩니다. 각 기동모드는 표 4-1와 같습니다.
표4-1 기동모드
모드 JP1 설명
자동 부트 Open 전원 낀 후 자동적으로 커널을 기동시킵니다.
보수 Short 각종 설정이 가능한 Hermit 커맨드 프론프트가
기동합니다.
4.2. Linux커널기동옵션 설정
Linux 커널 기동옵션을 변경함으로써 콘솔이나 루트파일 시스템 등 다양한 종류의 설정을 변경할 수
있습니다. 여기서는 개발보드에 관련되는 대표적인 옵션에 대해 설명합니다.
또한 이러한 설정은 Hermit-At setenv 기능을 사용합니다. Setenv로 설정된 파라미터는
플래쉬메모리에 저장되어 재기동 후에도 설정이 반영됩니다.
설정된 파라미터를 클리어하기 위해서는 clearenv를 사용합니다.
그림 4-1 Linux커널 기동옵션 클리어
4.2.1. 콘솔 설정
보통 Linux 시스템에서는 기동 로그 출력콘솔을 변경할 때 지정하지만 개발보드에서는 부트로더
로그출력 위치도 동시에 변경합니다.
그림4-2 콘솔 지정
설정에 의한 로그 출력 위치는 표 4-2와 같습니다.
표4-2 콘솔지정에 따른 출력 위치
콘솔 지정자 기동 로그출력 위치 보수모드 프론프트 출력위치
ttymxc0 CON6 CON6
ttymxc1 CON7 CON7
null 없음 CON6
그 외(tty1 등) 지정하는 콘솔2 CON6
2 부트로더 로그는 출력되지 않습니다.
hermit> setenv console=ttymxc0
콘솔지정자
17
4.2.2. 루트파일시스템 설정
루트파일 시스템으로서 마운트하는 파일시스템이미지 위치나 마운트하는 파일시스템 등을 설정합니다.
그림4-3 루트파일 시스템 지정
4.2.2.1.루트파일 시스템 이미지 위치
파일시스템이미지 위치를 설정할 경우에는 이미지가 존재하는 파티션을 설정합니다. 각 디바이스
파티션 노드 예를 표 4-3에 표시합니다. 지정이 없는 경우(디폴트)에는 RAM디스크(/dev/ram0)가
지정됩니다.
표4-3 루트파일시스템디바이스
디바이스명 디바이스노드 선두 파티션노드
RAM 디스크 /dev/ram /dev/ram0
콤팩트 플래쉬디스크 /dev/hda /dev/hda1
NAND 디스크 /dev/mtdblock /dev/mtdblock4
MMC/SD 카드디스크 /dev/mmcblk0 /dev/mmcblk0p1
4.2.2.2.루트파일 시스템 Type
특이한 파일시스템을 사용하는 경우에는 파일시스템 Type를 지정합니다. 주로 JFFS2가 사용되는
경우입니다. 지정이 없는 경우에는 ext2, ext3, msdos, vfat 중 하나로 마운트됩니다1.
4.2.2.3.마운트 전 Delay
Linux 커널은 지정하는 루트파일시스템이 존재하는 디바이스 인식이 완료되지 않으면 루트파일
시스템을 마운트할 수 없습니다. 드라이버 로드 타이밍이나 디바이스에 의존하는 시간 등 디바이스
인식시간은 다양한 요소로 변동합니다.
여기서 지정할 수 있는 마운트 전 Delay는 루트파일 시스템을 마운트하기 전에 지정 초간 대기하는
옵션입니다. 지정이 없는 경우(디폴트)는 “ 대기 없음” 으로 됩니다.
4.2.3. 그 외 기동옵션
본서에서 소개한 옵션 외에도 다양한 옵션이 있습니다. 상세 내용은 Linux 해설서나 Linux커널
소스코드에 포함되는 문서(kernel-source/Documentation/kernel-parameters.txt)등을 참조해
주십시오.
또한 비디오에 대한 옵션은 “ 8.비디오” 를 참조해 주십시오.
1 Linux 커널이 표준으로 지원하는 파일시스템일 경우에는 특별히 지정할 필요는 없습니다
hermit> setenv root=/dev/hda1 rootfs=ext2 rootdelay=3
이미지 위치 파일 시스템 타입 마운트 전 Delay
18
4.2.4. 기동옵션 설정 예
● 콘솔을 CON7으로 하는 경우
그림4-4 기동옵션 설정 예1
● 콘솔을 CON6, 루트파일 시스템을 콤팩트플래쉬 파티션1으로 하는 경우
그림4-5 기동옵션 설정 예2
● 콘솔을 비디오로 출력, 루트파일 시스템을 MMC/SD 파티션2로 하는 경우1
그림4-6 기동옵션 설정 예3
4.3. 커널 이미지 위치 설정
부트로더가 로드하는 커널이미지 위치를 지정할 수 있습니다.
그림4-7 커널이미지 위치 지정
개발보드에서는 표 4-4에 표시하는 디바이스를 지정할 수 있습니다.
표4-4 커널이미지 위치
지정자 설명
flash 플래쉬메모리 커널 리전에 있는 이미지를 로드합니다.
hda 콤팩트 플래쉬 각 파티션 /b oot 이사에 있는 이미지파일2을 순서대로 주사하여,
처음에 찾은 이미지를 로드합니다.[2]
hda[1:4] 콤팩트 플래쉬 지정하는 파티션 /boot 이하에 있는 이미지파일3을 주사하여
찾아낸 이미지를 로드합니다.[2]
1 서면 구성상 2행으로 표기하고 있지만 원래 1행 커맨드입니다. 2 linux.bin, linux.bin.gz, Image, Image.gz 중 하나 입니다 3 이미지파일을 찾을 수 없는 경우에는 flash를 지정한 것처럼 동작합니다
hermit> setenv console=ttymxc1
hermit> setenv console=ttymxc0 root=/dev/hda1 rootdelay=3
hermit> setenv console=ttymxc0 video=mxcfb:CRT-SVGA,16bpp,enable
root=/dev/mmcblk0p2 rootdelay=1
hermit> setbootdevice flash
지정자
19
5.Configuration영역-설정파일 저장영역
이 장에서는 설정파일 등을 저장하여 하드웨어 리셋 후에도 데이터를 보지할 수 있는 영역에 대해
설명합니다.
5.1. Configuration영역의 읽어내기
Configuration영역을 읽어내기 위해서는 아래 커맨드를 실행합니다. 읽어낸 파일은 “ /etc/config” 에
작성됩니다.
그림5-1 Configuration영역의 읽어내기 방법
디폴트 소프트웨어에서는 기동시 자동적으로 Configuration영역의 읽어내기를 하도록 설정되어
있습니다.
5.2. Configuration영역 저장
Configuration영역을 저장하기 위해서는 아래 커맨드를 실행합니다. 저장되는 파일은
“ /etc/config” 이하 파일입니다. Configuration영역 크기는128KB1입니다.
그림5-2 Configuration영역 저장방법
5.3. Configuration영역 초기화
Configuration영역을 초기화하기 위해서는 아래 커맨드를 실행합니다. 초기화시에는
“ /etc/default” 이하 파일이 Configuration영역에 저장되어 동시에 “ /etc/config” 에 파일이
복제됩니다
그림5-3 Configuration영역 초기화방법
6.네트워크
이 장에서는 네트워크 설정방법이나 네트워크를 사용하는 어플리케이션 사용방법에 대해 설명합니다.
6.1. 네트워크 설정
개발보드상 “ /etc/config” 이하에 있는 파일을 편집하여 Configuration영역을 저장함으로써 기동시
네트워크설정을 변경할 수 있습니다. Configuration영역 저장에 대해서는 “ 5.2.Configuration영역
저장” 을 참조해 주십시오.
또한 출하시 네트워크설정은 DHCP로 되어 있습니다.
1 디폴트이미지로의 크기입니다.
[armadillo500 ~]# flatfsd -r
[armadillo500 ~]# flatfsd -s
[armadillo500 ~]# flatfsd -w
네트워크연결에 대한 궁금한 점은 네트워크 관리자에 문의해 주십시오.
20
6.1.1. 고정IP 주소에 설정하기
표 6-1에 표시하는 내용으로 설정 변경하기 위해서는 vi에디터로 /etc/config/interfaces를 그림
6-1와 같이 편집합니다.
표6-1 고정IP 주소설정
항목 설정
IP 주소 192.168.10.10
넷마스크 255.255.255.0
네트워크 주소 192.168.10.0
블로드캐스트 주소 192.168.10.255
디폴트 게이트웨이 192.168.10.1
그림6-1 고정IP 주소설정
6.1.2. DHCP에 설정하기
DHCP에 설정하기 위해서는 vi에디터로 /etc/config/interfaces를 그림 6-2와 같이 편집합니다.
그림 6-2 DHCP설정
6.1.3. DNS 서버 지정하기
DNS 서버를 지정하는 경우에는 vi에디터로 /etc/config/resolv.conf를 편집합니다.
그림 6-3 DNS 서버 설정
[armadillo500 ~]# vi /etc/config/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
auto lo eth0
iface lo inet
loopback
iface eth0 inet static
address 192.168.10.10
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
gateway 192.168.10.1
[armadillo500 ~]# vi /etc/config/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
[armadillo500 ~]# vi /etc/config/resolv.conf
nameserver 192.168.10.1
21
6.1.4. 연결 확인하기
여기서는 변경한 IP설정으로 정상적으로 통신이 가능한지를 확인합니다. 먼저 설정을 반영시킵니다.
설정 후, Configuration영역을 저장하여 재기동한 경우에는 필요 없습니다.
그림6-4 설정을 반영시킴
같은 네트워크내에 있는 통신기기와 PING통신을 해 봅니다.
그림 6-5 PING확인
6.2. 방화벽
개발보드에서는 간의 방화벽이 동작하고 있습니다. 설정되어 있는 내용을 참조하기 위해서는 그림
6-6와 같이 커맨드 실행해 주십시오.
그림 6-6 iptables
6.3. 네트워크 어플리케이션
여기서는 출하시 수록되어 있는 소프트웨어 중 네트워크에 관한 어플리케이션 조작방법을 설명합니다.
6.3.1. TELNET
6.3.1.1. TELNET 서버
다른 PC에서 네트워크 경유로 로그인하여 원격조작이 가능해 집니다.표6-2에 표시하는 사용자로
로그인할 수 있습니다.
표6-2 telnet으로 로그인 가능한 사용자
사용자명 비밀번호
guest guest
6.3.1.2. TELNET클라이언트
telnet을 이용하여 다른 PC로 원격 로그인할 수 있습니다. telnet을 사용하기 위해서는 그림6-7와 같이
커멘드를 실행합니다.
그림 6-7 telnet
[armadillo500 ~]# telnet 192.168.10.1
[armadillo500 ~]# ifdown -a [armadillo500 ~]# ifup -a
[armadillo500 ~]# ping 192.168.10.1
[armadillo500 ~]# iptables -L
22
6.3.2. FTP
6.3.2.1. FTP 서버
다른 PC에서 네트워크 경유로 파일 전송을 할 수 있습니다. 표6-3에 표시하는 사용자로 로그인할 수
있습니다.
표6-3 ftp로 로그인 가능한 사용자
사용자명 비밀번호
ftp (none)
6.3.2.2. FTP클라이언트
그림 6-8 ftp
6.3.3. SSH
6.3.3.1. SSH 서버
다른 PC에서 네트워크 경유로 로그인하여 안전한 원격 조작이 가능합니다.
표6-4 ssh로 로그인 가능한 사용자
사용자명 비밀번호
guest guest
6.3.2.2. SSH 클라이언트
SSH를 사용하여 안전하게 다른 PC로 원격 로그인할 수 있습니다. Ssh를 사용하기 위해서는
그림6-9와 같이 커멘드를 실행합니다.
그림 6-9 ssh
6.3.4. Web 서버
개발보드에서는 Web서버가 동작하고 있습니다. PC 등의 웹브러우저에서 개발보드
URL(http://[개발보드 IP주소1])를 접속하면 “ /home/www-data” 이하 디렉트리를 브러우징할 수
있습니다.
그림 6-10 Armadillo-500 top 화면
6.3.5. NTP 클라이언트
개발보드에서는 SNTP(Simple Network Time Protocol)클라이언트를 사용할 수 있습니다. SNTP에
대응하는 타임 서버에서 시각 정보를 취득할 수 있습니다. 그림 6-11와 같이 커맨드를 실행합니다.
그림 6-11 msntp
1 개발보드 IP 주소기 192.168.10.10 일 경우, http://192.168.10.10/ 로 됩니다
[armadillo500 ~]# ftp 192.168.10.1
[armadillo500 ~]# ssh [email protected]
[armadillo500 ~]# msntp -r 192.168.10.1
The time correction is 17180483.054 +/- 0.075+0.001 seconds
Do you want to correct the time anyway? y
23
7.스토리지
7.1. 스토리지로서 사용가능한 디바이스
개발보드에서는 표 7-1에 표시하는 디바이스를 스토리지로서 사용할 수 있습니다.
표7-1 스토리지디바이스
디바이스 종류 디스크디바이스 선두 파티션
온보드 NAND 플래쉬 /dev/flash/nand.* /dev/flash/nand.ipl
콤팩트 플래쉬 /dev/hda /dev/hda1
MMC/SD 카드 /dev/mmcblk /dev/mmcblk0p1
USB 메모리 /dev/sd* /dev/sda1
7.2. 스토리지 초기화와 마운트
스토리지 초기화와 마운트방법에 대해 설명합니다.
7.2.1. NAND 플래쉬디바이스
여기서는 파티션/dev/flash/nand.free(/dev/mtd7、/dev/mtdblock7)을 예를 듭니다. MTD의 파티션
정보는 그림 7-1와 같이커맨드를 실행하면 표시됩니다.
그림 7-1 MTD 파티션일람
7.2.1.1.파일시스템을 JFFS2로 하는 경우
파일시스템을 JFFS2(Journalling Flash File System v2)로 하는 경우에는 디바이스 초기화와 동시에
파일시스템을 구축할 수 있습니다. 그림 7-2와 같이 커맨드를 실행해 주십시오.
그림 7-2 NAND 초기화 예
[armadillo500 ~]# cat /proc/mtd
dev: size erasesize name
mtd0: 00020000 00008000 "nor.bootloader"
mtd1: 00200000 00020000 "nor.kernel"
mtd2: 00dc0000 00020000 "nor.userland"
mtd3: 00020000 00020000 "nor.config"
mtd4: 00020000 00020000 "nand.ipl"
mtd5: 00400000 00020000 "nand.kernel"
mtd6: 01600000 00020000 "nand.userland"
mtd7: 0e5e0000 00020000 "nand.free"
[armadillo500 ~]# flash_eraseall -j /dev/flash/nand.free
Erasing 128 Kibyte @ 65c0000 -- 99 % complete. Cleanmarker written at 65c0000.
24
7.2.1.2.마운트
초기화 후 마운트하기 위해서는 그림 7-3와 같이커맨드를 실행합니다.
그림 7-3 NAND 마운트방법
7.2.2. 그외 디바이스
7.2.2.1. 디스크 초기화
여기서는 콤팩트 플래쉬(/dev/hda)를 예로 들어 파티션을 하나 만듭니다.
그림7-4 디스크 초기화 방법
[armadillo500 ~]# mount -t jffs2 /dev/mtdblock7 /mnt
[armadillo500 ~]# fdisk /dev/hda
Command (m for help): d
Selected partition 1
Command (m for help): d
No partition is defined yet!
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1011, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1011, default 1011):
Using default value 1011
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table. hda: hda1 hda: hda1
Syncing disks.
25
7.2.2.2.파일시스템 구축
초기화한 디스크 파티션에 파일시스템을 구축합니다. 여기서는 콤팩트 플래쉬의
파티션1(/dev/hda1)에 EXT2를 구축합니다.
그림7-5 파일시스템 구축
7.2.2.3.마운트
파일시스템을 작성 후 마운트하기 위해서는 그림 7-6와 같이 커맨드를 실행합니다.
그림 7-6 마운트 방법
[armadillo500 ~]# mke2fs – O none /dev/hda1
mke2fs 1.25 (20-Sep-2001)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
15680 inodes, 62651 blocks
3132 blocks (4%) reserved for the super user
First data block=1
8 block groups
8192 blocks per group, 8192 fragments per group
1960 inodes per group
Superblock backups stored on blocks: 8193, 16385, 24577, 32769, 40961, 49153, 57345
Writing inode tables: doneWriting superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180.00 days, whichever comes first. Use tune2fs -c or -i to override.
[armadillo500 ~]# mount -t ext2 /dev/hda1 /mnt
파일시스템 디바이스・ 파티션 마운트 Point
26
8.비디오
8.1. 커널기동 로그를 비디오에 출력
점퍼에 의해 기동모드를 보수모드로 설정하여 재기동합니다. 그림 8-1와 같이 setenv커맨드로 콘솔을
변경합니다.
그림8-1 콘솔지정(비디오)
설정한 후 통상시와 같이 Linux를 기동하면 커널기동 로그는 비디오에 출력됩니다.
8.2. 해상도 변경
대응하는해상도는 표 8-1에 표시하는 대로입니다.
표8-1 대응해상도일람
지정자 색 심도(bpp) 해상도
CRT-VGA 8/16 640×480
CRT-SVGA 8/16 800×600
8.2.1. VGA に설정하기
점퍼에 의하여 기동모드를 보수모드로 설정하여 재기동합니다. 그림 8-2와 같이 커맨드를 실행합니다.
그림8-2 해상도 지정방법(VGA)
설정 후 통상시와 같이 Linux를 기동하면 해상도가 변경됩니다.
개발보드에서는 비디오출력하는 경우는 항상 JP6을 오픈으로 설정해 주십시오.
hermit> setenv console=tty1
hermit> setenv console=tty1 video=mxcfb:CRT-VGA,16bpp,enable
27
8.2.2. SVGA에 설정하기
점퍼에 의하여 기동모드를 보수모드로 설정하여 재기동합니다. 그림 8-3와 같이 커맨드를 실행합니다.
그림8-3 해상도 지정방법(SVGA)
설정 후 통상시와 같이 Linux를 기동하면 해상도가 변경되어 비디오에 출력됩니다.
9.그 외 디바이스
9.1. LED
9.1.1. ledct기에 의한 제어
ledctrl에서는 보드상 D1~D5까지 LED를 제어할 수 있습니다. Ledct기은 그림 9-1와 같이
사용합니다.
그림 9-1 ledctrl 커맨드예
LED ID에는 제어대상 LED ID를 지정1합니다. 대응하는 ID는 표 9-1와 같습니다.
표 9-1 ledctrl:LED ID
LED ID 디바이스 색 디폴트소프트웨어에서의 사용상황
led1 D1 녹색 사용 안 함
led2 D2 녹색 사용 안 함
led3 D3 녹색 사용 안 함
led4 D4 녹색 사용 안 함
led5 D5 빨간색 소프트웨어 기동 Status를 표시합니다.
all D1~D5 ― ―
1 LED를 복수 지정하는 경우에는 LED ID를 ‘ ,’ 로 나누어서 지정해 주십시오.
hermit> setenv console=tty1 video=mxcfb:CRT-SVGA,16bpp,enable
[armadillo500 ~]# ledctrl led1 on
LED ID 제어ID
28
제어ID에는 제어대상 LED에 대하여 제어방법을 지정합니다. 제어ID는 표 9-2와 같습니다.
표 9-2 ledctrl:제어ID
제어ID 동작
on LED를 점등시킵니다.
off LED를 소등시킵니다.
blink_on [interval_ms]
LED 점멸을 개시합니다. 점멸간격은 interval_ms로 지정합니다.
디폴트에서는 200ms 점멸각격이 됩니다. 또한 점멸을 개시하기 전
상태를 저장하여 blink_off 시에 상태를 되돌릴 수 있습니다.
blink_off LED 점멸을 종료합니다.
status
현재 상태를 표시합니다. 표시할 항목은 brightness, delay_o
n、delay_off 로 됩니다.
9.1.2. ledctrl 사용 예
● 점등시킴
그림 9-2 ledctrl 사용 예1
● 소등시킴
그림 9-3 ledctrl 사용 예2
● 점멸을 개시시킴
그림 9-4 ledctrl 사용 예3
● 점멸을 종료시킴
그림 9-5 ledctrl 사용 예4
[armadillo500 ~]# ledctrl all on
[armadillo500 ~]# ledctrl led1,led2 off
[armadillo500 ~]# ledctrl led3 blink on 500
[armadillo500 ~]# ledctrl led3 blink off
29
9.2. 탁트스위치
9.2.1. Swmgr에 의한 이벤트 취득
swmgr에서는 보드상 SW1 및 SW2 押下(Key Press??) 이벤트1를 취득하여 지정하는 동작을 실행할 수
있습니다.
Swmgr는 그림 9-6와 같이 사용합니다.
그림 9-6 swmgr커맨드 예
SW ID에는 이벤트를 취득하고자 하는 SW ID를 지정합니다. 대응하는 ID는 표 9-3과 같습니다.
표 9-3 swmgr:SW ID
SW ID 디바이스
sw1 SW1
sw2 SW2
LOOP에는 이벤트를 가진 횟수를 지정합니다. 0을 지정하면 무제한이 됩니다. COMMAND에는
이벤트가 발생할 때 실행하는 동작을 기술합니다.
9.2.2. swmgr 사용 예
SW1를 눌렀을 때 시각을 표시한다
그림 9-7 swmgr사용 예1
SW1를 눌렀을 때 D5를 점등, SW2를 눌러쓸 때는 D5를 소등한다.
그림 9-8 swmgr사용 예2
1 SW를 누르고 손을 뗐을 때 이벤트가 발생합니다.
[armadillo500 ~]# swmgr sw1 1 date
SW ID LOOP COMMAND
[armadillo500 ~]# swmgr sw1 1 date
[armadillo500 ~]# swmgr sw1 0 ledctrl led5 on &
[armadillo500 ~]# swmgr sw2 0 ledctrl led5 off &
※종료하는 경우에는 다음 커맨드를 실행합니다.
[armadillo500 ~]# killall swmgr
30
9.3. GPIO
개발보드 GPIO(CON16)는 /sys/devices/platform/armadillo5x0_gpio.0/ports 밑에 있는 파일을 읽고
씀으로써 간의적으로 제어할 수 있습니다.
제어할 수 있는 항목은 표 9-4와 같습니다.
표 9-4 GPIO파일노드
파일명 설명
gpio*_dir
GPIO Direction을 변경할 수 있습니다. 0으로 하면 INPUT로, 1로 하면
OUTPUT이 됩니다, 그 외는 미 정의가 됩니다. 읽어낸 경우에는 현재 상태를
취득할 수 있습니다.
gpio*_data
Direction이 INPUT일 경우에는 GPIO 현재 입력레벨을 읽어낼 수 있습니다. 쓴
것은 무시됩니다. Direction이 OUTPUT일 경우에는 GPIO 출력레벨을 설정할 수
있습니다. 읽어낸 경우에는 현재 출력레벨을 취득할 수 있습니다. 읽고 쓰는
값은 0으로 LOW레벨을 나타내며 1로 HIGH레벨을 나타냅니다. 그외는 미
정의로 됩니다.
9.3.1. Direction을 INPUT으로 하기
GPIO0(CON16 2 pin)을 입력으로 할 경우에는 그림 9-9와 같이 커맨드를 실행합니다.
그림 9-9 GPIO:Direction을 INPUT로 하기
현재 GPIO0 입력상태를 취득하기 위해서는 그림 9-10와 같이 커맨드를 실행합니다.
그림 9-10 GPIO:INPUT시 입력상태를 취득하기
9.3.2. Direction을 OUTPUT으로 하기
GPIO0(CON16 2pin)을 출력으로 할 경우에는 그림 9-11와 같이 커맨드를 실행합니다.
그림 9-11 Direction을 OUTPUT으로 하기
HIGH레벨을 출력하기 위해서는 그림 9-12와 같이 커맨드를 실행합니다.
그림 9-12 OUTPUT시 출력상태를 변경하기
[armadillo500 ~]# echo 0 > ¥
/sys/devices/platform/armadillo5x0_gpio.0/ports/gpio0_dir
[armadillo500 ~]# cat ¥
/sys/devices/platform/armadillo5x0_gpio.0/ports/gpio0_data0
[armadillo500 ~]# echo 1 > ¥
/sys/devices/platform/armadillo5x0_gpio.0/ports/gpio0_dir
[armadillo500 ~]# echo 1 > ¥
/sys/devices/platform/armadillo5x0_gpio.0/ports/gpio0_data
31
개정이력
Version 년월일 개정내용
1.0.0 2007.7.27 ・ 초판 발행
1.0.1 2007.9.14 ・ “ 1.6.1 보증범위” 제품 보증 방법을 수정
■ 궁금하신 것이 있으면...
Armadillo 개발자 사이트에서는 본서에 기재되어 있지 않은 정보나 최신 기술 정보, FAQ 등 수시로
업데이트됩니다. 궁금한 부분이 있으면 Armadillo 개발자 사이트에 접속해 주십시오.
■ 개발에 대한 질문은...
이런 것을 하고 싶지만 실적을 알고 싶다. 등 기술적인 질문이 있으신 분들은 Armadillo
메일링리스트를 이용해 주십시오. Armadillo 메일링리스트는 많은 분들이 구독하고 계십니다. 혹시
맴버 중에 해결방법을 가르쳐 주는 분이 계실지도 모릅니다.
060-0035 札幌市中央区北5条東2丁目 AFTビル6FTEL:011-207-6550 FAX:011-207-6570