포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 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 입력 드라이버와 앱 만들기
정말 손이 많이 간 자료네요.
좋은 자료 공유해주시니 고맙습니다. ㅎㅎ
4월말 추가 자료가 벌써 기대되네요. :)