linux 操作系统移植_第1页
linux 操作系统移植_第2页
linux 操作系统移植_第3页
linux 操作系统移植_第4页
linux 操作系统移植_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux操作系统移植小组成员:李莉冯晓成董娟婷李文明第一部分嵌入式Linux软件开发环境构建在Windows上安装虚拟机VMware-6.5在虚拟机上安装linux(利用光盘镜像文件安装fedora9)安装VM-tools安装交叉编译工具链(后续移植过程中使用编译器版本为arm-linux-gcc4.3.3)安装其他必要工具获取U-boot源码(此处版本为u-boot2009.11)获取linux内核源码(此处版本为linux-2.6.32.2),解压安装在fedora9的/opt/FriendlyARM/mini2440/目录下。配置NFS服务器安装串口终端(此处为secureCRT)及USB转串口驱动安装USB下载程序DNW及其驱动第二部分U-boot移植(一)

建立开发板文件测试编译环境修改顶层Makefile指定交叉编译器

CROSS_COMPILE=arm-linux-添加开发板配置文件

mini2440_config:unconfig @$(MKCONFIG)$(@:_config=)armarm920tmini2440samsungs3c24x0建立mini2440目录和文件建立开发板目录/board/samsung/mini2440

将board目录下的sbc2410x改名为mini2440并移至samsung目录下,这样一来就成功建立了开发版目录/board/samsung/mini2440,将该目录下的sbc2410x.c改名为mini2440.c。修改/board/samsung/mini2440/Makefile

COBJS:=sbc2410x.oflash.o修改为COBJS:=mini2440.oflash.o在include/configs/建立开发板配置文件将该目录下的sbc2410x.h改名为mini2440.h测试编译环境在u-boot根目录下:makemini2440_configConfiguringformini2440board…make第二部分U-boot移植(二)

修改引导代码关闭AT9200写的LED跳转@ bl coloured_LED_init@ bl red_LED_on修改CPU频率初始化设置 关闭看门狗、设置分频比、禁止中断(添加代码较多,不再列出)。 修改lowlevel_init.s文件

匹配mini2440的存储器配置。修改代码重新定向部分 修改start.s文件、在mini2440目录下添加nand_read.c文件、修改Makefile。增加LED1点亮(为了便于观察)修改/cpu/arm920t/u-boot.lds连接文件

cpu/arm920t/start.o (.text)

board/samsung/mini2440/lowlevel_init.o(.text) board/samsung/mini2440/nand_read.o(.text)

第二部分U-boot移植(三)

修改初始化代码修改lib_arm/board.c文件

LED3、LED4的点亮和打印信息的输出

#ifdefined(CONFIG_MINI2440_LED) gpio->GPBDAT=0x0; #endif #ifdefined(CONFIG_CFB_CONSOLE) printf("%s\n",version_string); printf("modifiedbywuying\n\n"); #endif修改mini2440.c文件(内容较多)

增加LCD初始化函数、修改GPIO设置、LED2的点亮、屏蔽nand控制器初始化代码、添加网卡芯片(DM9000)的初始化函数。第二部分U-boot移植(四)

完善目标板外设驱动NandFlash相关代码的修改添加yaffs(2)焼写功能添加NorFlash写入功能修改网络相关代码添加LCD显示功能

注意:需要在drivers/vedio下添加驱动文件s3c2410_fb.c添加SD卡读取功能注意:添加3个驱动代码文件mmc.c、mmc.h、regs-sdi.h第二部分U-boot移植(五)

修正配置文件添加CONFIG_S3C2440条件定义

对于s3c2440好多代码都是借用s3c2410的,所以要对所有条件编译中有CONFIG_S3C2410的地方添加CONFIG_S3C2440,这样才能编译进来。

Common/serial.c、cpu/arm920t/s3c24x0/下interrupts.c、timer.c、usb.c、usb_ohci.c和driver/i2c/s3c24x0_i2c.c、drivers/rtc/s3c24x0_rtc.c等11个文件进行修改。修改配置文件include/configs/mini2440.h

此处主要做了以下修改: (1)去除了CS8900网卡的定义,添加了DM9000。 (2)使能了JFFS2、FAT文件系统。 (3)使能了USB、SD卡功能。 (5)使能了I2C、EEPROM功能。 (6)使能了LCD功能,以及BMP图片显示和字符console的功能。 (7)去除了AMD的NorFlash芯片的定义,增加SSTNorFlash芯片定义。第二部分U-boot移植(六)

编译、下载重新编译u-boot makeclean makemini2440_config make

编译通过则生成u-boot.bin下载u-boot到开发板NandFlash(此处用USB下载)从NandFlash重启开发板启动,串口终端显示如下图,u-boot移植基本完成。第三部分Linux内核移植解压内核源代码

#cd/opt/FriendlyARM/mini2440 #tarxvzflinux-2.6.32.2.tar.gz指定交叉编译变量

ARCH?=arm CROSS_COMPILE?=arm-linux-建立自己的目标平台(对mini2440.c的建立和修改) 复制mach-smdk2440.c并将其命名为mach-mini2440.c

修改时钟源频率(修改为12M) 将smdk2440替换为mini2440置菜单中的mini2440执行menuconfig在菜单中增加mini2440的支持移植nand驱动并修改分区信息移植yaffs2第三部分Linux内核移植移植DM9000网卡驱动激活RTC驱动添加LCD背光驱动移植LCD显示驱动设置LinuxLogo添加ADC驱动移植SD卡驱动配置USB外设第四部分利用U-boot引导内核U-boot引导内核步骤如下(我们使用nfs服务器) (1)用U-boot的mkimage工具处理内核映像zImage。(2)通过网络、串口、U盘、SD卡等方式将处理过的内核映像传输到SDRAM的一定位置(30008000)。(3)然后使用”bootm“等内核引导命令来启动内核。uImage制作方法 编译u-boot后,在u-boot/tools/目录下生成mkimage文件,将其拷贝至/usr/local/bin目录下,则mkimage命令可在fedora任意目录下使用,执行下面命令,则会在arch/arm/boot/目录下生成zImage.img文件。

mkimage-n‘zImage'-Aarm-Olinux-Tkernel-Cnone-a0x30008000–e0x30008040-dzImagezImage.img

也可以在编译内核是直接执行makeuImage命令,编译完成会生成uImage文件,与上述zImage.img

相同作用的文件。第四部分利用U-boot引导内核过程用交叉网线、串口线、USB线、电源线连接电脑和开发板从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论