新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于S3C2410的嵌入式Linux系統(tǒng)構(gòu)建

基于S3C2410的嵌入式Linux系統(tǒng)構(gòu)建

作者: 時(shí)間:2011-01-24 來源:網(wǎng)絡(luò) 收藏

2.2 linux2.6.14內(nèi)核的移植

2.2.1 內(nèi)核的選擇

linux內(nèi)核版本的更新速度非常快,但linux的內(nèi)核版本發(fā)行同linux對(duì)處理器支持程度的發(fā)展是不同步的,因此,需要對(duì)特定的處理器體系結(jié)構(gòu)選擇合適的內(nèi)核,并且根據(jù)其硬件功能部件加上相應(yīng)的補(bǔ)丁。根據(jù)$3c2410的體系結(jié)構(gòu)以及外圍硬件特性,該系統(tǒng)采用linux2.6.14內(nèi)核,所用的編譯器為arm-linux-gcc一3.4.1版本;由于該系統(tǒng)采用的是yaffs2文件系統(tǒng),因此需要從網(wǎng)上下載yaffs2.tar.gz文件,解壓并執(zhí)行./patch.ker.sh/i.inux2.6.14命令,對(duì)i.inux內(nèi)核打補(bǔ)丁使其支持yaffs2文件系統(tǒng)。

2.2.2 內(nèi)核的修改

(1)修改內(nèi)核源碼中makefile的交義編譯項(xiàng):

arm?=arm;cross一compile?=/usr/local/arm/3.4.1/bin/arm-linux一;

(2)在arch/arm/mach-s3c2410/devs.c文件中:

①增加頭文件定義:

#includelinux/mtd/pa rtitions.hi>

#includelinux/mtd/nand.h>

#ineludeasm/arch/nand.h>

②增加static struct mtd-partition partition-info[]函數(shù),建立分區(qū)表信息,分區(qū)內(nèi)容如表1所示;

③加入nand flash分區(qū):struet s3c24 1 o-nand-set nandset一{nr_partitions:5,partitions:partition-info,};

④建立nand flash 芯片支持struct s3c24 10-platform-nand superlpplatform={tacls:o,twrph0:30,twrphl:0,sets:&.nandset,nr-sets:1,};

⑤在nand flash驅(qū)動(dòng)里加入nand flash芯片支持:在s3c-device-nand中增加.dev一{.platform一data一&super-lpplatform}。

(3)在arch/arm/machs3c2410/machsmdk2410.c中的一initdata部分增加s3c-device-nand,使內(nèi)核啟動(dòng)時(shí)初始化nand flash信息。

(4)為了使內(nèi)核支持devfs并在啟動(dòng)時(shí)在/sbin/init運(yùn)行之前自動(dòng)掛載/dev為devfs文件系統(tǒng).修改fs/kconfig.并在menupseudo filesystetns下添加如下語句:config devfs_fsbooi/dev flie system support(obolete)default yconfig devfs-mountboolautomatically mount at bootdefault ydepends on devfs fs

2.2.3 內(nèi)核的編譯和加載

(1)執(zhí)行make mrproper:編譯內(nèi)核前清理編譯環(huán)境。

(2)執(zhí)行make menuconfig:對(duì)內(nèi)核進(jìn)行配置是量體裁衣的過程.是十分復(fù)雜的過程,配置適合自已的內(nèi)核可能需要多次重復(fù)的配置操作。以下根據(jù)該系統(tǒng)對(duì)部分配置做簡單介紹: boot options一一一>default kernel command st ring

noinitrd root=/dev/mtdblock3 init=/linuxrc

console--ttysac0.1 15200

說明:mtdblock3代表nand fash第4個(gè)分區(qū),他足該系統(tǒng)的root分區(qū);

floating point emulation一一一>

[*]nwfpe math emulation

#選擇在內(nèi)核中使用nwfpe浮點(diǎn)模擬

file systems一一一>

>second extended fs support

#去除對(duì)ext2的支持

pseudo file
[*]/proc file system support

[*]virtual memory file system support(former

shm fs)

[*]/dev file system support(obsolete)

[*]automatically mount at boot(new)

這里會(huì)看到前面修改fs/kconfig的結(jié)果,devfs已經(jīng)被支持。

miscellaneous filesystems一-- >

#選擇yaffs2根文件系統(tǒng)

*>yaffs2 file system support

------51 2 byte/page devices

[*]lets yaffs do its own ecc

[ ]use the same ecc byte order as steven hill's nand-ecc.c

一一一2048 byte (or larger)/page devices

[*]autoselect yaffs2 format

[*]disable lazy loading

(1 0)reserved blocks for checkpointing

[*]turn off wide tnodes

[]force chunk erase check

[]cache short names in ram

network file systems---〉

*〉nfs file system support

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 嵌入式

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