The Android embedded intelligent operating system is based on the Linux kernel and drivers. When developing the Android operating system, HTC, Huawei and other companies need to transplant Android to a specific hardware platform, and write and develop the necessary drivers. Become a core developer for Android and get core developers from embedded device vendors.

  1. Android system development framework and development model

Do Android embedded development, this is a must foundation, you must know the entire framework of Android development, know some necessary development models and program modules, this helps you quickly understand Android embedded development

  1. Android system and porting related tools

1.1 Introduction to Android operating system architecture, Android Linux kernel transplantation, file system, Toolbox transplantation, storage driver transplantation. The corresponding scheme and migration of Bootloader and the migration of Android virtual machine Dalvik are introduced.

1.2 Introduction to ARM Processors.

ARMv5TJS.

ARM interrupt processing.

ARM architecture and ARM processor architecture.

IP core, chip and development board.

ARM Processor structure Processor mode.

.sender.

. Pipeline structure.

C language embedded assembly style and programming examples.

1.3ARM instruction system.

Arithmetic logic instruction. Influence of instruction on state sender. Contrast instruction. Branch instruction. Shift. Instruction bitmap. Identify machine instructions.

1.4 Memory access and memory control.

The application and example of data bus and address bus.

STR/LDR.

1.5ARM process call standard.

LDM/STM.

Disassembly.

APCS.

C language function and assembly call each other.

[Case] Build the Linux kernel with Android Linux Patch

  1. AndroidLinux kernel porting and core development

2.1 Android system construction of ARM processor.

2.2 I/O device driver transplantation.

2.3 Storage device NAND Flash, MMC/SD card driver migration

2.4 the Framebuffer transplantation.

Eason Touchscreen.

2.6 Open Binder IPC porting.

“Case”

2.7 Porting Android experiment on ARM processor.

2.8 Writing the Nand Flash driver.

2.9 Migrating the Framebuffer driver.

2.10 Hardware related parts (keyboard, touch screen, LCD, etc.)

  1. Android related environment library, and Bionic system porting

3.1 the libc transplantation.

3.2 libm transplantation.

3.3 libdl transplantation.

3.4 libm transplantation.

3.5 BusyBox, Toolbox transplantation.

“Case”

1. Transplant gliBC.

2. Porting BusyBox and Toolbox.

  1. Android Dalvik port one

4.1 Principles of JNI Call Bridge.

4.2 DX, dalvitVM principle and application.

4.3 Dalvik instruction style.

4.4 Dalvik implements style dex.

4.5 Java bytecode style.

  1. Android Dalvik port two

5.1 Principle of Dalvik Library.

5.2 Dalvit Libcore core library migration.

5.3 Dalvit/VM /native port.

5.4 Dalvik Interpreter Principle.

5.5 Dalvik Mterp.

  1. ARMAT&T assembly

6.1 DETAILED explanation of AT&T assembly syntax.

6.2 Application of gas Tool.

6.3 Label Functions of labels.

6.4 Dissemination of data and code.

  1. Link script lD-script

7.1 Determination of segment addresses.

7.2 Writing lD-Script.

7.3 Relationship between ELF style and LIBC function library.

  1. Sequential circuit foundation

8.1 Level signal.

8.2 Circuit diagram analysis.

8.3 Analysis of time sequence diagram.

8.4 datasheet view.

8.5 Peripheral device structure of the S3C2440

8.6 GPIO operation.

  1. AMBA bus standard

9.1 AMBA Bus standard.

9.2 FCLK/HCLK/PCKL frequency allocation and setting.

9.3 Watchdog Timing Operations.

9.4 UART Operations.

9.5 ARM Interrupt System.

9.6 Abnormal Direction Table.

9.7 ARM Mode Switchover.

9.8 ARM interrupt controller.

9.9 Soft Interrupt.

9.10 Implementation of Linux system call.

  1. Nand Flash controller

10.1 Principles of Flash.

10.2 Nand controller principle timely sequence board.

10.3 Timing analysis of K9F1208.

  1. Memory controller

11.1 S3C2440 Physical Address dissemination.

11.2 SDRAM principle and timing.

11.3 Physical connection of memory controller.

11.4 Address Alignment.

11.5 SRAM visit.

  1. Memory management unit

12.1 Principles of the MMU.

12.2ARM Coprocessor Instructions.

12.3 Section Mode.

12.4 Small Page Mode.

12.5 I & D TLBs.

12.6 I & DCache.

12.7 Principles and implementation of harvard Structure.

  1. Mechanism and application of DMA direct memory access

13.1 DMA’s state machine.

13.2 DMA control.

  1. Touch screen interface and ADC interface and examples

14.1 ADC Principles.

14.1 Touch screen interface and control.

  1. LCD control device

15.1 Principles of Graphic Display.

15.2 LCD controller.

15.3 LCD Timing sequence.

15.4 LCD driver related framework and system.

  1. I2S audio bus

16.1 Principles of Audio Hardware.

16.2 I2S timing sequence.

16.3 Operation of I2S on S3C2440

16.4 Discussion of bare drivers for audio devices.

  1. CS8900 network adapter control

17.1 Logical Link Layer and MAC Layer.

17.2 CS8900 principle and timing analysis.

17.3 Subsequent Nic Bare Driver Discussion and Architecture.

  1. TCP/IP stack migration, and network architecture

18.1 LwIP Overview of TCP/IP Stack.

18.2 Configuration and Compilation of LwIP.

18.3 TFTP Configuration and Compilation.

  1. Bootloader principle and porting

19.1 U-Boot Configuration and Compilation

19.2 U-Boot Startup History Analysis.

19.3 Arm-Linux Startup Request

19.4 LD-SRIPT Analysis of ARM-Linux Kernel.

19.5 Analysis of the Jump Code between U-Boot and ARM-Linux

19.6 Using mkImage to Create a Startup Image File.

  1. ARM-Linux principle and transplantation

20.1 Arm-Linux configuration and compilation.

20.2ARM-Linux startup code analysis.

20.3 Arm-Linux Address Mapping Relationship.

20.4 Configuring and Compiling Busybox

22. Debugging and testing skills of ARM and other platforms

Will be familiar with the use of some test scripts for their own driver test, or embedded hardware for a simple test, this is very necessary for Android embedded development of developers!

The last

We’re just a small part of a long road of development… Only continuous learning, progress, is our way out! To keep up with the progress of The Times!

A few tips for beginners in Android embedded development