首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式linux启动信息完全注释(2)

嵌入式linux启动信息完全注释(2)

从上面的信息,我们可以对flash类型特点有个比较明确的了解。


CPU clock rate: 200 MHz

开发板上所使用的CPU的主频为200MHZ


DRAM size is 128MB (128MB/0MB)

动态内存ram大小为128M。这里我们列举一下内存的类型及工作原理。
根据内存的工作原理可以划分出两种内存:DRAMSRAM
DRAM表示动态随机存取存储器。这是一种以电荷形式进行存储的半导体存储器。DRAM中的每个存储单元由一个晶体管和一个电容器组成。数据存储在电容器中。电容器会由于漏电而导致电荷丢失,因而DRAM器件是不稳定的。为了将数据保存在存储器中,DRAM器件必须有规律地进行刷新。
SRAM是静态的,因此只要供电它就会保持一个值。一般而言,SRAM DRAM要快,这是因为SRAM没有刷新周期。每个SRAM存储单元由6个晶体管组成,而DRAM存储单元由一个晶体管和一个电容器组成。相比而言,DRAMSRAM每个存储单元的成本要高。照此推理,可以断定在给定的固定区域内DRAM的密度比SRAM 的密度要大。

SRAM常常用于高速缓冲存储器,因为它有更高的速率;而DRAM常常用于PC中的主存储器,因为其拥有更高的密度。
在嵌入式系统中使用DRAM内存的设计比较广泛。

地址辅助说明:

先说明一下内存地址数字情况,主要是为了方便记忆。
可以访问的内存为4G
0x400000001GB处;0x00040000256K处,0x00020000128K处,0x900000002GB多的地方。
1M->0x00100000,
2M->0x00200000,
8M->0x00800000
16M->0x01000000,
32M->0x02000000
256M->0x10000000
64K->0x00010000
4K->0x00001000
这个是个快速记忆的方法,你可以根据地址中1的位置和其后0的个数来快速知道换算后的地址是在多少兆的地方。比如,1的后面50,代表1M的大小,60,代表16M,以此类推。



ROMFS found at 0x46040000, Volume name = rom 43f291aa

romfs,只读文件系统所在的地址为:0x46040000 (flash映射后的第3分区)
卷名为rom
romfsrootfs概念上有所区别。

flash在内存中的的起始地址为0x46000000,ROMFSflash分区上的起始位置为0x00040000,所以ROMFS在内存地址中的位置就为0x46040000。这个细节的部分可以参考flash分区时的地方,Creating 3 MTD partitions

romfs中包括kernelapp应用,不包括bootloaderfirmware信息头。romfs只读文件系统里的内容有很多种分类方法,我们可以将kernelapp同时放里面,作为根文件系统下的一个文件,也可以在flash上另外划分区域来分别存放。

VFS虚拟文件系统交换器
linux系统中,目前已经开发出多种文件系统,那么如何让这些文件系统能共存在一个系统中呢,从linux 2.0开始,引入了虚拟文件系统管理器 VFS的概念。
Linux 下的文件系统主要可分为三大块:

一是上层的文件系统的系统调用,

二是虚拟文件系统交换器 VFS(Virtual Filesystem Switch)

三是挂载到 VFS 中的各实际文件系统,例如 ext2jffs 等。
VFS的确切叫法是Virtual Filesystem Switch虚拟文件系统交换器,这里的VFS中的“S”是指的switch,这个需要强调一下的,它很容易被混淆成“system”,如果理解成“system”将是不正确的,请多加注意。
VFS是具体文件系统filesystem的一个管理器。
VFSLinux内核中的一个软件层,一种软件机制,它也提供了内核中的一个抽象功能,允许不同的文件系统共存,可以称它为 Linux 的文件系统管理者,与它相关的数据结构只存在于物理内存当中。所以在每次系统初始化期间,Linux 都首先要在内存当中构造一棵 VFS 的目录树。VFS 中的各目录其主要用途是用来提供实际文件系统的挂载点。而rootfs将是这个目录树的根结点的(root),即 "/"目录,VFS的结构就是从这个rootfs开始的。有了VFS,那么对文件的操作将使用统一的接口,将来通过文件系统调用对 VFS 发起的文件操作等指令将被 rootfs 文件系统中相应的函数接口所接管。

注意:rootfs并不是一个具体的文件系统类型,如jffs。它只是一个理论上的概念。在具体的嵌入系统实例中,可以将某种具体的文件系统设置为根文件系统rootfs,如我们可以设置romfs为根文件系统,也可以设置jffs为根文件系统。

这里的ROMFS只读文件系统只是一种具体的文件系统类型,也是在嵌入系统中经常使用到的类型。

看完了上面的内容,以后你对出现的类似“kernel Panic:VFS:Unable to mount root fs on 0:00的含义应该已经了解了。其中“VFS:”就是虚拟文件系统管理器操作时的输出信息了。

File linux.bin.gz found

linux kernel内核文件名,它是在只读文件系统romfs上的一个组成部分。
继承事业,薪火相传
返回列表