在NANDFLASH 上建立完全独立于宿主机的 linux 系统 序言.pdf
文本预览下载声明
在 NANDFLASH 上建立完全独立于宿主机的linux 系统
序言
本文的目的 总结个人在学习嵌入式 linux 的过程中获得的一些经验和教训,让爱好 ARM 和 linux
的人们在探索的路上少走一些弯路 。如果其中有写的不正确的地方,希望大家能雅正,让我们大家一起共同
学习,共同进步 。
第一章 概论
1.1 硬件环境
主机硬件环境:HP compaq nc6000
目标板硬件环境:友善之臂的SBC2410
CPU:S3C2410
SDRAM:HY57V561620
NAND FLASH:K9F1208U0B (64M)
Ethernet Card:CS8900A
工具介绍:串口线,交叉网线,简易 JTAG 板
1.2 软件环境
主机软件环境:Ubuntu 6.06
arm-linux-gcc V 4.1.0( 自己参照 LFS 文档制作):编译内核
arm-linux-gcc V 2.95.3 网上下载,下载地址:编译 U-boot
.uk/pub/armlinux/toolchain
目标板的运行环境:
启动程序:U-boot 1.1.4
内核:linux 3
应用程序:busybox-
1.3 移植内容
该文的目的 为了实现将嵌入式 linux 的所有运行都独立于宿主机,抛弃 NORFLASH 上的bootloader
的启动方式,实现对 NANDFLASH 上的bootloader 的支持,并支持从 NANDFLASH 上 自动的启动加载内核 。内
核加载的根文件系统为 YAFFS,可以实现对 NANDFLASH 的随意修改,所以,其实现的难点可以分为以下几个
方面 。
1.3.1 从 NANDFLASH 启动的Bootloader 的支持
我们知道,公版的U-boot 支持从 NorFlash 的启动,其源代码中也有 NANDFLASH 的部分,但 缺乏
最底层的针对相应的NANDFLASH 的驱动 。所以我们要完成这个部分的修改 。
1.3.2 U-boot 的使用
如何使用 U-boot 来实现 linux 的内核的下载与烧写到 NANDFLASH 中,以及实现上电的自动启动 。
1.3.3 支持从 NANDFLASH 启动内核的编译
由于我们在软件的调试阶段,我们使用的 nfs 协议来进行文件系统的加载,现在我们可能需要修
改内核的部分编译,以达到我们的目的。
1.3.4 yaffs 文件系统的制作
由于我们将 yaffs 作为系统的根文件系统,所以我们要在系统启动之前建立一个完整的yaffs 文件
系统 。
第二章 BootLoader 的NANDFLASH 支持
有疑问请联系 ty3247@163.com 欢迎大家一起讨论 、共同进步 !
bootloader 系统启动之后最先被运行的部分,完成的功能就 从指定的地点将将内核程序调入内
存中运行,这可以 通过 tftp 协议的,可以 通过 nfs 协议的,也可以 通过从 nandflash 中调入的。目
前被广泛使用的有两种bootloader,vivi 与 u-boot,其中vivi 由韩国三星公 开发的,大量的代码从
linux 的内核代码中迭代,只支持三星的SOC 芯片,u-boot 德国人开发的一个能够支持大部分硬件架构
ARM 、PPC 、MIPS 、X86 的bootloader 。由于其功能非常强大,所以在 linux 的启动中被广泛的使用,其支持
NORFLASH 的启动,但 由于 NORFLASH 的价格比较高,所以我们大部分的设计中没有采用,而NANDFLASH
由于其容量大,价格低,完善的文件系统支持,已经在产品中被广泛的使用,
显示全部