免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > linux > 嵌入式Linux系统的移植过程(2)

嵌入式Linux系统的移植过程(2)

时间:2012-06-10 11:34来源:未知 整理:寂涯网络 点击:


将内核映像和根文件系统映像从flash上读到RAM空间中、设置内核启动参数以及调
用内核。
3.2.2 U一boot移植
移植U一boot到ARM板上需要完成添加开发板硬件相关的支持文件、配置U一boot
并编译生成bin格式的二进制文件,然后烧写到开发板。具体步骤如下:
a)修改 Makefile文件:
在顶层的 Makefile文件中添加s3e244o_eonfig:uneonfig
    @./mkeonfig$(@:_eonfig=)armarm92Ots3e244oNULLs3e24xo
修改Makefile的目的是定义交叉编译链和开发板配置选项,arm是CPu的架构
(arch),arm920t指的是cPu的类型,53c2440是开发板型号,最后一项是片上系统
(SOC)定义。
b)在board子目录中建立s3c2440并将于开发板最接近的支持包Sdmk2410里的
所有文件拷贝到新建目录下并改成相应的名称。
c)修改文件53c2440.h文件来配置U一boot的软硬件需求,包括CPU型号、开发
板型号、关闭MMU、关闭中断、初始化 malloC池大小、数据段大小、使用网卡许可、
网卡基地址、网卡物理地址、开发板以及服务器IP、内存物理地址、内存大小、默认
的加载地址、flash的基地址,以及使用的串口号和波特率等等。
d)把上述所有相关文件及配置都设置好之后就可以进行编译:
 makes3e244o_eonfig
  makeCROSSCOMPILE=arm一 1inux一
编译生成一个U一boot.bin的映像文件
通过JTAG接口,将U一boot.bin映像文件烧写到53C2440平台的flash中。引导
程序U一boot的移植就算完成了。
然后使用重启开发板,就可以在 Nandflash上启动U一boot引导程序。启动过程如
图4一2。
图4一1串口设置
 3.3Linux2.6内核的移植
Linux是开源代码的操作系统.其内核很小,一般只有几百Kbyte,它很适合移植
到嵌入式系统中,并且提供免费下载。因此Linux内核的应用越来越广泛。下面简要
说明一下Linux内核移植到53C2440平台的方法。本文使用的版本为2.6.24.4的Linux
内核。它对2410的支持完全适用于2440。先将Linux2.6.24.4内核从网上下载下来,
并解压到开发目录下,然后进行以下配置。
3.3.1内核配置
首先修改内核根目录下的Makefile,指明体系结构是arm,交叉编译工具是
arm一  11nux一,打开Makefile找到:
ARCH?==
 CROSSCOMPILE?=
这两项,不修改这两项的话将会默认使用x86的配置,这里修改为
ARCH?=arm
 CROSSCOMPILE?=arm一linux-
设置 nandflash分区结构:修改areh/arm/maehs3e24lo/devs.e、
arCh/arm/maehS3e24lO/maeh一Smdk241O.e不口drivers/mtd/nand/S3e241O.e这三个文
件来实现对 nandflash的支持以及启动时初始化和禁止ECC校验。
首先要修改分区信息,使得内核的 nandflash的分区信息与U一bo。t中的设置一
样:
  statie Struet mtd_artition smdk_default_nand_part[]={
[O〕=
。name=“boot’,
.offset
  51Ze=
=Ox0000000O
Ox0003000O.
〔l〕
。name=“kernel”
offset
。 5IZe=
=Ox0005000O,
OxOOZ00000,
},
[2〕=
name=“root”
.offset
。  51Ze=
=Ox0O250000,
OxO3dae000,
}
};
另外还要修改一下 nandflash配置的几个参数,使其适配开发板的需求:
 s3e241o_platform--nand_smdk_nand_infosmdk_nand_info={
?taels=O,
.twrPhO=30,
?twrphl=O,
…};
内核是通过U一boot烧写到 nandflash上的,而U一boot与内核的ECC校验码不一样,
为了避免系统启动时出错,必须禁止  nandflashECC校验:
在 drivers/mtd/nand/s3e244oxe第669行
将ehipZ)eee.mode=NAND_ECC_SOFT;
改为ehipZ)eee.mode=NAND_ECC_NONE;
由于U一boot传递给Linux内核的机器码也应该与U一boot传递参数一致,所以还需要
修改arCh/arm/too1s/math一types文件:
将   53e2440ARCH_53C244053C2440362
修改为    53e2440ARCH_53C244053C2440782
3.3.2内核配置与编译
配置Linux2.6.24.4内核:先把默认配置文件拷贝过来cp
areh/arm/ConfigS/s3e241o_defeonfig.Config然后键入命令 makemenuConfig,在
smdk241o_defconfig基础上主要做以下配置改动:
    [*jEnableloadablemodulesupPort-一)
〔*」 Moduleunloading
[*〕   Automatiekernelmoduleloading
 SystemTyPe一一一>
[*〕  S3C24lODMAsupport
[*〕  SupportARM92OTprOCeSSOr
 S3C24lOMaehines一一>
[*〕 SMDK2410/A9M2410

本页地址 http://www.jybase.net/linux/20120610947.html

百度搜索更多

谷歌搜索更多

顶一下
(1)
50%
踩一下
(1)
50%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com