色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

          作者: 時間: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對處理器支持程度的發(fā)展是不同步的,因此,需要對特定的處理器體系結(jié)構(gòu)選擇合適的內(nèi)核,并且根據(jù)其硬件功能部件加上相應(yīng)的補丁。根據(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命令,對i.inux內(nèi)核打補丁使其支持yaffs2文件系統(tǒng)。

          2.2.2 內(nèi)核的修改

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

          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ū)動里加入nand flash芯片支持:在s3c-device-nand中增加.dev一{.platform一data一&super-lpplatform}。

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

          (4)為了使內(nèi)核支持devfs并在啟動時在/sbin/init運行之前自動掛載/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:對內(nèi)核進行配置是量體裁衣的過程.是十分復雜的過程,配置適合自已的內(nèi)核可能需要多次重復的配置操作。以下根據(jù)該系統(tǒng)對部分配置做簡單介紹: boot options一一一>default kernel command st ring

          noinitrd root=/dev/mtdblock3 init=/linuxrc

          console--ttysac0.1 15200

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

          floating point emulation一一一>

          [*]nwfpe math emulation

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

          file systems一一一>

          >second extended fs support

          #去除對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)

          這里會看到前面修改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)鍵詞: 嵌入式

          評論


          相關(guān)推薦

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

          關(guān)閉