Sei sulla pagina 1di 57

Android

OMAP3530 (Chin-Feng Lai)


Assistant Professor, institute of CSIE, National Ilan University Sep 22th 2012
2012 MMN Lab. All Rights Reserved

2012

Outline
Course Overview Embedded System Introduction Multi-Core Overview Texas Instruments OMAP Hardware Development Software and Tool Embedded Development Env. Lab

Course Overview Embedded System Introduction Multi-Core Overview Texas Instruments OMAP Hardware Development Software and Tool Embedded Development Env. Lab

Course Overview
Android system and Embedded system

File System

Linux Kernel Hardware Bootloader

Course Overview
What is Embedded Android
Computing systems with tightly coupled hardware and software integration Designed to perform a dedicated function The word embedded reflects the fact that these systems are usually an integral part of a larger system, known as the embedding system Android is very well capable to be used in true embedded environments besides the obvious cell phone use case. Think about the next gen set-top box. Think home security system and appliances. Think in-car entertainment plug-ins or the next gen energy management system for your new e-car. The possibilities are endless.

Course Overview
Course Outline
Date Course OMAP3530 Bootloader and Linux Kernel

09 / 22
09 / 29 10 / 06 10 / 13

Linux Device Driver


Linux Sound Driver Architecture (OSSALSA) Linux Video Driver Architecture (FBV4L2) TI DVSDK(EPSIVISADMAI) Android (Porting) Android (Android Application) Android (Android HAL)

10 / 20

Websites
http://tidsp.es.ncku.edu.tw/cinfon/

Course Overview Embedded System Introduction Multi-Core Overview Texas Instruments OMAP Hardware Development Software and Tool Embedded Development Env. Lab

Embedded System Introduction


Classified by Architecture
MCU Micro Controller Unit (C) MPU Micro Processor Unit DSP Digital Signal Processor SoC System on Chip

Embedded System Introduction


MCU Micro Controller Unit (C)
micro computer on a single integrated circuit containing a processor, memory, and programmable peripherals Such as Intel MSC-51 . Microchip PIC

10

Embedded System Introduction


MPU Micro Processor Unit
the functions of a computer's central processing unit on a single integrated circuit

DSP Digital Signal Processor


Optimized architecture for the operational needs of digital signal processing Such as TI C66x

11

Embedded System Introduction


SoC : System on Chip
Integrating all components of a computer or electronic system into a single integrated circuit may contain digital, analog, mixed-signal, and often radiofrequency functions Such as TI OMAP . ITRI PAC Duo ..

ITRI PAC Duo

Samsung 6410L

Omap3530 Devkit8000

12

Embedded System Introduction


Classified by Software

OS
User application File system Kernel User application File system

Non-os

Firmware
Kernel

Bootloader Hardware
Personal computer

Bootloader Hardware
Embedded system

Hardware

13

Embedded System Introduction


Non Operating System - Firmware
Fixed. Embeded into hardware. Program that is stored on non-volatile memory on integrated circuits. The small, unmodifiable code and data that controls hardware devices. low-level operations. Manages computer hardware resources Provides common services for execution Interacts with the fireware or hardware Can be updated. High-level interfaces. Can be modified at any time.

Embedded operating system LinuxNucleusWinCE

14

Embedded System Introduction


Embedded operating system
Entertainment : - Win7 , Android , IoS , MeeGo , Mango. Industrial automation : - WinCE , RTOS , uC/OS-II Other : - WinXPe , TinyOS , Cisco IOS

15

Embedded System Introduction


Where we can see embedded
Home , Office Defense , Aerospace Industrial automation Medical system Smart Phone - Android

16

Embedded System Introduction


Android Product
Smart Phone Pad , E-Book Game Console Television

17

Course Overview Embedded System Introduction Multi-Core Overview Texas Instruments OMAP Hardware Development Software and Tool Embedded Development Env. Lab

18

Multi-Core Overview
Homogenous Multi-Core
Some architectures use one core design repeated consistently Example
Intel Core .

Heterogeneous Multi-Core
Some architectures use a mixture of different cores, each optimized for a different Embedded
ARM DSPData Intensive Computation IVAImage Video Audio Accelerator GPU : Graphics processing unit PC : AMD APU . Platform : PAC Duo . Phone : Nvidia Tegra2 . Qualcomm Snapdragon

Example

19

Multi-Core Overview
Heterogeneous Multi-Core
NVIDIA Tegra 2 Dual-core ARM Cortex-A9 CPU Ultra-low power GeForce GPU Video Playback Processor

20

Multi-Core Overview
SMP : Symmetric multiprocessing
More identical processors are connected to a single shared main memory Controlled by a single OS instance.

OS

Core 1

Core 2
System Bus

Core N

Core 2 I/O interrupt

Memory

21

