Transcript Document
개발환경 구성
7/23
시리얼포트설정
시스템종료
임베디드 운영체제
1
시리얼포트설정
Edit Virtual machine settings 선택
임베디드 운영체제
2
시리얼포트설정
시리얼포트추가
임베디드 운영체제
3
시리얼포트설정
호스트 리눅스에서 시리얼 포트 번호 확인
#dmesg | grep tty
게스트리눅스 에서 시리얼 포트 번호 설정
Auto detect 부분에 호스트 리눅스에서 확인한
시리얼포트번호를 적음. Ex) /dev/ttyS0 또는 /dev/ttyS1
임베디드 운영체제
4
Minicom
미니컴 설치
# apt-get install minicom
미니컴 설정
# minicom -s
5
임베디드 운영체제
5
Minicom 설치
Enter를 눌러 상위 메뉴로 이동
기본 설정값으로 저장
기본 설정값으로 저장후
다시 실행할 때는
minicom만 입력하면
현재 설정을 적용한
터미널이 실행됨
임베디드 운영체제
6
Minicom 설치
minicom 동작확인
호스트 PC와 임베디드 보드를 시리얼 케이블로 연결한 다음
전원을 인가하면, 임베디드 보드에서 메시지가 출력되는 것을
확인할 수 있음.
임베디드 운영체제
7
툴체인 설치
쉘 변경 : Configuring dash 에서 No를 선택
# dpkg-reconfigure -plow dash
임베디드 운영체제
8
툴체인 설치
툴체인 설치
# mkdir /root/temp (root 사용자 홈디렉터리인 /root에 temp 디렉터리가 없다면 생성한다.)
# cp -a /media/(Achro Disc)/toolchain/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz /root/temp/
# sync
임베디드 운영체제
9
툴체인 설치
크로스 컴파일러 패스 설정
# vim /root/.bashrc
임베디드 운영체제
10
툴체인 설치
크로스 컴파일러 패스 적용
# source /root/.bashrc
크로스 컴파일러 버전 출력
# cd /root
# arm-none-linux-gnueabi-gcc --v
임베디드 운영체제
11
툴체인 설치
컴파일 테스트를 위한 테스트코드 작성
# vim helloworld.c
소스코드 내용 입력
#include <stdio.h>
int main(int argc, char** argv)
{
printf("Hello World!\n");
return 0;
}
임베디드 운영체제
12
툴체인 설치
소스코드 컴파일
# arm-none-linux-gnueabi-gcc -o helloworld helloworld.c
컴파일 된 바이너리 확인
# file ./helloworld
임베디드 운영체제
13
다운로드 툴 설치
USB 라이브러리 설치
# apt-get install libusb-dev
임베디드 운영체제
14
다운로드 툴 설치
smdk-usbdl 복사
Bootloader나 Kernel image를 Target Board의 메모리 영역으로
전송하기 위해 사용
임베디드 운영체제
15
microSD 초기화
SD 카드 초기화
부트로더, 운영체제가 SD카드에 위치
새로 구입 또는 처음부터 새로 기록할려면 초기화 필요
연결확인
카드리더에 연결한 후 호스트 리눅스에 장착
dmesg 명령어를 이용하여 디바이스 이름을 알아낸다.
예에서는 /sdb
임베디드 운영체제
16
microSD 초기화
메모리의 모든 값을 0으로 만듦
# cd /root/images
# dd if=/dev/zero of=/dev/sdb bs=64K
dd: `/dev/sdd' 쓰는 중 : No space left on device
30177+0 레코드 들어옴
30176+0 레코드 나감
1977614336 바이트 (2.0 GB) 복사됨, 683.012 초, 2.0 M/B/초
root@largest-desktop:~/images#
임베디드 운영체제
17
microSD 초기화
파티션설정
RAW 영역 : MBR, 부트로더 및 커널이 기록되는 영역 (0~8)
첫번째 파티션 : Achro4210_System (9 ~ 146)
두번째 파티션 : Achro4210_Data (147 ~ End of Cylinder)
# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p ...①
Disk /dev/sdd: 1977 MB, 1977614336 bytes
61 heads, 62 sectors/track, 1021 cylinders
Units = cylinders of 3782 * 512 = 1936384 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x49791684
Device Boot Start End Blocks Id System
임베디드 운영체제
18
microSD 초기화
Command (m for help): n ...②
Command action
e extended
p primary partition (1-4) ...③
p
Partition number (1-4): 1 ...④
First cylinder (1-1021, default 1): 9 ...⑤
Last cylinder, +cylinders or +size{K,M,G} (10-1021, default 1021): 146 ...⑥
Command (m for help): n ...⑦
Command action
e extended
p primary partition (1-4)
P ...⑧
Partition number (1-4): 2 ... ⑨
First cylinder (1-1021, default 1): 147 ...⑩
Last cylinder, +cylinders or +size{K,M,G} (147-1017, default 1017): 1017 ... ⑪
Command (m for help): w ... ⑫
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
임베디드 운영체제
19
microSD 초기화
시스템영역 파티션 초기화
임베디드 운영체제
20
microSD 초기화
데이터영역 파티션초기화
# mkfs.ext3 -L Achro4210_Data /dev/sdb2
임베디드 운영체제
21