| |

iFix 爱修网

 找回密码
 注册

QQ登录

只需一步,快速开始

iFix爱修网知识星球,等待你的加入。。。
查看: 7881|回复: 50

主板引导程序和主程序之间的关系(转载)

  [复制链接]
发表于: 2018-11-15 08:24:32
| 显示全部楼层 |阅读模式
主板引导程序和主程序之间的关系
2018-15-158:09阅读:1,155
在现在的基于LINUX或是Android系统内核的主板软件方案中,FLASH一般有两种!一种称为引导程序,即所谓的MBOOT.另一种称为主程序,即MAIN FLASH. 这两种软件之间是什么关系呢。。下面我来简单的介绍一下。
引导程序在主板上属于比较底层的软件,它的作用只有两个:
1,初始化硬件。。在主板上电后,当CPU的基本工作条件满足后,CPU会按照引导程序的指令对主板的硬件比如DDR,各类寄存器,以及总线上的控制单元等进行初始化。初始化是硬件正常使用的关键条件,初始化不正常这个硬件就可能工作异常。
2,引导系统内核。当引导程序完成硬件的初始化后,它剩下的最重要的任务就是将系统内核的镜像加载到DDR即内存中了。当引导程序把内核镜像加载到内存中后,经过简单的CPU使用权限移交,CPU就开始运行解压运行系统内核了~也就是说在CPU运行主程序之前,引导程序是完全控制CPU的使用权的!当权限移交后,引导程序在理论上也就没有任何作用了。
引导程序一般来说容量较小,在大多数MSTAR方案的主板上,一般会单独用一块NOR FLASH比如EN25F16之类来单独存放引导程序。而在MTK方案中,引导程序往往和主程序一起存放在NAND FLASH或是EMMC之中。
从某种意义上讲,引导程序是系统硬件正常运行的一个前提,因此引导程序有问题往往是无法正常开机的,并且可能导致机器无法强制升级。如果查看打印信息的话往往是没有打印信息输出!!当然,部分机型开机死机或是自动关机也可能是引导程序引起的。这主要是因为引导程序中对部分硬件的参数没有进行合理处理,比如对DDR的参数优化处理的不好就可能导致这个现象。
主程序的作用大家就很清楚了,机器开机后执行的控制指令,以及对画面图像的处理等等都是按照主程序内部的指令来进行的。新型主板的主程序由于软件比较大,往往存储在NAND FLASH或是EMMC中。CPU通过8条数据线以及若干条控制线和其进行通讯。其程序往往是首先加载到DDR中,经过解压后CPU再将指令加载到内部的缓存中执行。主程序有问题,出现的故障也各式各样。这里不再一一讲述~需要注意的是在软件的加载以及执行过程中,DDR的作用是很重要的,在有些拥有多块DDR的主板上执行引导程序的DDR可能 和执行主程序的DDR都不是同一块,具体可以通过打印信息看的很明了。
关于FLASH ..一般来说我们常见的FLASH一般有3类,1,NOR FLASH 类似于W25X40,EN25B64,MX25L128之类的。他们利用SPI总线和CPU机型通讯,一般来说容量偏小,读写速率偏低。。在NOR FLASH 的基础上又进一步开发出了NAND FLASH。比如HY27UF082G。该类型FLASH具有容量大,读写速率快的特点,利用8位数据线和几根控制线和CPU铜讯,现在是大多数主板上主程序的存储载体。但是NAND FLASH有一个缺点就是不同厂商的NAND FLASH虽然引脚定义近似,但是在使用上却有差别,兼容性差。使得主板开发时,软件设计师不得不针对各个厂商的特点进行针对性设计,开发难度较大。正是因为这个原因。EMMC出现了!EMMC简单来描述就相当于一个具有通用接口的NAND FLASH,它内部除了集成了一个NAND FLASH 外还集成了一个控制器。这个控制器在CPU和内部NAND FLASH之间提供了一个桥梁的作用。正是因为这个控制器的存在,不同厂商生产的EMMC具有了很高的兼容性!EMMC和CPU通讯的方式仍然采用8根数据线和几根控制线,但是CPU无法再访问EMMC内部NAND FLASH的物理存储单元了,只能通过虚拟地址借助EMMC内部的控制器对存储单元进行读写控制操作。

回复

使用道具 举报

发表于: 2018-11-15 08:48:29
| 显示全部楼层
看不懂,有点复杂。主要是引导程序那里下载。
回复 支持 1 反对 0

使用道具 举报

发表于: 2018-11-15 08:49:34
| 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

发表于: 2018-11-15 09:30:48
| 显示全部楼层
谢谢你的分享
回复 支持 反对

使用道具 举报

发表于: 2018-11-15 12:58:51
| 显示全部楼层
楼主的帖子真好,谢谢。
回复 支持 反对

使用道具 举报

发表于: 2018-11-15 13:23:58
| 显示全部楼层
Thank you for your post.
回复 支持 反对

使用道具 举报

发表于: 2018-11-15 13:46:40
| 显示全部楼层

看不懂,有点复杂。主要是引导程序那里下载。
回复 支持 反对

使用道具 举报

发表于: 2018-11-15 16:15:22
| 显示全部楼层
谢谢楼主的分享
回复 支持 反对

使用道具 举报

发表于: 2018-11-16 18:06:16
| 显示全部楼层
Thank you very much for the tutorial highlighting the initialization stages.
回复 支持 反对

使用道具 举报

发表于: 2018-11-16 19:19:24
| 显示全部楼层
感谢楼主分享资料
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|||iFix 爱修网 ( 粤ICP备2021135374号 )

粤公网安备 44060602002064号

GMT+8, 2024-4-20 07:08 , Processed in 0.066594 sec., 11 queries .

Powered by Discuz! X3.4

Release 20191201, © 2001-2024 Comsenz Inc.

MultiLingual version, Rev. 850, © 2009-2024 codersclub.org

快速回复 返回顶部 返回列表