1 / 46

J2ME 의 이해

J2ME 의 이해. MIDlet (1/13). 개념 정의 무선상에서 배포되고 MIDP 호환 장비에서 실행되는 애플리케이션 MID(Mobile Information Device) 와 Applet 의 합성어 JAR 파일의 형태로 배포. MIDlet (2/13). MIDlet 을 위한 구성 요소 JAM(Java Application Manager) 미들릿 ( MIDlet ) 을 설치 , 실행 , 제거하는 기능을 수행하기 위해 만들어진 일종의 관리 소프트웨어 미들릿 ( MIDlet ) Suite

mareo
Download Presentation

J2ME 의 이해

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. J2ME의 이해

  2. MIDlet (1/13) • 개념 정의 • 무선상에서 배포되고 MIDP호환 장비에서 실행되는 애플리케이션 • MID(Mobile Information Device)와 Applet의 합성어 • JAR 파일의 형태로 배포

  3. MIDlet (2/13) • MIDlet을 위한 구성 요소 • JAM(Java Application Manager) • 미들릿(MIDlet)을 설치, 실행, 제거하는 기능을 수행하기 위해 만들어진 일종의 관리 소프트웨어 • 미들릿(MIDlet) Suite • 미들릿 어플리케이션의 모든 클래스 파일들을 JAR로 패키지화 • JAR파일은 하나 이상의 미들릿 어플리케이션을 포함 • 아이콘이나 이미지등과 같은 MIDlet이 사용하는 리소스 파일들을 포함

  4. MIDlet (3/13) • Manifest • JAR파일의 내용, 이름, 버전, 벤더 등의 정보를 포함 • 미들릿 Suite의 JAR파일 내에 포함 • JAD • JAM에 JAR파일의 사전 정보를 제공 • J2SE기반의 JAR파일과 MIDP슈트를 포함한 JAR파일을 구분 • JAR파일을 다운 받기 전 JAD파일을 우선 다운 받아 검사

  5. MIDlet (4/13) • MIDlet 라이프 사이클

  6. MIDlet (5/13) • 프로그래밍 • jdk1.4 혹은 jdk1.3 설치 • Midp-fcs 1.0.3 설치 • 프로그램 작성 • 컴파일 • 사전 검증 • JAD(Java Application Descriptor)파일 생성 • JAR파일 생성 • 서버의 mime.type설정 • 테스트 및 웹 사이트를 통한 배포

  7. MIDlet (6/13) • MIDP설치 및 환경 설정 • 썬마이크로스시템즈의 MIDP참조 구현 다운로드 http://java.sun.com/products/midp • 압축을 풀어 환경 변수 추가 • Preverify.exe와 midp.exe(에뮬레이터)가 위치한 디렉토리를 환경변수에 추가 • Ex) C:\j2me\midp\bin\ • 컴파일 및 사전 검증에 필요한 클래스 파일들이 포함된 경로를 환경변수에 추가 • Ex) C:\j2me\midp\classes

  8. MIDlet (7/13) • 코딩 • 컴파일 및 사전 검증 • javac -d .\ -bootclasspath c:\j2me\midp\classes HelloMIDlet.java9 • preverify -classpath c:\j2me\midp\classes HelloMIDlet • 테스트 및 실행 • 패키징 및 JAD파일 작성 • cd output • jar cf ..\HelloMIDlet.jar *.class • cd .. • edit HelloMIDlet.jad • 테스트 및 Web/WAP사이트를 통한 배포 • midp -classpath HelloMIDlet.jar -descriptor HelloMIDlet.jad

  9. MIDlet (8/13) • HelloMIDlet.java import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloMIDlet extends MIDlet implements CommandListener { private Command exitCommand; // The exit command private Display display; // The display for this MIDlet public HelloMIDlet() { display = Display.getDisplay(this); exitCommand = new Command("Exit", Command.EXIT, 1); } public void startApp() { TextBox t = new TextBox("HelloMIDlet", "Test string", 256, 0);

  10. MIDlet (9/13) • HelloMIDlet.java (계속) t.addCommand(exitCommand); t.setCommandListener(this); display.setCurrent(t); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } } }

  11. MIDlet (10/13) • HelloMIDlet.jad • MIDlet-Name: HelloWorld • MIDlet-Version: 1.0.3 • MIDlet-Vendor: Sun Microsystems, Inc. • MIDlet-Description: Sample Hello World MIDlet • MIDlet-Info-URL: http://java.sun.com/j2me/ • MIDlet-Jar-URL: http://127.0.0.1/hello.jar • MIDlet-Jar-Size: 1020 • MicroEdition-Profile: MIDP-1.0 • MicroEdition-Configuration: CLDC-1.0 • MIDlet-1: HelloWorld,, HelloMIDlet

  12. MIDlet (11/13) • MIDP환경에서 컴파일과 실행

  13. MIDlet (12/13) • J2ME Wireless Toolkit • MIDP애플리케이션 개발을 위한 통합 개발 환경 • 개발 과정 단순화 및 JAD파일 자동 생성 프로젝트 생성 Jad파일 생성 메뉴

  14. MIDlet (13/13) • Demo Project빌드 및 실행

  15. 미들웨어 포팅 실습환경 구축

  16. 임베디드 시스템 개발 하드웨어 OS개발 또는 포팅 디바이스 드라이버 응용 프로그램 개발 임베디드 시스템 개발 구조 • 임베디드 시스템의 개발은 크게 3가지의 독립된 분야가 유기적으로 결합되어 있다

  17. HOST TARGET GUI Development Tools Target Server Debug Agent Embeded Application Library Sub-system Core OS Simulation Environment Kernel 임베디드 소프트웨어 개발 환경 • 일반적인 임베디드 소프트웨어 개발 환경 구성

  18. 호스트 컴퓨터의 기본 소프트웨어 • 터미널 프로그램 • 타켓 보드에서 일어나는 진행 상황을 호스트 컴퓨터에서 볼 수있게 모니터링 할 수 있는 통신 프로그램 • bootp, tftp, nfs 프로그램 • 호스트 컴퓨터와 타켓 보드 사이의 통신을 원할 하게 해주는 응용프로그램 • Jtag 프로그램 • 호스트 컴퓨터에서 타켓 보드의 flash ROM에 직접 프로그램을다운 로딩하는 프로그램 • 크로스 컴파일러 툴 체인 • 호스트 컴퓨터와 타켓 보드에서 사용하는 프로세서가 다를 때 타켓 보드에서 실행될 수 있도록 프로그램을 컴파일 하는 툴 체인

  19. EMPOS-II 개발 환경 설치 • minicom • bootp • tftp • nfs • 크로스컴파일러

  20. minicom • 타켓 보드에서 일어나는 진행 상황을 호스트 PC에서 모니터링 할 수 있는 리눅스 기반의 소프트웨어 • 환경 설정 • minicom –s

  21. bootp (1/2) • 타켓 보드에서 사용할 IP 주소를 유동적으로 할당 • 환경 설정 • /etc/bootptab • /etc/hosts

  22. bootp (2/2) • 환경 설정 • /etc/xinetd.d/bootp

  23. tftp • 부트로더에서 용량이 큰 데이터를 다운 받기 위해 사용되는 UDP • 환경 설정 • /etc/xinetd.d/tftp

  24. nfs • 리눅스 간 파일을 공유할 수 있는 파일 시스템으로, 호스트 컴퓨터에서 작업한 내용이 곧 바로 타겟 보드에서 실행 가능 • 환경 설정 • /etc/exports • 타켓 보드에서 파일 공유

  25. 크로스 컴파일러 • 호스트 컴퓨터와 타겟 보드에서 사용하는 프로세서가 다를 때 타겟 보드에 실행될 수 있도록 작업한 프로그램을 컴파일 해 주는 프로그램 • 환경 설정 • tar xvfz cross-tools.tgz • /.profile ( 혹은 ~/.bash_profile )

  26. 타켓 보드의 기본 소프트웨어 • 부트로더 • 타켓 보드 부팅 시 하드웨어를 초기화하고, 커널을 램에 올린 후 실행권한을 커널로 전달하는 프로그램 • 리눅스 커널 • 타켓보드의 시스템 구동에 필요한 환경을 만들고, 타켓 보드에서 실행되는 프로그램을 관리하는 소프트웨어 • 파일 시스템 • 디스크의 섹터와 트랙, 실린더 등을 논리적으로 사용하기 위하여 블록 단위로 읽고 쓰는 메커니즘 • 디바이스 드라이버 • 주변 하드웨어를 제어하기 위한 프로그램 • 응용 프로그램

  27. EMPOS-II 의 소프트웨어 구성 (1/2) • 부트로더 • EMPOS-BOOT v0.1 • 리눅스 커널 • kernel : linux-2.4.19 • ARM Patch : patch-2.4.19-rmk4 • Xscale Patch : diff-2.4.19-rmk4-pxa2 • 보드 Patch : diff-2.4.19-rmk4-pxa2-empx1 • 파일 시스템 • ramdisk-16m(ext2) • GUI • QT/E-2.3.2, Qtopia-1.4.0 • 개발 툴 • GNU Toolkit, Visual ESTO

  28. EMPOS-II 의 소프트웨어 구성 (2/2) • 커널 삽입 디바이스 • TFT LCD, PCMIA/CF, PS2 Keyboard, Touch Screen • AC97 Audio, IrDA, FFUART, MMC 등 • 모듈 형태 디바이스 • SMC91111 Primary/Secondary Ethernet Driver • Prism2 Wireless Driver • IDE Disk Driver • Text LCD Driver • LED, Button Driver • 7 Segment LED Driver • GPIO Input, Output Driver

  29. EMPOS-II 소프트웨어 구성 • 부트로더 • 부트로더 역할 • 부트로더 흐름도 • 부트로더 메모리 맵 선언 • 부트로더 명령어 • 부트로더 설치

  30. 부트로더 역할 • 타겟 보드 부팅 시 하드웨어를 초기화 하고, 커널을램에 올린 후 실행권한을 커널로 전달하는 프로그램 • 부트로더의 역할 • 하드웨어 초기화 • Memory Setting, CPU Clock setting, GPIO setting,Serian setting, MAC address 획득 및 Ethernet port setting • Flash 에서 RAM으로 Memory 복사 • Kernel image copy, ramdisk image copy, bootloader copy • Kernel booting • Command mode 제공 • 포팅의 편의를 위한 Debug 모드 제공

  31. 부트로더 흐름도

  32. 부트로더 메모리 맵 선언 (1/2) • 메모리 맵

  33. 부트로더 메모리 맵 선언 (2/2) • empos_boot/header/config.h

  34. 부트로더 명령어 • boot : 램 상에 존재하는 커널을 부팅한다 • reset : 롬 상에 존재하는 부트로더를 재시작 한다 • bootp : bootp를 통해 호스트로부터 IP를 할당 받는다 • setip : 호스트와 타겟 보드의 IP를 설정한다 • macwrite : Primary/Secondary Ethernet의 MAC 주소를 설정한다. • tftp: tftp를 통한 데이터를 전송 받는다. • download : 시리얼을 통한 데이터를 전송 받는다 • read : 특정 메모리 위치의 값을 읽어온다 • write : 특정 메모리 위치의 값을 변경한다 • flash : 전송 받은 데이트를 플래쉬에 저장한다 • erase : 플래쉬에 저장되어 있는 데이터를 삭제한다. • status : 메모리맵/ 레지스터/ 이더넷 설정 등을 출력한다. • help : 도움말을 출력한다. • test : 사용자 테스트 함수를 제공한다

  35. 부트로더 설치 • 압축 해제 및 컴파일 • tar xvfj empos_boot.tar.bz2 • make • 부트로더 포팅 • Jtag 을 이용한 포팅 • 부트로더에서 포팅

  36. 커널 • 커널의 역할 및 기능 • 커널의 구조 • 커널 컴파일 • 커널 포팅

  37. 커널의 역할 및 기능 • 커널의 역할 • 운영체제를 구성하고 있는 핵심(core)으로 타겟보드의 시스템 구동에 필요한 환경 설정과 수행되는 프로그램들을 스케줄링하는 소트프웨어 • 커널의 기능 • 프로세스 관리 • 메모리 관리 • 파일 시스템 관리 • 디바이스 관리 • 네트워크 관리

  38. 커널의 구조

  39. 커널 컴파일 (1/2) • 커널 소스 확보 • http://www.kernel.org/pub/linux/kernel/v2.4/ • linux-2.4.19 • ARM 패치 적용 • ftp://ftp.arm.uk.linux.org/pub/linux/arm/kernel/v2.4/ • patch-2.4.19-rm k4.gz • Xscale 패치 적용 • ftp://ftp.arm.uk.linux.org/pub/linux/arm/people/nico/v2.4/ • Diff-2.4.19-rmk4-pxa2.gz • EMPOS-II 보드 패치 적용 • Diff-2.4.19-rmk4-pxa2-empx1-20030916.gz

  40. 커널 컴파일 (2/2) • make empos_config • 컴파일 환경을 EMPOS 보드에 맞게 설정 • make oldconfig • 설정된 환경을 소스에 적용 • make dep • 파일 의존성 검사 • make clean • 이미 컴파일된 오브젝트 삭제 • make zImage • 압축된 커널 이미지 생성 • make modules • 모듈 형태로 선택된 항목 컴파일

  41. 커널 포팅 • 생성된 zImage를 tftp 서비스 디렉토리로 복사 • 부트로더에서 포팅 • 호스트 컴퓨터에서 zImage 다운 후 • flash rom으로 복사 • 재 실행

  42. 램 디스크 • 램 디스크 • 리눅스 파일 시스템 • JFFS 파일 시스템

  43. 램 디스크 • 별도의 물리적 저장 장치가 없이 메모리의 한 부분을 할당하여 컴퓨터의 하드 디스크처럼 사용 가능 • 램디스크 생성 • 램디스크 수정

  44. /root bin boot dev etc home lib mnt proc root sbin tmp usr var user1 user2 lib local sbin src include 리눅스 파일 시스템 (1/2) • 디스크의 섹터와 트랙, 실린더 등을 논리적으로 사용하기 위하여 블록 단위로 읽고 쓰는 메커니즘 • 리눅스 파일 시스템의 구조

  45. 리눅스 파일 시스템 (2/2) • / : 루트 디렉토리 • /boot : 부팅과정에 필요한 모든 구성 요소들이 포함 • /bin : 실행 파일이 포함 • /dev : 디바이스 드라이버 포함 • /etc : 리눅스 운영에 필요한 설정 파일 포함 • /home : 사용자의 홈 디렉토리 • /lib : 공유 라이브러리 모듈 저장 • /root : 시스템 관리자인 root의 홈 디렉토리 • /sbin : 시스템 관리를 위한 실행 유틸리티 저장 • /usr : 공유 가능한 대부분의 프로그램 설치

  46. JFFS 파일 시스템 • 플래쉬 메모리를 이용한 전원/파손 등에 안전한 파일 시스템 • JFFS 이미지 생성 • -o : 생성 파일 이름 • -e : flash erase 블록 사이즈 • -r : 이미지 생성을 원하는 대상 디렉토리 지정

More Related