포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

다운로드 <== 기초

다운로드 <== 중급



0.   시작하기에 앞서
1.   기초 과정: 안드로이드 플랫폼을 빌드하고 수정하는 방법
2.   중급 과정: 안드로이드 기반의 임베디드 시스템 구성 및 API활용
3.   하드웨어 확장 및 활용
4.   부록 Google Open Accessory Library


1.   기초 과정: 안드로이드 플랫폼을 빌드하고 수정하는 방법

EXYNOS-4210 듀얼코어 프로세서에 포팅된 안드로이드 4.0.x ICS 플랫폼을 빌드하고 수정하는 방법을 정리해 보았습니다. ODROID-A4를 중심으로 집필되어 있지만, 다른 EXYNOS-4210 기반의 보드에서도 대부분 적용이 가능합니다.

아래에 목차가 있으니 한번 꼭 보시고, 필요하다고 생각되면 바로 다운로드 하세요. ^.^


ODROID-A4 SYSTEM 구성 및 Android Booting Process
     - ODROID-A4 SYSTEM 구성
     - ODROID-A4 Android boot process from power on
     - ODROID-A4 Bootloader loading process
     - ODROID-A4 Kernel/Ramdisk/Android loading process

ODROID-A4 안드로이드 시스템 개발환경 구축
    - 안드로이드 Build를 위한 시스템 사양
     - Windows7 64-bit BIOS 설정변경
     - Oracle VM Virtual Box
     - Installing Ubuntu With VirtualBox
     - Installing Ubuntu
     - 안드로이드 시스템 build를 위한 추가 프로그램 설치
     - Cross compile 환경설정
     - ODROID와 USB 통신설정
     - VirtualBox 사용 팁

Android SDK 설치하기
     - Ubuntu에서 Eclipse 설치하기
     - Android SDK설치하기
     - Android SDK  path 환경변수 설정
     - Android SDK 정의
     - Sample app

Compile ODROID-A4 U-boot and install
    - ODROID-A4 U-Boot Source 준비하기
     - U-Boot Build
     - Boot Device Partition의 구조
     - U-Boot BL1 구조
     - U-Boot BL1 생성
     - U-Boot Fusing
     - Debugging 환경 설정
     - U-Boot 실행
     - Lab/Exam : U-Boot를 수정하여 Power LED On/OFF 하기

Compile Kernel and install
    - ODROID-A4 Kernel Source 준비하기
     - Kernel Compile
     - Kernel Fusing
     - Lab/Exam : Keypad 드라이버에 sysfs node를 추가하여 LED On/OFF 제어 하기

Build Android and install
    - ODROID-A4 Android Source 준비하기
     - 소스에 포함되지 않은 파일 ODROID에서 추출하기
     - Android Build
     - Install
     - Lab/Exam : ICS screenshot 기능이 가능하도록 플랫폼 수정해 보기

Install NDK and make a simple app
     - Download Android NDK
     - Installing Android NDK
     - Features of Android NDK
     - Lab/Exam(I) - Simple app (Fibonacci)
     - Lab/Exam(II) - Jni2LED

루팅의 활용과 방법, 구글 모바일 서비스 테스트
     - 파일 권한(Permission) 과 UID/GID
     - 정상적인 시스템 파일/장치의 퍼미션 수정
     - SuperUser.apk, su, Busybox설치
     - 어플리케이션 소프트웨어의 시스템 영역 접근 허락 과정 확인
     - 구글 모바일 서비스의 구성 및 라이선스
     - 플랫폼 개발을 목적으로 설치해보는 구글 모바일 서비스
     - 구글 모바일 서비스 동작 확인
     - Lab/Exam : 단원 요약 및 과제




추가로 다음과 같은 중급/응용 실습도 준비하고 있습니다. 4월 말에는 공개 가능합니다.

중급 과정은 다음과 같은 내용으로 구성되었습니다.


2.   중급 과정: 안드로이드 기반의 임베디드 시스템 구성 및  API 활용

Architecture of Exynos4210 CPU, RAM and Flash storage
     - Exynos4210 Architecture
     - Exynos4210 Memory Map
     - ODROID-A4 메모리 구성
     - ODROID-A4 Low level init Code
     - ODROID-A4 boot device(T-flash) 초기화
     - DVFS, CPU-Hotplug 드라이버
     - ODROID-A4 CPU Max freq. 조정
     - Lab/Exam : T-Flash 파티션 조정(u-boot) / CPU0/CPU1 Clock의 임의 제어 (Kernel) / CPU1 On/Off

LCD/backlight driver
     - 안드로이드 framework 개요
     - Exynos4210 디스플레이 서브시스템
     - ODROID-A4 디스플레이 구성
     - ODROID-A4 LCD(LMS397KF04) Spec.
     - LCD 드라이버
     - PWM Backlight 드라이버
     - Lab/Exam : Kernel Splash Screen 변경하기(RGB display, Linux LOGO) / Backlight 제어 API

Keypad 드라이버의 구조
     - Keypad Data Flow
     - Keypad Hardware Interface
     - Keypad 드라이버 구조
     - Keypad driver probe
     - Keypad data report
     - Keypad driver remove
     - Reference
     - Lab/Exam : Keypad 드라이버를 Interrupt 방식으로 변환 하기

