Presentation is loading. Please wait.

Presentation is loading. Please wait.

2013 년 2 학기 임베디드 프로그래밍. 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC.

Similar presentations


Presentation on theme: "2013 년 2 학기 임베디드 프로그래밍. 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC."— Presentation transcript:

1 2013 년 2 학기 임베디드 프로그래밍

2 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC 사양  CPU : Pentium 2.4 G 이상 / AMD sempron 2400 이상  (x64 인 경우 32bit 용 배포판을 설치하여 사용한다 )  RAM : 256MB 이상  HDD : 1.5GB 이상의 여유공간  VGA : 리눅스 드라이버 호환 모델 ( ATI, Geforce, Matrox 등 )  Parallel : 1 port (xdb 사용시, *usb to parallel 사용 불가 )  Ethernet : 1 port (2 port 권장 )  Serial : 1 port (*usb to serial 사용가능 )  CD-rom : 32x 이상  즉, 요즘 컴퓨터에서는 다 돌아감

3 주의사항  리눅 설치 시 주의사항  파티션은 일반 ext3 로 포맷한 후 사용하며, 보안관련 체크를 하게 될 경우 NFS 등의 문제가 발생 할 수 있다.  xinetd, tftp, NFS, minicom 등의 패키지는 개발 시 꼭 필요하므로 최초 설치 시 같이 설치하는 것이 좋다. ( 라곤 하지만 NFS 는 없어도 되는 듯 )  주의 : VMWARE 를 이용하여 리눅스를 설치할 경우, Host PC 자원 분리로 컴파일 시간이 오래 걸리고 가상 PC 내에서 실제 디바이스 제어가 잘 안될 수 있다. ( 라곤 하지만 요즘 컴퓨터는 좋아서 괜춘 )

4 Ubuntu 에서 root 계정 사용  작업 시 root 로 로그인 하면 GUI 환경에서 작업하기 용이하고 sudo 등의 명령어를 입력할 필요가 없음  우분투에서는 보안상 이유로 인해 기본적으로 root 계정 로그인이 설정되어있지 않음  설치 시 생성하는 계정은 일부 super 유저 권한을 가진 주작업 계정이지 root 계정은 아님  터미널에서 sudo passwd root 를 입력해 root 계정의 암호를 설정한다  sudo geidt /etc/lightdm/lightdm.conf 를 입력하고 greeter-show-manual- loign=true 를 추가해 준다 이제 로그인화면에서 root 를 입력하고, 암호를 치면 root 로그인이 가능하다

5 필요프로그램 설치  minicom : apt-get install minicom  gcc : apt-get install gcc  automake : apt-get install automake  ncurses-devel : apt-get install libncurses5-dev  xinetd 설치 : apt-get install xinetd*  시작 : service xinetd start <- 이게 안되면 /etc/init.d/xinetd start <- 요거 실행  tftpd : apt-get install tftp tftpd

6 tftpd 설정  /etc/xinetd.d/tftp 파일수정 ( 없을시 생성 ) gedit /etc/xinetd.d/tftp  tftpboot 디렉토리 생성 : mkdir /tftpboot 혹시모르니 chmod 777 /tftpboot disable= no server_args= -s /tftpboot

7 tftpd 설정  xinetd 재시작 : service xinetd restart <- 이게 안되면 /etc/init.d/xinetd restart <- 요거 실행  tftp 동작 확인 : netstat -au

8 보드연결  보드 연결  X-Hyper320-TKU 의 메모리, TFT LCD 및 CPU 등의 소형 칩셋은 작은 충격에도 손상될 우려가 있기 때문에 항상 조심히 다루어야 한다.  전원이 인가 된 후에는 LCD 및 케이블 등에 항상 유의하기 바란다.

9 보드연결  Serial 연결  시리얼 케이블을 연결한다. X-Hyper320-TKU 에는 그림과 같이 시리얼 케이블로 보드의 DEBUG1 이라고 쓰여져 있는 시리얼 커넥터와 호스트 PC 의 Com 포트에 연결해주면 된다.

10 보드연결  Serial 연결  시리얼 케이블을 연결한다. X-Hyper320-TKU 에는 그림과 같이 시리얼 케이블로 보드의 DEBUG1 이라고 쓰여져 있는 시리얼 커넥터와 호스트 PC 의 Com 포트에 연결해주면 된다.