Multi-Core Overview
TI s OMAP 4 platform is one of the first dual-core, ARM Cortex-A9 MPCore SMP-based architectures and employs parallel processing for higher performance and better power efficiency. SMPs scalable performance activates only the cores that are needed for that particular process to reduce power consumption or substantially increase performance.

22

Multi-Core Overview
ASMP : Asymmetric multiprocessing
Each processor is assigned a special task. A master processor control the system. the other processors either look to the master for instruction.

Master

Slave

Slave

Core 1 I/O Core 2 interrupt

Core 2

Core N

System Bus

Memory

23

Multi-Core Overview
BMP : Bound multiprocessing
scheduling control of an ASMP management and hardware abstraction of SMP

Task 1

Task 3 OS

Task 3

Core 1

Core 2
System Bus

Core N

Core 2 I/O interrupt

Memory

24

Multi-Core Overview
Feature Seamless resource sharing Scalable beyond dual CPU Legacy application operation Mixed OS environmen Dedicated processor by function Intercore messaging Thread synchronization between CPUs Load balancing System-wide debugging and optimization
QNX

BMP

SMP

ASMP Limited

most cases

Fast

Fast

Slower

25

Course Overview Embedded System Introduction Multi-Core Overview Texas Instruments OMAP Hardware Development Software and Tool Embedded Development Env. Lab

26

Texas Instruments OMAP


OMAP System on Chips (SoCs)
Open Multimedia Application Platform For portable and mobile multimedia applications developed by Texas Instruments

Consists of three product groups :


High-performance applications Basic multimedia applications Integrated modem and applications

27

Texas Instruments OMAP


High-performance applications processors
OMAP 1
started with a TI-enhanced ARM switched to standard ARM926 (ARMv5 168Mhz~220Mhz) 220Mhz C55x DSP 330Mhz ARM1136 Core (ARMv6) 220Mhz C64x or C55x DSP only marketed to handset vendors broken into 3 distinct groups - OMAP 34X . OMAP35X . OMAP 36X ARM Cortex-A8 core (ARMv7 600Mhz~1.2Ghz) C64x DSP (400Mhz~800Mhz) PowerVR SGX530

OMAP 2

OMAP 3

28

Texas Instruments OMAP

High-performance applications processors


OMAP 4
Dual-Core ARM Cortex-A9 (ARMv7 1Ghz~1.8Ghz Dual-Core) C64x DSP (300Mhz ~ 1000Mhz) 3D graphics accelerator (PowerVR SGX540) Dual-Core ARM Cortex-A15 (ARMv7 2Ghz Dual-Core) additional ARM Cortex-M4 cores graphics cores (PowerVR SGX544MP )

OMAP 5

29

Texas Instruments OMAP

OMAP35X Family
OMAP3430

Samsung i8910

Nokia N900

OMAP3530

phyCARD-L System on Module

Beagle Board

DevKit8000

30

Course Overview Embedded System Introduction Multi-Core Overview Texas Instruments OMAP Hardware Development Software and Tool Embedded Development Env. Lab

31

DevKit 8000 Hardware Features

Using TI OMAP3530 processor


600-MHz ARM Cortex-A8 Core 412-MHz TMS320C64x+ DSP Core

Memory
128MByte DDR SDRAM 128MByte NAND Flash


32

Peripheral
Serial port : RS232 voltage . TTL voltage USB port : OTG . HOST SD/MMC port, support 3.3V and 1.8V Ethernet : 10/100Mbps McSPI Interface McBSP interface I2C interface HDQ interface (HDQ/1-Wire)

DevKit 8000 Hardware Features

DevKit8000 Evaluation Board

33

DevKit 8000 Hardware Features

DevKit8000 Diagram

34

Course Overview Embedded System Introduction Multi-Core Overview Texas Instruments OMAP Hardware Development Software and Tool Embedded Development Env. Lab

35

Development Software and Tools

How to Programming Embedded System


Development Tool ISP , ICE , JTAG , other interface Development Software IDE , Compiler Development environment Simulation , Cross - development

36

Development Software and Tools


Connect to The Development Board

Target board
JTAG ISP

37

Development Software and Tools

JTAG
Joint Test Action Group essentially all modern processors support JTAG when they have enough pins JTAG interface is a special four/five-pin interface added to a chip TDI (Test Data In) TDO (Test Data Out) TCK (Test Clock) TMS (Test Mode Select) TRST (Test Reset) optional.

ISP
In-system programming programming and reprogramming of many MCU. can be used to perform firmware updates at the end of theproduction line.Support : C8051 . AVR .

38

Development Software and Tools


Embedded System Development Software
IDEIntegrated development environment IARADSRVDSCCSEclipse Compiler GNU arm-gcc , GNU gdb (Debug) a set of development tools for building and debugging embedded applications using assembler, C and C++. C-SPY simulator and hardware debugger systems Support for RTOS-aware debugging on hardware User and reference guides in PDF format Support : 8051 , PIC , ARM , AVR , dsPIC , MSP430