Touchscreen 드라이버의 구조
     - Touchscreen Data Flow
     - Touchscreen Hardware Interface
     - Touchscreen Controller I2C Specification
     - Touchscreen Controller Register
     - Touchscreen Controller Running Process
     - Touchscreen 드라이버 구조
     - Touchscreen Platform data 설정
     - Touchscreen driver probe
     - Touchscreen data report
     - Touchscreen driver remove
     - Reference
     - Lab/Exam : Touchscreen 드라이버를 Timer Interrupt 방식으로 변환 하기

Audio input/output driver
     - 안드로이드 사운드 구조
     - ALSA 드라이버 구조
     - ODROID-A4 오디오 입출력 구성
     - Exynos4210 I2S Bus Interface
     - MAX98089 오디오 Codec
     - ODROID-A4 ALSA soundcard 드라이버
     - Exynos4210 DMA 드라이버
     - Exynos4210 I2S 드라이버
     - MAX98089 Codec 드라이버
     - ODROID-A4 Headset Detect 드라이버
     - Android Audio In/Out summary
     - Lab/Exam : Google voice recognition API app and Text-To-Speech

Camera driver
     - CMOS Image Sensor Block Diagram
     - Camera Interface for Exynos4210
     - Device Driver – CIS(CMOS Image Sensor)
     - Device Driver – FIMC
     - Device Driver – FIMC Block Diagram
     - Device Driver - V4L2 Interface
     - Device Driver – ODROID-A4 Platform
     - Android Camera Framework
     - Proprietary Video Libraries
     - Lab/Exam(I) Camera preview
     - Lab/Exam(II) Barcode reader 예제

센서 디바이스 드라이버의 구조
     - Sensor Data Flow
     - Sensor Hardware Interface
     - Sensor 드라이버 구조
     - Sensor Platform data 설정
     - Light Sensor(BH1780) Register
     - Light Sensor driver probe
     - Light Sensor driver data report
     - Light Sensor driver remove
     - Reference
     - Lab/Exam : Accelerometer, Geo-magnetic field sensor, Gyroscope API and app

Battery gauge and charger drivers
     - ODROID-A4 Battery-Gauge, Charger 구성
     - Max17040 Fuel-Gauge, MAX8677 Charger
     - MAX17040_battery driver
     - MAX8677a_charger driver
     - Fuel-Gauge / Charger driver
     - Lab/Exam : Battery Monitor

WiFi device driver and HAL
     - Wifi BCM4329 Block Diagram
     - Wifi Turn-on sequence
     - BCM4329 Power on
     - Insmod BCM4329 Module
     - Wifi Connection Process
     - Wifi Connection Block Diagram
     - Communication between Android and Kernel
     - Lab/Exam : WiFi AP Scan / WiFi API

Bluetooth device driver and HAL
     - BCM4329 Bluetooth Block Diagram
     - BCM4329 Bluetooth Turn-on sequence
     - Bluetooth Connection Process
     - Lab/Exam : Bluetooth Control API




다음 하드웨어 확장/활용 과정은 4월 말 공개 예정입니다.

 

3.  실전 응용: 하드웨어 확장 및 활용
- Exynos-4210 및 ODROID-A4의 범용 입출력 장치의 종류 및 구성 (데이터시트 설명: UART, GPIO, I2C, ADC, PWM, ...)
- Exynos-4210의 GPIO 입력 및 인터럽트 (버튼 스위치를 이용한 입력 드라이버 및 App 만들기)
- Exynos-4210의 ADC 입력 드라이버 및 JNI 만들기 (Digital Storage Oscilloscope 앱 및 볼륨 반응 앱)
- Exynos-4210의 UART(비동기통신)를 이용하여 GPS기능 추가 및 Google Map API 연동
- Exynos-4210의 I2C를 이용하여 기압/온도 센서 연결 및 고도 측정 앱 만들기
- Exynos-4210의 I2C를 이용한 GPIO 확장 및 이를 이용한 3색 LED를 제어 및 Key 입력 드라이버와 앱 만들기


chlrbgh0

2012.04.11 03:59:30
*.200.239.234

정말 손이 많이 간 자료네요.

좋은 자료 공유해주시니 고맙습니다. ㅎㅎ

4월말 추가 자료가 벌써 기대되네요. :)

이제현

2012.04.12 18:48:58
*.90.137.102

응원해주셔서 감사합니다.

추가 자료 열심히 준비하고 있습니다. :)

김장균

2012.04.11 05:05:35
*.234.199.238

고현철 유형목님의 '안드로이드 모든것'이후에 새로운 필독서가 나왔네요. 선거일찍하고 이 문서를 보겠습니다. 4월말 추가 자료 기다려 집니다. 수고많으셨습니다. 복받으실겁니다. ㅎㅎ

이제현

2012.04.12 18:50:26
*.90.137.102

이 자료를 잘 봐두시면, 4월 말 추가자료로 공부할때 소쉽게 공부할 수 있을겁니다.

고맙습니다.

고도리