11 보드연결  Ethernet 연결  이더넷 크로스 케이블 (Ethernet cross cable) 을 연결한다. X- Hyper320-TKU 의 이더넷 포트 (Ethernet port) (LAN) 와 Host PC 의 RJ45( 이더넷 카드 ) 를 제공한 크로스 (Cross) LAN 케이블로 연결한다 (X-Hyper320-TKU 를 이더넷 허브에 직접 연결하려면 일반 Direct LAN cable 을 연결하면 된다 ).

12 시리얼 세팅  Serial setting  리눅스에서 Serial setting 을 하기 위해서 –s 옵션으로 minicom 설정창을 띄운다.

13 시리얼 셋팅  Serial setting  Minicom –S 명령을 입력하면 다음과 같은 화면을 볼 수 있다.

14 시리얼 세팅  Serial setting  “Serial port setup” 에서 Bps 38400 8N1, Hardware Flow Control : NO 로 세팅한다

15 시리얼 세팅  Serial setting  * Serial Device 에서 /dev/ttyS0 는 COM1, /dev/ttyS1 은 COM2 이다 USB to serial 을 사용할 경우 /dev/ttyUSB0 로 시작된다.  설정이 모두 끝났으면 “Save setup as dfl" 로 저장하고 종료 한 후 다시 minicom 을 실행한다.

16 Tool-Chain  크로스 컴파일러란 ?  네이티브 (native) 컴파일러 PC 라는 동일한 환경에서 프로그램을 작성한다. PC 에서 프로그램을 짜고 컴파일하고, 실행 파일을 PC 에서 수행  크로스 (cross) 컴파일러 컴파일러가 동작하는 시스템과 컴파일러에 의해서 생성된 실행 파일이 동작

17  Tool-Chain 개발에 필요한 Compiler, 각종 Debugger, library, Util 등을 모아 놓았다는 뜻이다. 가장 중요한 것은 gcc 컴파일러이다. 또한 gcc 사용하기 위해 필요한 binutils 도 포함 binutils 는 바이너리를 다루는데 사용된다. C 라이브러리를 사용하는 것을 제외한 나머지 대부분의 커널을 컴파일 Tool-Chain

18  CD 전체의 내용을 320TKU 라는 폴더를 만들어서 복사한다  본인은 /root/320TKU/ 에 복사하였다  그런데 제조사에서 CD 체크를 안해서 간혹 재수없게 내용이 잘못된 경우가 있다. 그러므로 ftp://os2.sch.ac.kr 에 있는 320TKU.zip 파일을 다운받아 쓰길 추천한다.ftp://os2.sch.ac.kr CD 복사

19  호스트 PC 리눅스를 부팅 한 후치 터미널을 열어 “/usr/local/” 폴더에 “arm-linux-4.1.1.tgz” 을 복사하고, 압축을 해제 한다. Tool-Chain 설치

20  Tool-Chain 설치  “/usr/local/arm-linux-4.1.1/bin” 폴더 내용을 확인 Tool-Chain

21  Tool-Chain 설치 및 PATH 설정 “/etc/environment” 내용을 geidt 를 이용해 조금 전 폴더의 위치인 “:/usr/local/arm-linux-4.1.1/bin/” 을 추가 Tool-Chain

22  “/etc/environment” 파일에서 PATH 를 수정한 후 수정된 내용을 “source /etc/environment” 로 적용시켜 준다 Tool-Chain 설치

23 PATH 가 적용된 것을 확인 어떤 경로에서건 해당 명령어를 실행 가능 Tool-Chain 설치

24 리눅스용 c 컴파일러 컴파일 명령어 : gcc -o gcc

25 컴파일된 프로그램의 실행 ‘.’ 으로 실행./ 실행파일경로 / 실행프로그램이름 gcc

26  컴파일을 자동화해주는 명령어 생성 프로그램  최종 목표 파일 (target file) 의 빌드 (Build) 과정을 정의해두면 필요한 작업만 수행하여 목표 파일을 생성  종속된 파일들의 상호 의존 관계를 명시한 목록 파일 (description file) 을 사용하여 목표 파일을 생성  원시 파일의 일부가 수정되면 목표 파일을 새롭게 생성하기 위해 다시 컴파일할 파일을 자동으로 판단, 필요한 명령어만 이용해 다시 컴파일하는 지능적인 유틸리티  다중 모듈 프로그램의 재사용성을 유지하고 프로그램 수정에 대한 재번역을 최소화 Make 유틸리티

