您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 13405033刘源嵌入式与多核课程设计报告
《嵌入式与多核技术》课程设计报告题目:最小系统移植班级:13通信本2学号:13405033姓名:刘源同组人员:张贵艾孜艾尔江任耀肖金树指导教师:陈顥文杨祖芳2016年6月5日目录1.最小系统移植的概念和意义...................................................................................11.1概念..................................................................................................................11.2原理..................................................................................................................12.最小系统移植的具体步骤.....................................................................................12.1u-boot的移植................................................................................................12.2kernel的移植..............................................................................................102.3文件系统的移植............................................................................................133.测试程序的编写.....................................................................................................124.最终试验测试现象.................................................................................................131最小系统移植1最小系统移植的概念和意义1.1概念最小系统移植是指将嵌入式系统所使用的芯片型号多种多样,很多芯片不能直接兼容,所以通过修改部分代码,把能在甲芯片上运行的程序,也能在与之不完全兼容的乙芯片上正确运行,就叫移植。系统移植的概念也差不多,只是涉及到的芯片可能更多而已。这个也可以通过计算机主板驱动来理解,往往不能的操作系统会有不同的驱动程序,不同的芯片组也有不同的驱动程序,但这些驱动程序的核心操作是一样的,只需要修改少数地方,就可以把适用于A系统的驱动,改为适用于B系统的驱动1.2意义最小系统移植可以将不同的系统兼容起来,可以使我们在单片机实验时更加方便快捷的进行试验。在嵌入式学习以及在嵌入式试验中,最小系统的移植时整个试验的重中之重,是第一步也是最关键的一步,最小系统的搭建是否准确,直接关系到后面试验的进行。最小系统移植准确的来说,不如说是开发板环境的搭建,因为在系统移植里面,最主要的就是在讲,开发板环境的搭建,所以开发板环境的搭建是整个试验的关键。2最小系统移植的具体步骤2.1u-boot的移植U-Boot系统移植目的制作一个引导程序可以初始化硬件设备、准备软件环境和调用操作系统(类似PC的Bios)参考:《嵌入式Linux应用开发完全手册》1、硬件环境:CPUS3C2440SDRAMH57V2562GTR-60C64MNandFlashK9F2G08U0B256M2NorFlashEN29LV160AB2MlCD天嵌4.3寸(TQ43)480*272网卡DM9000EP100M2、软件平台:系统ScientificLinux版本6.0(Carbon)内核Linux2.6.32-71.el6.i686交叉编译工具EABI4.3.3源码U-Boot1.1.6‐boot/3、源码解压后的目录:(红色平台依赖,绿色通用,黑色应用程序或工具和文档)Board:U-boot支持的每个开发板的文件,都会以子目录的形式存放在baord目录下。Common:存放U-Boot支持的所有命令。无须大幅度修改,一般是加一些调试信息,打开或关闭一些宏。可增加自己的u-boot命令Cpu:每个目录对应一个架构的cpu。Disk:这是要对磁盘的支持。我们只移植u-boot的话,那这个对我们也没有意义。Doc:参考文档的意思,这是最没用的,也是最有用的。Driver:u-boot支持的所有的驱动代码。如果您需要添加自己的驱动代码,也可以放在这里。然后再makefile中加入相应的.o文件名。Dtt:数字温度测量器或传感器的驱动Examples:可在U-Boot下运行的示例程序;如hello_world.c,timer.c;Fs:u-boot支持的文件系统。目前已能支持包括cramfs、fat、fdos、jffs2等。Include:头文件以及对各种硬件平台的系统配置文件。对特定的开发板,都需要修改系统配置文件,它存放在include目录下的configs子目录中。Lib_xxx:这是与体系结构相关的库文件。3Nand_spl:NAND存储器相关代码Net:存放有关网络协议的实现的代码。比如TFTP协议的实现就在这里面。Post:上电自检的目录。Rtc:RTC驱动程序Tools:生成u-boot的工具的目录。比如创建bin镜像文件等。4、U-Boot的编译过程:Stage1#makedistclean清除之前编译产生的文件Stage2#makesmdk2410_config分析过程,在toplevelMakefilesmdk2410_config是Makefile的一个目标,定义如下:/******************************************************************************/smdk2410_config:unconfig@$(MKCONFIG)$(@:_config=)armarm920tsmdk2410NULLs3c24x0unconfig:@rm-f$(obj)include/config.h$(obj)include/config.mk\$(obj)board/*/config.tmp$(obj)board/*/*/config.tmp/******************************************************************************/各项说明如下:arm:CPU的架构(ARCH)arm920t:CPU的类型(CPU),其对应于cpu/arm920t子目录smdk2410:开发板的型号(BOARD),对应于board/smdk2410目录NULL:开发者/或经销商(vender)s3c24x0:片上系统(SOC)/******************************************************************************/MKCONFIG主要完成以下三个任务:1、在include文件夹下建立相应的软连接2、生成Makefile包含文件include/config.mk3、生成include/config.h头文件/******************************************************************************/4以下几步也在toplevelMakefile但不是分析编译过程指定交叉编译器路径:改toplevelMakefile/******************************************************************************/ifeq($(ARCH),arm)#这里根据ARCH变量,指定编译器前缀。CROSS_COMPILE=arm-linux-endif/******************************************************************************/U-boot需要的目标文件:/******************************************************************************/OBJS=cpu/$(CPU)/start.o#顺序很重要,start.o必须放第一位/******************************************************************************/需要的库文件:/******************************************************************************/LIBS=lib_generic/libgeneric.aLIBS+=board/$(BOARDDIR)/lib$(BOARD).aLIBS+=cpu/$(CPU)/lib$(CPU).a.............LIBS+=common/libcommon.aLIBS+=$(BOARDLIBS)LIBS:=$(addprefix$(obj),$(LIBS)).PHONY:$(LIBS)/******************************************************************************/最终生成的各种镜像文件:/******************************************************************************/ALL=$(obj)u-boot.srec$(obj)u-boot.bin$(obj)System.map$(U_BOOT_NAND)all:$(ALL)$(obj)u-boot.hex:$(obj)u-boot$(OBJCOPY)${OBJCFLAGS}-Oihex$$@$(obj)u-boot.srec:$(obj)u-boot$(OBJCOPY)${OBJCFLAGS}-Osrec$$@$(obj)u-boot.bin:$(obj)u-boot5$(OBJCOPY)${OBJCFLAGS}-Osrec$$@/*******************************************************************************/Stage3#make5、小结U-BootELF文件镜像的生成过程:@依赖目标depend:生成各个子目录的.depend文件(.depend列出每个目标文件的依赖文件)。生成方法,调用每个子目录的make_depend。/***********************************************************************/dependdep:fordirin$(SUBDIRS);do$(MAKE)-C$$dir_depend;done/***********************************************************************/@依赖目标version:生成版本信息到版本文件VERSION_FILE中。/*
本文标题:13405033刘源嵌入式与多核课程设计报告
链接地址:https://www.777doc.com/doc-3060378 .html