APP下载

一种使用存储介质驱动的方式

2017-07-25蔡枫福州瑞芯微电子股份有限公司

数码世界 2017年7期
关键词:存储介质固件驱动程序

蔡枫 福州瑞芯微电子股份有限公司

一种使用存储介质驱动的方式

蔡枫 福州瑞芯微电子股份有限公司

现代SoC(System on chip,系统芯片)的设计越来越复杂。Boot rom的功能也越来越强大。传统的boot rom只在启动的时候使用一次。之后就再也不会用到了。本文介绍了一种利用boot rom中的驱动程序来驱动存储介质的方法。

Boot rom 驱动程序 存储介质 函数 固件 静态随机存储器 内存

1 SoC介绍

系统芯片(英语:System on Chip,缩写:SoC)是一个将电脑或其他电子系统集成到单一芯片的集成电路。系统芯片可以处理数字信号、模拟信号、混合信号甚至更高频率的信号。系统芯片常常应用在嵌入式系统中。系统芯片的集成规模很大,一般达到几百万门到几千万门。

尽管微控制器通常只有不到100 kB的随机存取存储器,但是事实上它是一种简易的、功能弱化的单芯片系统,而“系统芯片”这个术语常被用来指功能更加强大的处理器,这些处理器可以运行Windows和Linux的某些版本。系统芯片更强的功能要求它具备外部存储芯片,例如有的系统芯片配备了闪存。系统芯片往往可以连接额外的外部设备。系统芯片对半导体器件的集成规模提出了更高的要求。为了更好地执行更复杂的任务,一些系统芯片采用了多个处理器核心。

2 Boot Rom介绍

SoC生产的时候会把一段程序固化在芯片的rom中,芯片上电的时候会从rom中的某个特定地址开始运行。这个rom就叫做Boot Rom。

3 现有技术的现状、缺陷和不足

现代SoC的固件一般包含Bootloader,kernel等。SoC中固化有boot rom。如下表:随着SoC功能越来越强大,设计越来越复杂,Boot rom的功能也越来越强大。由于boot rom中的启动代码需要从不同的存储介质中加载下一级的bootloader。所以boot rom中必然包含不同存储介质的驱动程序。

由于bootloader也需要从不同的存储介质中加载下一级的固件。所以bootloader中也必然包含不同存储介质的驱动程序。

由于在kernel中也可能有需要访问不通的存储介质。所以kernel中也可能包含不通存储介质的驱动程序。

这样,在固件的不同部分包含了多份存储介质的驱动。这造成bootloader,kernel的固件大小变大,从而造成了存储介质空间的浪费,同时由于bootloader和kernel是在静态随机存储器或者内存中中运行的。这也造成了静态随机存储器和内存的空间的浪费。

本文提出了一种方法,让固件的不同部分使用boot rom中的存储介质的驱动。从而降低了固件大小,减小了对存储介质空间需求,对静态随机存储器大小的需求,对内存大小的需求。

4 总体思路

SoC启动后会将boot rom中的代码加载到静态随机存储器中运行。由于boot rom是在芯片生产时固化在芯片中的。所以只能让bootloader,kernel等调用boot rom中的存储介质的驱动。

要保证这部分代码不被后面的固件覆盖。然后申明一个函数指针。把函数指针指向对应需要调用的函数在静态随机存储器中的地址。如下,func为申明的函数指针,para1~3为传入所调用的函数的参数。这里只是举例,实际使用时需要根据所调用的boot rom的函数所需的参数个数以及类型来修改。0xabcdefgh为对应的函数在静态随机存储器中的地址。

5 流程图

6 采用该方案后得到的效果

①Bootloader可以使用bootrom的存储介质的驱动

②Kernel使用可以bootrom的存储介质的驱动

③固件大小变小

④存储固件的存储介质空间需求变小

⑤静态随机存储器大小需求变小

⑥内存大小需求变小

[1]Integrated Circuit Test Engineering: Modern Techniques

猜你喜欢

存储介质固件驱动程序
尼康旗舰Z9升级新固件延长高速连拍时间
HDFS数据动态分布设计与实现
阻止Windows Update更新驱动程序
计算机硬件设备驱动程序分析
电子档案离线存储介质的选择分析
基于固件的远程身份认证
英特尔发布免费固件引擎
提取ROM固件中的APP
妙用鼠标驱动
驱动程序更新与推荐