27  목록 파일 – 컴파일 할 것들의 명령어 목록을 모아둠  기본적으로 Makefile 혹은 makefile 이라는 파일 이름을 사용  목표 파일, 부품 파일, 일련의 명령어로 구성  복수의 컴파일 명령어가 존재 가능 Make 유틸리티 my_hello: hello.c gcc -o hello hello.c

28 Make 유틸리티 Makefile 이라는 이름으로 저장 후 make 실행

29  Make 유틸리티의 사용 목록 파일 이름이 makefile 혹은 Makefile 라면 –f 옵션을 사용해 목록 파일임을 명시할 필요 없음  목표파일 : 목록 파일 안에 들어있는 이름들 중 하나 ( 청록색 )  hello 를 생성하기 위한 Makefile first_hello: hello_1.c gcc –o f_hello hello_1.c second_hello: hello_2.c gcc –o s_hello hello_2.c Make 유틸리티

30  부트스트랩 로더 (bootstrap loader) 의 준말로 컴퓨터를 사용자가 사용할 수 있도록 디스크나 플래시에 저장된 운영체제를 읽어 주기억장치에 적재해주는 프로그램  부트로더의 종류  LILO(LInux LOader)  GRUB(GRand Unified Boot loader)  NTLDR(NT LoaDeR)  BOOTX  ARMBOOT  BLOB(Boot Loader Object) - 우리가 쓰는것  BOOTLDR  PPCBOOT  REDBOOT  U-BOOT(Universal BOOTloader) 부트로더

31  부트스트랩 로더 (bootstrap loader) 의 준말로 컴퓨터를 사용자가 사용할 수 있도록 디스크나 플래시에 저장된 운영체제를 읽어 주기억장치에 적재해주는 프로그램  부트로더의 종류  LILO(LInux LOader)  GRUB(GRand Unified Boot loader)  NTLDR(NT LoaDeR)  BOOTX  ARMBOOT  BLOB(Boot Loader Object) - 우리가 쓰는것  BOOTLDR  PPCBOOT  REDBOOT  U-BOOT(Universal BOOTloader) 부트로더

32  부트로더를 생성하려면 툴체인이 설치되어 있어야 함  생성된 부트로더는 jflashmm 이나 이미 설치된 부트로더의 부트 명령을 이용해 타겟 시스템에 있는 플래시 메모리에 퓨징  BBOOT 소스 코드와 make 를 이용해 부트로더 이미지를 생성 부트로더

33 부트로더 빌드 (boot.bin) CD 다 복사했죠 ? 320TKU 폴더의 Kernel 폴더 안에 있는 linux.tar.gz 압축 해제, 320TKU 폴더의 Bootloader 폴더에 있는 Bootloader.tgz 압축도 해제

34 부트로더 빌드 (boot.bin) - blob 빌드 해제 후 320TKU 폴더의 Bootloader 폴더에 있는 blob 폴더로 이동 후 아래 명령 실행 export PATH=$PATH:/usr/local/arm-linux-4.1.1/bin 그다음./config.sh 라고 실행하면 좌르륵 컴파일이 진행됨 컴파일 된 결과는 어디 있냐면...

35 부트로더 빌드 (boot.bin) - blob 빌드 320TKU/Bootloader/blob/src/blob 에 blob 라는 파일이 컴파일 된 최종 결과물이다.

36 부트로더 빌드 (boot.bin) - mobm 빌드 이번에는 320TKU 폴더의 Bootloader 폴더에 있는 mobm 디렉토리로 이동 후 아래 명령 실행 export PATH=$PATH:/usr/local/arm-linux-4.1.1/bin 그다음 make 를 실행 그러면 뭐라 또 주르륵 컴파일이 됨 결과물은 어디있냐

37 부트로더 빌드 (boot.bin) - mobm 빌드 320TKU/Bootloader/mobm 폴더에 mobm 이라는 파일이 최종 컴파일 결과물

38 부트로더 빌드 (boot.bin) 이제는 blob 파일과 mobm 파일을 합쳐서 boot.bin 파일을 만들어야 할 차례  320TKU/Bootloader/image 에 있는 mk_boot.sh 를 실행하면 됨  얘가 무슨 일을 해주는건지 궁금한 사람들은 geidt 로 열어보면 대충 ‘ 두 개 파일을 복사해서 합치는거구나..’ 하고 알 수 있다

39 부트로더 퓨징 이제 위 처럼 boot.bin 파일을 만들었으니까 이걸 보드에 다운로드 해서 설치를 해야 함 혹시 전에 tftpboot 라는 폴더 만들었던거 생각나는지 ? boot.bin 파일을 그 폴더로 복사 함. 그리고 보드에 랜선, 시리얼케이블을 PC 와 연결하고 PC 터미널에서 minicom 실행한 다음에 보드 전원을 올리세요

