加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flash启动

发布时间:2020-12-15 06:54:21 所属栏目:百科 来源:网络整理
导读:Flash 启动方式 大多数嵌入式系统上都使用 Flash 存储介质。 Flash 有很多类型,包括 NOR Flash 、 NAND Flash 和其他半导体盘。其中, NOR Flash (也就是线性 Flash )使用最为普遍。 NOR Flash 可以支持随机访问,所以代码是可以直接在 Flash 上执行的。

Flash启动方式

大多数嵌入式系统上都使用Flash存储介质。Flash有很多类型,包括NOR FlashNAND Flash和其他半导体盘。其中,NOR Flash(也就是线性Flash)使用最为普遍。

NOR Flash可以支持随机访问,所以代码是可以直接在Flash上执行的。Bootloader一般是存储在Flash芯片上的。另外,Linux内核映像和RAMDISK也可以存储在Flash上。通常需要把Flash分区使用,每个区的大小应该是Flash擦除块大小的整数倍。图6.2Bootloader和内核映像以及文件系统的分区表。

6.2? Flash存储示意图

Bootloader一般放在Flash的底端或者顶端,这要根据处理器的复位向量设置。要使Bootloader的入口位于处理器上电执行第一条指令的位置。

接下来分配参数区,这里可以作为Bootloader的参数保存区域。

再下来内核映像区。Bootloader引导Linux内核,就是要从这个地方把内核映像解压到RAM中去,然后跳转到内核映像入口执行。

然后是文件系统区。如果使用Ramdisk文件系统,则需要Bootloader把它解压到RAM中。如果使用JFFS2文件系统,将直接挂接为根文件系统。这两种文件系统将在第12章详细讲解。

最后还可以分出一些数据区,这要根据实际需要和Flash大小来考虑了。

这些分区是开发者定义的,Bootloader一般直接读写对应的偏移地址。到了Linux内核空间,可以配置成MTD设备来访问Flash分区。但是,有的Bootloader也支持分区的功能,例如:Redboot可以创建Flash分区表,并且内核MTD驱动可以解析出redboot的分区表。

除了NOR Flash,还有NAND FlashCompact FlashDiskOnChip等。这些Flash具有芯片价格低,存储容量大的特点。但是这些芯片一般通过专用控制器的I/O方式来访问,不能随机访问,因此引导方式跟NOR Flash也不同。在这些芯片上,需要配置专用的引导程序。通常,这种引导程序起始的一段代码就把整个引导程序复制到RAM中运行,从而实现自举启动,这跟从磁盘上启动有些相似。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读