linux内核启动的原理 linux项目的存储方案

嵌入式技术

1368人已加入

描述

linux内核启动的原理

大家对单片机编程并不陌生,其程序的启动流程是将内部flash地址为0x8000000开始的代码拷贝到内存RAM中,然后从RAM启动并运行,那对于linux这个庞大的操作系统是怎么启动的呢?它也不例外,也是先将代码加载到内存中,然后从RAM启动,不过它需要U-boot,也就是我们常说的bootloader来引导,将外挂存储介质中的代码拷贝内存RAM中,然后再开始运行,linux启动过程如图1。

存储

Linux内核启动过程

图1

linux项目的存储方案

我们在做实际项目时,通常会选用EMMC或SPI NOR FLASH存储方案,EMMC可以选用主控的NAND FLASH+THGBMHG8C2LBALL,SPI NOR FLASH可以选择主控的SPI+W25Q256来设计方案,两种方案如图2:

存储

EMMC和SPI NOR FLASH方案原理图

图2

EMMC在LINUX内核中的配置

EMMC在linux内核中的配置过程,进入内核目录,输入make menuconfig命令,回车,进入图3:

存储

EMMC内核配置

图3

然后选择Device Drivers,回车进入图4

存储

EMMC内核配置

图4

选中MMC/SD/SDIO card support,回车进入图5:

存储

EMMC内核配置

图5

这样EMMC配置就完成了。

SPI NOR FLASH在LINUX内核中的配置

SPI NOR FLASH的配置方法和EMMC类似,返回到Device drivers界面如图6:

存储

SPI NOR FLASH内核配置

图6

SPI nor flash属于MTD存储技术,选择MTD回车进入图7:

存储

SPI NOR FLASH 内核配置

图7

选择SPI NOR 回车进入图8:

存储

存储

SPI NOR FLASH 内核配置

图8

由于我们项目用的freescale ,所以选择freescale, 可以根据实际情况选择,这样SPI nor flash就配置好了。

linux存储方案的选择

SPI nor flash的容量一般就只有几M,而且价格较贵,适合做一些文件系统较小,代码不多的项目,EMMC的容量比较大,可达1G,价格也比较便宜,适合做代码升级,大数据存储的项目,根据自己的项目需求来选择。

Linux内核启动环境变量设置

在uboot/include/configs目录下有一个与板子相关的头文件,通过命令行设置环境变量,选择内核以那种方式启动,如图9:

存储

linux内核启动方式选择

图9

红色框里表示,如果按键按下就从SPI nor flash启动,否则从EMMC启动。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分