40 부트로더 퓨징  임베디드 보드에서 (minicom 창 ) tftp boot.bin 을 실행하면 PC 로 부터 파일을 다운로드 함  nand_format 후 nand_reinit  nand_write boot.bin 을 실행하면 퓨징 완료  reboot 를 입력하여 재부팅  BLOB 모드로 부팅 가능  이후 BLOB 모드에서 커널이미지 등을 다운 후 설치할것임

41 보드는 어떻게 작동 되나 ?  dummy 라는 이미지가 있어서 이것이 부트로더 (boot.bin) 을 설치할 수 있게 해줌 부트로더가 설치되면 더미모드로는 부팅이 안됨  boot.bin 이 설치되어 있으면 blob 모드로 부팅해서 임베디드용 리눅스 이미지를 설치할 수 있게 해줌  리눅스 이미지까지 다 포팅이 되어 있으면 정상적으로 부팅 가능  실수로 부트로더를 망가뜨리면 윈도우에서 예전에 했던 작업을 해서 dummy 이미지를 설치해야함. 그 뒤 부트로더를 설치하고, 리눅스 이미지를 설치해야함.

42  ZMODEM 을 사용해 호스트 시스템과 타겟 시스템 사이의 직렬 통신이 가능  미니컴에서 ZMODEM 을 기동하여 파일 송수신 가능 ftp 를 이용하지 않고 시리얼 통신으로도 파일 전송 가능

43 a. ARM 용 실행 파일 hello-arm([ 실습 4-3] 에서 툴체인을 이용해 생성 ) 을 /embed/ex/05 디렉토리로 복사 a. 미니컴 실행 a. 타겟 시스템의 전원을 켜고 자동 부팅 b. [Ctrl] + [A] 와 [Z] 키 입력 → 미니컴 도움말 화면에서 [S] 키 입력 실습 5-1 실습 5-1 ZMODEM 을 이용한 이미지 전송 ① ② ③ ④

44 a. ARM 용 실행 파일 hello-arm([ 실습 4-3] 에서 툴체인을 이용해 생성 ) 을 /embed/ex/05 디렉토리로 복사 a. 미니컴 실행 a. 타겟 시스템의 전원을 켜고 자동 부팅 b. [Ctrl] + [A] 와 [Z] 키 입력 → 미니컴 도움말 화면에서 [S] 키 입력 실습 5-1 실습 5-1 ZMODEM 을 이용한 이미지 전송 ① ② ③ ④

45 a. ZMODEM 을 선택 후 [Enter] 키 입력 a. ARM 용 실행 파일이 있는 /embed/ex/05 디렉토리로 이동. 디렉토리 이동은 메뉴에서 [  ] 와 [  ] 키를 사용해 원하는 디렉토리로 커서를 옮긴 후 [Space] 키를 두 번 입력 실습 5-1 실습 5-1 ZMODEM 을 이용한 이미지 전송

46 전송할 파일로 이동 후 [Space] 키를 한 번 눌러 파일 선택 a. [Enter] 키를 눌러 선택한 파일 전송 a. 완료 후 아무 키나 눌러 타겟 시스템의 프롬프트가 나타나면 전송 받은 파일을 타겟 시스템에서 실행 실습 5-1 실습 5-1 ZMODEM 을 이용한 이미지 전송 ① ②

47  커널 환경 설정 유틸리티  make config  make menuconfig  make xconfig 커널 ( 리눅스이미지 ) 빌드 과정

48  커널 환경 설정 커널 빌드 과정

49  320TKU 폴더에 Kernel 폴더안에 압축을 풀었던것을 기억할것이다. Linux 폴더에 들어가보면 Makefile 이 있는데 이것을 수정해야한다. 450 번째줄에 config %config: scripts_basic outputmakefile FORCE 를 %config: scripts_basic outputmakefile FORCE 로 수정한다. 커널 빌드하기

50  make WENDERS_defconfig 를 실행하면 알아서 커널 빌드 옵션을 기본 설정으로 만들어준다  make meunconfig 를 실행하면 수동으로 하나하나 설정이 가능하다.  이후는 교재 95~122 를 진행하면 된다. 커널 빌드하기


Download ppt "2013 년 2 학기 임베디드 프로그래밍. 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC."

Similar presentations


Ads by Google