企业级Bootloader之Openmoko gta03 &&SmartQ5 S3C6410 Bootloader Qi阅读与分析(一)
(转载请说明出处,不能用于商业用途)
(欢迎访问:www.embed-training.com
/)
正如Openmoko && 0xdroid 开源界大侠Jserv所说:Qi的使用不限于Openmoko FreeRunner 硬体平台。智器将原来Openmoko gta03的bootloader代码改为其SmartQ系列所用,好处在于用其烧写文件系统。
Qi Wiki:
http://wiki.openmoko.org/wiki/Qi
SmartQ5 Qi 源码树:
tommy@tommy-desktop:/work2/project_study/qi-smartq-20090612$ tree
.
|-- Makefile
|-- README
|-- config.mk
|-- gta02-qi.ocd
|-- image
| |-- qi-s3c6410-20090612-SmartQ
| |-- qi-s3c6410-20090612-SmartQ.dis
| |-- qi-s3c6410-20090612-SmartQ.udfu
| `-- start_qi_all-s3c6410
|-- include
| |-- ext2.h
| |-- fat.h
| |-- i2c-bitbang-s3c6410.h
| |-- i2c-bitbang.h
| |-- image.h
| |-- qi-ctype.h
| |-- qi.h
| |-- s3c6410.h
| |-- serial-s3c64xx.h
| |-- setup.h
| |-- smdk6410.h
| `-- utils.h
|-- install-smartq-qi.sh
|-- src
| |-- cpu
| | `-- s3c6410
| | |-- i2c-bitbang-s3c6410.c
| | |-- i2c-bitbang-s3c6410.o
| | |-- qi.lds
| | |-- serial-s3c64xx.c
| | |-- serial-s3c64xx.o
| | |-- smartq.c
| | |-- smartq.h
| | |-- smartq.o
| | |-- start.S
| | |-- start.o
| | |-- start_qi.c
| | `-- start_qi.o
| |-- crc32.c
| |-- crc32.o
| |-- ctype.c
| |-- ctype.o
| |-- fs
| | |-- dev.c
| | |-- dev.o
| | |-- ext2.c
| | `-- ext2.o
| |-- phase2.c
| |-- phase2.o
| |-- start.S
| |-- utils-phase2.c
| |-- utils-phase2.o
| |-- utils.c
| `-- utils.o
`-- tools
|-- Makefile
|-- mkudfu
|-- mkudfu.c
`-- usb_dfu_trailer.h
7 directories, 53 files
tommy@tommy-desktop:/work2/project_study/qi-smartq-20090612$
config.mk为如下,主要为makefile 编译所需的环境变量设置
#
# Include the make variables (CC, etc...)
#
CPU=s3c6410
CROSS_PATH=/usr/local/poky/eabi-glibc/arm
CROSS_COMPILE=${CROSS_PATH}/bin/arm-poky-linux-gnueabi-
COMPILER_LIB_PATH_PRE=${CROSS_PATH}/lib/gcc/arm-poky-linux-gnueabi
COMPILER_LIB_PATH=${COMPILER_LIB_PATH_PRE}/`ls ${COMPILER_LIB_PATH_PRE}`
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
HOSTCC = gcc
# we need the mkudfu tool from U-Boot build
#MKUDFU = ../uboot/u-boot/tools/mkudfu
export CROSS_COMPILE AD LD CC OBJCOPY OBJDUMP MKUDFU
下一节将对主要程序一一分析。