2012.04.11 08:00:28
*.200.239.234

와오....좋은 자료 공유 감사드립니다. 제 책이야 머........ㅎ

이제현

2012.04.12 18:55:58
*.90.137.102

고현철님/유형목님이 쓴 책은 교과서죠...  저희는 참고서 정도고요.. ㅎㅎ

고등어

2012.04.11 08:13:38
*.123.98.155

수고가 많으십니다.

이번에도 그 여자분이 작성하셨나요? ^^

몇군데 사소한 부분 빼고는 시작하는 참고서로 좋겠습니다.

좋은 자료 공유 감사합니다.


이제현

2012.04.12 18:59:07
*.90.137.102

응원 감사합니다.

개발자들이 직접 작성하였으나, 최종 감수는 그 여자분(?)이 하였습니다. ㅎ

사소한 부분도 알려주시면 수정/보완 하도록 하겠습니다.


danime

2012.04.11 09:17:30
*.200.239.234

^^ 저는 안드로이드 초보인데, 이런 자료를 만들어 주셔서 감사합니다. 생전 첨보는 단어들도 많아서 어려운데 참고가 될 것 같습니다.

이제현

2012.04.12 19:02:58
*.90.137.102

초보 분들을 위해 30여개 정도의 주요 용어를 맨 앞에 설명해 두었습니다.

편하게 두어번 읽어보고 따라하시면 안드로이 플랫폼 개발을 시작해 볼 수 있지 않을까요?

훌러덩

2012.04.12 00:28:02
*.176.119.78

좋은 자료네요. 감사합니다.

이제현

2012.04.12 19:04:41
*.90.137.102

많이들 봐주시면 이런 자료를 계속 만들어 배포할 수 있을것 같네요.

댓글 고맙습니다.

김장균

2012.04.17 10:07:08
*.234.216.99

중급자료 완존 대박입니다. 드라이버에서 앱까지 가려웠던 부분이 시원하게 해결되었습니다. 고맙고 감사합니다.

고도리

2012.04.17 11:55:00
*.127.19.87

중급자료까지 나왔네요.....^^, 자료 감사합니다.

많은 도움이 될 듯 합니다.

김상범

2012.04.17 18:25:47
*.254.165.247

좋은 자료 감사드립니다. 감사히 잘 보겠습니다.

김장균

2012.04.17 20:45:54
*.234.216.99

자료 몇번 읽어 보았는데 자유게시판에만 있기에는 너무 아깝다는 생각이 듭니다. 이런 자료는 공지에 올려서 많은 개발자들이 함께 공부할수 있으면 좋을 것 같네요.

관리자

2012.04.18 02:04:49
*.200.239.234

category에 알맞게 Android frameworks 부분으로 옮겼습니다.

참고하시기 바랍니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
84 [android] mouse right button을 back key 처럼 동작시키는 방법 [1] 고도리 2017-05-28 257
83 [android] hello android application 작성법 관리자 2013-12-11 2437
82 DRM(Digital Rights Management) on Android file [1] 고도리 2012-07-06 5440
81 [자료] Android build system(안드로이드 빌드 시스템) for ICS file [7] 고도리 2012-04-16 7455
» [추가 업데이트]안드로이드 플랫폼 공부를 시작할 수 있는 실습형 ... [17] 이제현 2012-04-11 8941
79 [펌] Android Device driver 정리 - 슬로우부트님 자료 file [3] 고도리 2011-12-01 8727
78 [펌] Android Device Driver 정리 문서 및 Stagefright 개념 ... file [5] 고도리 2011-11-22 9088
77 odroid7에서 KGDB를 이용한 커널 디버깅 방법 [6] 경주현 2011-10-06 7466
76 android boot시 shell script 실행시키기(혹은 binary) [1] 고도리 2011-09-30 7745
75 Android 2.3 멀티미디어(Multimedia) framework 구조자료 file [12] 고도리 2011-09-14 9530
74 Android Gingerbread Multimedia Framework 분석 - 1 file [7] 고도리 2011-08-08 10514
73 [안드로이드 책] Input관련 간단자료 및 PhoneWindowManager 연동 file [2] 고도리 2011-08-02 51764
72 [안드로이드 포팅 책] 1쇄 binder관련 그림 교체와 수정사항 file 고도리 2011-07-23 12773
71 [안드로이드 분석및포팅 교안] 1장 안드로이드 개요 및 구조 file [2] 고도리 2011-07-19 9492
70 [Android 분석 및 포팅] Binder의 동작원리 - #2 IPC/RPC file 고도리 2011-06-30 40882
69 [Android 분석 및 포팅] Binder의 동작원리 - #1 servicemanage... file [7] 고도리 2011-06-30 12007
68 Android 2.3 GingerBread Multimedia Framework 분석 - 1 [26] 고도리 2011-05-23 55390
67 [안드로이드] screen power save로 들어가는거 막는 부분 [2] 고도리 2010-10-28 12240
66 CodeViser 활용 aESOP-C100 보드 Android 디버깅 가이드 file pottery 2010-09-16 12840
65 Android 2.1 source tree 설명 file [20] 고도리 2010-09-02 15901

사용자 로그인