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