linuxarmlinuxarmlinuxOSlinuxarm“linuxarm”ArmArmarm7arm9arm10arm7arm9???TargetHostICESerialJTAG?JTAGICE?JTAGJTAG?TDOInputTestDataOutfromtargettoICE?TDIOutputTestDataInfromICEtotarget?TCKOutputTestClockoutputfromICEtothetarget?TMSOutputTestModeSelect?NSRSTInput/Output()SystemReset?nTRSTOutput()JTAGICE?ARMJTAG?JTAGARMJTAGMultiICEJEENI?CPU?Bootstrap?ROM?ROMCirrusLogicclps7111~Ep9312ARMcoreCPU128bootboot?96008N1NoFlowControl??2KBootloader??2K?MX14/?bootloader?PCBIOS()MBROSBootLoaderLILOGRUB?BootLoaderBootLoader?BootLoaderbootloaderflashbootloaderPC?BIOSMBRBootLoaderRAMOSBootLoader?BootLoaderRAMbootloaderbootloader?BIOSCPUBootLoader?0x00000000BootLoaderbootloaderbootloader?Bootloader?BootLoaderbootloaderbootloaderBootloader?BootLoaderCPUBootLoaderstage1stage2?CPUstage1?stage2CbootloaderBootLoaderstage1()??BootLoaderstage2RAM?BootLoaderstage2RAM??stage2CbootloaderBootLoaderstage2()??(memorymap)?kernelflashRAM?bootloaderbootloader?Blob://://cygwin.com/?Binutils—?Gcc—GNUC?Glibc—CCCompaqFamiliarLinuxLARTLARTLinuxEmbedianDebian—ARMarmLinux?linux?armlinuxpatchpatch?armLinuxlinuxarmpatch?linux://ftp.arm.linux.org.uk/pub/armlinux/people–xvzflinux-2.4.18.tar.gztar–xvjflinux-2.4.18-tar.bz2cdlinuxzcat../patch-2.4.18-rmk1.gz|patch–p1?patchgzippatch-2.4.18-rmk1.gzpatch-2.4.18-rmk1cdlinuxpatch–p1../patch-2.4.18-rmk1armLinux?makemrpropermake‘target-devices’_config(linux/arch/arm/def-config/mx1ads)makeoldconfigmakedepmakezImagearch/arm/boot/zImage?makemenuconfigmakexconfig?MakefileLinuxMakefileLinux?config.in?NcursesXwindowsMakeconfigMakemenuconfigmakexconfig???????linuxroot?Ext2ramdisk?Romfs?Cramfslinuxroot???????linuxrootRamdisk?/bin—?/dev—?/etc—?/lib—libclibdl?Linux/arch/arm?Linux/arch/arm/mach-mx1adsmach-sa1100?Linux/arch/arm/boot/compressed/head.S?Linux/include/asm-arm-?asm?Linux/include/asm-arm/arch-mx1ads?arch?Linux/include/asm/arch/hardware.h