日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]一、準(zhǔn)備必要的文件1.首先去官方網(wǎng)站下載最新的llinux內(nèi)核 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz22.因?yàn)閘inux2.6.14內(nèi)核需要更新版本的編譯器,所以需要下載交叉編譯器ftp://ftp.handhe

一、準(zhǔn)備必要的文件

1.首先去官方網(wǎng)站下載最新的llinux內(nèi)核

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2

2.因?yàn)閘inux2.6.14內(nèi)核需要更新版本的編譯器,所以需要下載交叉編譯器

ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

二、安裝文件

1、把gcc解壓到/usr/local/arm/3.4.1目錄下

2、接下來需要解壓linux內(nèi)核,輸入命令:

# tar -jxvf linux-2.6.14.tar.bz2

將內(nèi)核解壓到linux-2.6.14目錄下。

三、修改makefile文件

內(nèi) 核的編譯是根據(jù)makefile文件的指示進(jìn)行的,Makefile文件來組織內(nèi)核的各模塊之間的關(guān)系,記錄了各個(gè)模塊之間的相互聯(lián)系和依賴關(guān)系。首先修 改linux-2.6.14的根目錄下的makfile文件,須改的主要內(nèi)容是目標(biāo)代碼的類型和為編譯內(nèi)核指定一個(gè)編譯器。注釋掉以下內(nèi)容:

#ARCH ?= $(SUBARCH)

#CROSS_COMPILE ?=

增加如下內(nèi)容:

ARCH : = arm


CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux-


四、安裝根文件系統(tǒng)

1.首先對(duì)flash進(jìn)行分區(qū)。網(wǎng)上的經(jīng)典文章《Linux 2.6.10 以后版本對(duì)S3C2410的支持》僅提到了對(duì)Nand flash分區(qū)的方法,對(duì)Nor flash不適用。對(duì)Nor flash的分區(qū),是通過在linux/drivers/mtd/maps下增加特定mapping驅(qū)動(dòng)程序來實(shí)現(xiàn)。該目錄下的驅(qū)動(dòng)程序結(jié)構(gòu)相似,可以找 一個(gè)來修改成自己的。我用的是cfi_flagadm.c這個(gè)。

cp cfi_flagadm.c s3c2410.c

將FLASH_PHYS_ADDR和FLASH_SIZE這兩個(gè)宏分別修改成自己板子的flash起始地址和大小。然后修改結(jié)構(gòu)體數(shù)組flagadm_parts添加自己的分區(qū)信息。

接下來告訴內(nèi)核使用該驅(qū)動(dòng)程序。修改maps目錄下的Kconfig文件,該文件決定出現(xiàn)在menuconfig中的項(xiàng)目,在config MTD_CDB89712之后添加

config MTD_S3C2410

tristate "gggggg 2410 board"

修改該目錄下的Makefile,添加如下內(nèi)容:

obj-$(CONFIG_MTD_S3C2410) += s3c2410.o

現(xiàn)在make menuconfig時(shí),在MTD項(xiàng)目中將出現(xiàn)gggggg 2410 board選項(xiàng),選中它并重新編譯內(nèi)核就完成了分區(qū)工作,啟動(dòng)時(shí)將看到分區(qū)信息?,F(xiàn)在,內(nèi)核可以檢測(cè)到分區(qū),并找到了壓縮的RAMDISK,并試圖解壓 縮。如果你使用smdk2410默認(rèn)配置,這時(shí)會(huì)報(bào)錯(cuò),類似RAMDISK:incomplete 云云。解決辦法很簡單,將內(nèi)核配置中的BLK_DEV_RAM_SIZE的值從默認(rèn)的4096改為8192即可。

2.在linux/arch/arm/mach-s3c2410/mach-smdk2410.c中添加ramdisk支持相關(guān)的代碼。具體請(qǐng)參考我的文件貼圖。

3.修改啟動(dòng)參數(shù):

修改 linux/arch/arm/kernel/文件夾下的head.S文件如下:
ENTRY(stext)
/****************boot required ggggggg****************/
mov r0, #0
mov r1, #0xc1
ldr r2, =0x30000100
/*********************end****************************/
r0恒為0,r1為architecture ID。r2為啟動(dòng)地址。

五、支持啟動(dòng)時(shí)掛載devfs

為了我們的內(nèi)核支持devfs以及在啟動(dòng)時(shí)并在/sbin/init運(yùn)行之前能自動(dòng)掛載/dev為devfs文件系統(tǒng),修改fs/Kconfig文件

找到menu "Pseudo filesystems"

添加如下語句:

config DEVFS_FS

bool "/dev file system support (OBSOLETE)"

default y

config DEVFS_MOUNT

bool "Automatically mount at boot"

default y

depends on DEVFS_FS

六、配置內(nèi)核產(chǎn)生.config文件

cp arch/arm/configs/smdk2410_defconfig .config

make menuconfig

在smdk2410_defconfig基礎(chǔ)上,我所增刪的內(nèi)核配置項(xiàng)如下:

Loadable module support >

[*] Enable loadable module support

[*] Automatic kernel module loading

System Type >

[*] S3C2410 DMA support

Boot options >

Default kernel command string:

noinitrd root=/dev/mtdblock/2 init=/linuxrc console=ttySAC0,115200

#console=ttySAC0,115200使kernel啟動(dòng)期間的信息全部輸出到串口# # 0上.2.6內(nèi)核對(duì)于串口的命名改為ttySAC0,但這不影響用戶空間的串口編 #程。用戶空間的串口編程針對(duì)的仍是/dev/ttyS0等

Floating point emulation >

[*] NWFPE math emulation

This is necessary to run most binaries!

#接下來要做的是對(duì)內(nèi)核MTD子系統(tǒng)的設(shè)置

Device Drivers >

Memory Technology Devices (MTD) >

[*] MTD partitioning support

#支持MTD分區(qū),這樣我們?cè)谇懊嬖O(shè)置的分區(qū)才有意義

[*] Command line partition table parsing

#支持從命令行設(shè)置flash分區(qū)信息,靈活

RAM/ROM/Flash chip drivers >

<*> Detect flash chips by Common Flash

Interface (CFI) probe

<*> Detect nonCFI

AMD/JEDECcompatible

flash chips

<*> Support for Intel/Sharp flash chips

<*> Support for AMD/Fujitsu flash chips

<*> Support for ROM chips in bus mapping

NAND Flash Device Drivers >

<*> NAND Device Support

<*> NAND Flash support for S3C2410/S3C2440 SoC

Character devices >

[*] Nonstandard

serial port support

[*] S3C2410 RTC Driver

#接下來做的是針對(duì)文件系統(tǒng)的設(shè)置,本人實(shí)驗(yàn)時(shí)目標(biāo)板上要上的文件系統(tǒng)是ext2,故做如下配置

File systems >

<*> Second extended fs support #ext2的支持

Pseudo filesystems >

[*] /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的成果,devfs已經(jīng)被支持上了

Miscellaneous filesystems >

<*> Compressed ROM file system support (cramfs)

#支持cramfs

Network File Systems >

<*> NFS file system support

保存退出,產(chǎn)生.config文件.

.config文件能從提供的2.4.14.1的內(nèi)核包中找到,文件名為config.back.

七、編譯內(nèi)核

make zImage

八、下載到開發(fā)板就可以啟動(dòng)了。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