文档详情

S3C2440移植uboot过程全解+移植记录.docx

发布:2017-05-21约5.44万字共69页下载文档
文本预览下载声明
Uboot移植前的准备 1、修改makefile、配置文件 在配置文件之前,需要修改makeflie相关内容:修改如下: (1)修改编译器,这里我们的makefile已经设置为arm-linux-无需再修改,如下所示: ifeq ($(ARCH),arm) CROSS_COMPILE = arm-linux- Endif (2)添加fl2440的配置项,如下所示: fl2440_config:unconfig @$(MKCONFIG)?$(@:_config=)?arm?arm920t??fl2440?step?s3c24x0 注意:在添加的fl2440_config的第二行,必须以Table开头,不能有任何多余的符号,否则极易导致编译错误。 Uboot支持多种处理器和平台,在编译uboot之前需要对其进行配置,使其支持我们自己的开发平台。在执行编译make之前,需要进行配置即make fl2440_config。通过查看顶层目录的makeflie文件,通过以下语句: MKCONFIG := $(SRCTREE)/mkconfig 得出实际执行的命令为: ./mkconfig fl2440 arm arm920t fl2440 step s3c24x0 执行完这句后,产生如下结果: (1)开发板名称为fl2440; (2)将include中的头文件连接到同平台相关的头文件中,这里的连接为: asm-asm-arm arch-arch-s3c24x0 proc-proc-armv (3)创建顶层Makefile包含的文件inclued/config.mk,该文件内容如下 ARCH = arm CPU = arm920t BOARD = fl2440 VENDOR = step SOC = s3c24x0 (4)创建开发板相关头文件include/config.h,该文件中包含了对开发板的相关配置,如下所示: #include configs/fl2440.h 从上面可以知道,在将uboot配置为适合自己的平台的时候,需要在路径/include/configs下添加配置头文件fl2440.h。这里我们修改/include/configs /sbc2410x.h的文件名为fl2440.h,并在头文件中加入以下内容: #define CONFIG_FL2440 1/* on a FL2440 Board */ #define CONFIG_S3C2440 1/* specifically a SAMSUNG S3C2440 SoC*/ 打开fl2440.h,里面有两类宏,一类前缀应该是CONFIG_,这类宏用于选择CPU、SOC、系统时钟、选择设备驱动等;另一类前缀是CFG_,这类宏用于设置参数,例如malloc大小等。 2、创建board级文件 在Board目录中添加step目录,注意此step目录要和Makefile的fl2440_config下的step名字保持一致。在step中建立fl2440目录,并将Board目录中的sbc2410x目录中的所有文件复制到fl2440目录中。修改fl2440目录中sbc2410x.c为fl2440.c. 修改fl2440目录下的Makefile文件,将 COBJS:=?sbc2410x.o?flash.o 修改为:COBJS:=?fl2440.o?flash.o 至此??配置过程完成。配置的目的是通过设置相关参数、链接相关头文件,使得uboot适合我们的开发平台。 3、uboot编译、链接过程 Uboot的编译最终生成的u-boot.bin二进制文件,生成u-boot.bin的依赖关系由makefile指定,通过分析makefile可以得到两点: (1)u-boot第一个执行的文件是start.s; (2)如何链接各个文件生成的.o文件,由/board/step/fls2240中的U-boot.lds和config.mk决定。 U-Boot的编译流程为:首先编译cpu/$(CPU)/start.S,对于不同的CPU,还可能编译cpu/$(CPU)下的其他文件。然后,对于平台/开发板相关的每个目录、每个通用目录都使用它们各自的Makefile生成相应的库。将前面两步生成的.o、.a 文件按照board/$(BOARDDIR)/config.mk文件中指定的代码段起始地址、board/$(BOARDDIR)/U-Boot.lds连接脚本进行连接得到ELF格式的U-Boot,后面Makefile还会将它转换为二进制格式、S-Record格式。这部分具体可以参考《嵌入式linux应用开发完全手册》第十五章内容15.2.3。 到此修改构成一个段落,
显示全部
相似文档