微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM在嵌入式linux内核裁剪与移植的应用

ARM在嵌入式linux内核裁剪与移植的应用

时间:01-05 来源:互联网 点击:

始化

内核启动时,可以依据对分区的设置进行初始配置,然后修改arch/am4mach-s3c2410/machsmdk2410.e文件下的smdk2410_devices[],指明初始化时包括在前面所设置的flash分区信息,并添加如下语句:

s3c_device_nand,

(3)禁止Flash ECC校验

内核一般都是通过UBOOT写到Nand Flash的。UBOOT则通过软件ECC算法来产生ECC校验码,这与内核校验的ECC码不一样,内核中的ECC码是由S3C2410中Nand Flash控制器产生的。所以,这里选择禁止内核ECC校验。

修改drivers/mtd/nand/s3c2410.C 下的s3c2410_nand_init_chip ()函数,可在该函数体最后加上如下一条语句:

chip->eccmode=NAND_ECC_NONE;

3 内核配置过程

3.1 支持启动时挂载devfs

为了使内核支持devfs以及在启动且在/sbin/init运行之前能自动挂载/dev为devfs文件系统,应修改fs/Keonfig文件,找到menuPseudo filesystems并添加如下语句:

3.2 配置内核产生。config文件

Linux内核裁减的配置菜单命令有好几个配置方法,这几个方法实现的功能类似,只是与用户的交互界面不同。其中:

make config是基于文本的、最为传统的配置界面,可进入命令行;

make menuconfig是基于文本菜单的配置界面;

make xconfig是基于图形窗口模式的配置界面,在Xwindow下推荐使用该界面。

在这3种方法中,make menuconfig使用最为广泛,这里选用的是make menuconfig的配置方法。相应的配置有三种选择,它们分别代表的含义如下:

Y:将该功能编译进内核;

N:不将该功能编译进内核;

M:将该功能编译成可以在需要时动态插入到内核中的模块。

运行make menuconfig时,在smdk2410_defeonfig基础上,其所增删的内核配置项如下:

(1)增加对模块的支持

Loadable module support--->

[*]Enable loadable module support

[*]Automatic kernel module loading

System Type-->

4 内核编译与下载

4.1 内核编译

编译内核时,可运行以下命令:其一是#make clean,即清理环境,保证没有不正确的依赖文件存在;二是#make dep,即将内核源码树中每个子目录产生的.depend文件建立起依赖关系;三是#make zImage,用于建立压缩的linux内核映像。

4.2 下载zImage到开发板

下载zImage到开发板的方法很多,常见的有网络下载(如FTP、TFTP等方式)、串口下载、USB下载等。本文采用FTP方式来移植Linux内核映像文件到目标机NAND FLASH中。代码如下:

CRANE2410#tftp 0x30008000 zImage至此,该嵌入式Linux的编译和移植工作便告全部完成。

5 结束语

本文以将linux移植到ARM920T内核的s3c2410处理器芯片为例,介绍了嵌入式linux内核裁剪以及移植的过程,并对移植中的关键技术和重要步骤给出了详细的说明。移植后的Linux系统在开发板上运行稳定,性能良好。本文的操作过程对嵌入式Linux系统在其它处理器上的移植也具有参考意义。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top