Embedded Linux Systemffi

Application

Library

Linux Kernel

Unux Dcvice Driver

Hardware

H 3-1 Embedded Linux System

— ^Embedded Linux System^^At^ H 3-2 ° Bootloader (—^Embedded Linux Systemf^bootloader^^i ' &^blob > U-Boot^) [20][21]^^f Linux kernel M—i£t^'^—P«&bootloaderfi CPU RS232

' #M^Flash ROM t^kernel image^^M ' ^Linux kernel^^^^^M^f^Mt^Linux kernel Linux kernel ° Linux space: init ' ^Embedded Linuxi^5fi£T ' init—^^busybox8[22] ' busybox^^ shell

8 busybox + Busybox^

busybox > BusyBox

Bootloader

Linux Kernel Busybox

bootloaderH^,f ' kernel

^' architecture number^#^CPU register r1' &Linux kerneltf^CPU

register r1 ^^Linux kernel|architecture number^Tfctt^ '

' ^^^^Uj^^Uncompressing Linux kernel° Bootloader^Linux kernel | architecture number thf^lUf^B 3-3^^°

Erasing sector 33

... done

Erasing sector 34

... done

Erasing sector 35

... done

Erasing sector 36

... done

Erasing sector 37

... done

Erasing sector 38

... done

Erased 28 sectors

u-boot$ cp.b allOOOOO 100000 200000

Copy to Flash...-

done

u-boot$ boot

## Booting image

at 00100000 ...

Image Name:

EPS-Android

Created:

2009-06-07 5:01:03 UTC

Image Type:

ARM Linux Kernel Image (gzip compressed)

Data Size:

1859912 Bytes = 1.8 MB

Load Address:

a0008000

Entry Point:

a0008000

Verifying Checksum ... OK

Uncompressing

Kernel Image ... OK

Starting kernel .

Uncompressing Linux

B 3-3 Bootloader || Linux kernel ^ architecture number thf^^It

kernel config # CONFIG_DEBUG_LL ^Jj

B 3-4 Kernel hacking
Linux Kernel Architecture
B 3-5 CONFIG DEBUG LL «

B 3-6 % S%bootloaderMLinux kernel & architecture number^^ ' ^l^Linux kernel configt&CONFIG_DEBUG_LL^^®^&^#m4 ' 0x3eb%bootloadera architecture number ' ffq 0x2d9 % Linux kernel architecture number °

Bootloaderarchitecture number&^ Mil^ifPA^bootloader^ °

Linux kernel ^f architecture number^^^arch/arm/tools/mach-types ' bootloaderM Linux kernel & architecture number ^ UJ & & ;>i M lt ' %

architecture u-boot$ boot

## Booting image at 00100000 Image Name: Created: Image Type: Data Size: Load Address: Entry Point:

EPS-Android

2009-06-07 4:57:30 UTC

ARM Linux Kernel Image (gzip compressed) 1860039 Bytes = 1.8 MB a0008 000 a0008 000

Verifying Checksum ... OK Uncompressing Kernel Image

Starting kernel ...

Uncompressing Linux

Error: unrecognized/unsupported machine ID (rl = 0x000003eb).

Available machine support:

000002d9 XScale-PXA270 Module

Please check your kernel config and/or bootloader.

H 3-6 bootloader ^ Linux kernel ^ architecture number Linux kernel config CONFIG_DEBUG_LL t^i^^^^ml

Linux kernelP«At^H 3-7

boar d.c^^#^linux-2.6.25-android-1.0_r1/arch/arm/mach-pxa/mach-creator-pxa270.c ' b linux-kernel/^architecture4s|/^^armf£/^^machine-pxa&?']/£f£#board.c ° —' &iDMA > IRQ > GPIO

Linux kernel Scheduler

' kernel thread user space init Embedded Linux init — busybox t°

init^fAf^H 3-8 Linux kernel#^f'J###,^initH^> inittfWetc9T^

9 M Busybox flô^'/etc ^t&Mift^St' Busybox -^tf^/etc T^Mt^

' — ^^tfWetc/inittab ' #é/etc/inittab5 ^/etc/init.d/rcS

busyboxM^iMi!^

B 3-7 Linux kernel

init/init.c; init_main()

/etc/inittab parse_inittab{)

/etc/inittab

/etc/init.d/rcS

Was this article helpful?

0 0

Post a comment