IAR Embedded Workbench


39

Development Software and Tools


ADS ARM Development Suite
ARM tools enable developers to get the best from their ARM technology-based systems. The latest (and last) release of ARM Developer Suite (ADS) is version 1.2.1 The ADS toolkit consists of the following major components

Command-line development tools armlink link a collection of objects an libraries into an executable image produce debug and reference information about the linked files.

the most recent set of development tools from ARM is RealView Development Suite (RVDS), which supersedes ADS

40

Development Software and Tools


RVDS RealView Development Suite
a complete, end-to-end solution for software development The highly optimizing ARM Compiler targeted ARM RVD Debugger supporting JTAG CoreSight enabled debugging enabling applications to achieve both high performance (2x) and optimal code size. Support : all ARM processors

41

Development Software and Tools


CCS C Aware IDE
Code Composer Studio (CCStudio) Optimized C compiler with IDE complete integrated tool suite for developing and debugging embedded applications Maximize code reuse by easily porting to another MCU C-Source code level in-circuit debugger Compilation control to completely or partially build projects

42

Development Software and Tools


Eclipse
multi-language software development environment. an extensible plug-in system. Users can extend its abilities by installing plug-ins written for the Eclipse software framework one of the first IDEs to run under GNU Classpath

43

Course Overview Embedded System Introduction Multi-Core Overview Texas Instruments OMAP Hardware Development Software and Tool Embedded Development Env. Lab

44

Embedded Development Env.


1. Simulation development environment
Simulate the functions and behaviors of the target board. Used when lack of target board or simulation of programs . Like Android-Emulator: provides a virtual ARM mobile.

2. Cross-development environment
The host connect with target board and use environment of host to develop on target board.

45

Embedded Development Env.


Simulation development environment
Early stage of development in the program, do not need target machine.

PC
Embedded system board environment

Program
Simulate

Execute

46

Embedded Development Env.


Cross-development Environment
General Compiler Flow execute on Host PC

X86 Machine code


Compiler Program Host PC on

Cross Compiler Flow


Cross-development Environment

ARM Machine code

47

Embedded Development Env.


Cross-development environment
Host PC Linux environment - VM. with Cross-Compiler - Toolchain Target Board Devkit8000 Platform Connection Ethernet : TFTP . NFS Serial port : RS232
Development embedded system software procedure

RS-232network

Execute embedded software in embedded system


48

Embedded Development Env.


Cross-Compiler Introduction
Sometimes, also named toolchain Hardware dependent What is the purpose of Cross-compiler ? set up to compile source files and generate executable files for target platforms Build kernel image for specific platforms

49

Embedded Development Env.


Cross-development flow

50

Course Overview Embedded System Introduction Multi-Core Overview Texas Instruments OMAP Hardware Development Software and Tool Embedded Development Env. Lab

51

Lab - Environment Setting

ERROR : xxx : Permission denied Account root [#] , superuser [#] , User [$] Such as :

Chmod - Changes the permissions chmod [-R] Permission file_or_dir Chown - Change owner chown [-R] account file_or_dir sudo permitted to execute a command as the superuser sudo command sudo su "switch user" command

52

Lab - Environment Setting


Serial communication software
Ckermit Host$ sudo apt-get install ckermit Minicom (option) Host$ sudo apt-get install minicom

Setup ckermit
Host$ gedit ~/.kermrc

ttyS0

= Physical Serial Port

ttyUSB0 = USB Visual COM Port

53

Lab - Environment Setting


GUI-Like api
ncurses (new curses) Provides an API, allowing the programmer to write text user interfaces in a terminal-independent manner. GUI-Like Host$ sudo apt-get install libncurses5-dev Host $ apt-get install gcc libc6-dev make

Development Tool (for X86)

54

Lab - Environment Setting


Environment variable
Host$ cd ~/embed/Tool Host$ tar -xvf arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnulinux-gnu.tar.bz2

Toolchain_PATH
55

Lab - Environment Setting


Setup toolchain for ARM ( two method )
Command Line
Host$ export PATH=$PATH:/home/mmnlab/embed/Tool/arm-2007q3/bin: PATH:/home/mmnlab/embed/Tool/ Host$ gedit ~/.bashrc

choose one of the options

Modify ~/.bashrc file

Host$ source ~/.bashrc

56

Lab - Environment Setting


Step1 : Cross compiler your sample code
Host $ gedit ~/embed/main.c

Host $ arm-none-linux-gnueabi-gcc -o hello main.c

Step2 : Copy the executable file generated by cross compiler toolchain to SD Card
Host $ cp hello /media/SDC_NAME

Step3 : Operate on terminal and run the executable file on the target board

Devkit8000: # cd /media/mmcblk0p1
Devkit8000: /media/mmcblk0p1# ./hello

57

Potrebbero piacerti anche