CN104239077A - 启动引导程序的方法、装置及cpu - Google Patents
启动引导程序的方法、装置及cpu Download PDFInfo
- Publication number
- CN104239077A CN104239077A CN201310232721.0A CN201310232721A CN104239077A CN 104239077 A CN104239077 A CN 104239077A CN 201310232721 A CN201310232721 A CN 201310232721A CN 104239077 A CN104239077 A CN 104239077A
- Authority
- CN
- China
- Prior art keywords
- boot program
- nand flash
- stored
- cpu
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及电子通信领域,公开了一种启动引导程序的方法、装置及CPU。所述启动boot程序的方法中,预先将boot程序存储在nand flash中,并且,在中央处理器CPU中,设置有用于读取boot程序的mini boot程序,所述mini boot程序能够读取所述nand flash中存储的信息。在本方案中,首先根据mini boot程序,读取存储在nand flash中的boot程序,将读取到的boot程序存储至CPU对应的存储空间中,并由CPU启动所述存储的boot程序。其中,nand flash的成本低,读取速度快,从而解决了现有技术中在启动boot程序时所具有的成本高、启动慢的问题。
Description
技术领域
本发明涉及电子通信领域,特别是涉及一种启动引导程序的方法、装置及CPU。
背景技术
当前常用的flash(存储器),即闪存主要包括三种:serial flash(串行闪存存储器)、nor flash(并行闪存存储器)和nand flash(资料储存型闪存存储器)。这三种flash具有各自的特点,其中,nor flash存储数据稳定且读写速度适中,不过它的价格随着容量的增加而增加,价格较贵;serial flash存储数据稳定价格较低,但读写速度较慢,是nand flash的1/6左右;nand flash的读写速度较快,但是,不支持CPU(Central Processing Unit,中央处理器)对其地址空间的直接访问。在嵌入式系统中,如果用户触发了某个应用程序,需要CPU启动引导程序boot,再通过所述boot程序将用户触发的应用程序导入主存后,用户才可以使用该应用程序。其中,所述boot程序预先存储于flash存储器中。
现有技术中,CPU通常有两种方式启动boot程序,其中一种方式是将boot程序存储至nor flash中,CPU从所述nor flash中读取boot程序并存储至CPU对应的存储空间,再由CPU根据读取到的boot程序信息,启动所述boot程序;另一种方式是将boot程序存储至serial flash中,CPU从所述serial flash中读取boot程序并存储至CPU对应的存储空间,再由CPU根据读取到的boot程序信息,启动所述boot程序。
但是,发明人在本申请的研究过程中发现,由于nor flash的价格较高,且价格随着容量的增加而增加,采用第一种方式启动boot程序时,需要的成本较高;采用第二种方式启动boot程序时,由于serial flash的读写速度慢,因此启动boot程序的速度较慢。
发明内容
有鉴于此,本发明的目的在于提供一种启动boot程序的方法、装置及CPU,与现有技术中的第一种方式相比,可以降低成本,并且与现有技术中的第二种方式相比,可以提高启动boot程序的速度。具体实施方案如下:
一种启动boot程序的方法,所述boot程序存储在nand flash中,并且,在中央处理器CPU中设置有用于读取所述boot程序的mini boot程序,所述启动boot程序的方法包括:
根据所述mini boot程序,读取存储在所述nand flash中的所述boot程序;
将读取到的所述boot程序存储至与CPU对应的存储空间中,并启动所述存储的boot程序。
优选的,所述读取存储在nand flash中的boot程序,包括:
读取预先加载在所述boot程序中的数据头,以获取所述数据头中加载的boot程序的相关信息,所述相关信息包括:所述boot程序在所述nand flash中的开始地址,以及所述boot程序的容量;
根据所述boot程序的开始地址和容量,读取存储在所述nand flash中的所述boot程序。
优选的,还包括:
根据启动后的所述boot程序启动相应的应用程序。
优选的,所述应用程序存储在所述nand flash中。
相应的,本发明还公开了一种启动boot程序的装置,所述boot程序存储在nand flash中,并且,在中央处理器CPU中设置有用于读取所述boot程序的mini boot程序,所述启动boot程序的装置包括:
读取模块,用于根据所述mini boot程序,读取存储在所述nand flash中的所述boot程序;
启动模块,用于将读取到的所述boot程序存储至与CPU对应的存储空间中,并启动所述存储的boot程序。
优选的,所述读取模块包括:
数据头读取单元,用于读取预先加载在所述boot程序中的数据头,以获取所述数据头中加载的boot程序的相关信息,所述相关信息包括:所述boot程序在所述nand flash中的开始地址,以及所述boot程序的容量;
boot程序读取单元,用于根据所述boot程序的开始地址和容量,读取存储在所述nand flash中的所述boot程序。
优选的,还包括:
应用程序启动模块,用于根据启动后的所述boot程序启动相应的应用程序。
相应的,本发明还公开了一种CPU,所述CPU的芯片中集成有用于读取boot程序的mini boot程序,还包括:以上所述的读取boot程序的装置。
本发明所公开的启动boot程序的方法中,预先将boot程序存储在nandflash中,并且,在中央处理器CPU中,设置有用于读取boot程序的mini boot程序,所述mini boot程序能够读取所述nand flash中存储的信息。在本方案中,首先根据所述mini boot程序,读取存储在nand flash中的boot程序,继而将读取到的所述boot程序存储至CPU对应的存储空间中,从而使CPU根据读取到的所述boot程序启动应用程序。其中,所述nand flash的成本较低,且读取速度快,根据mini boot程序,CPU能够直接访问nand flash,解决了现有技术中,在启动boot程序时具有的成本高、读取速度慢的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的了一种启动boot程序的方法的工作流程示意图;
图2为本发明实施例公开的了一种启动boot程序的方法中,读取存储在nand flash中的boot程序的工作流程示意图;
图3为本发明实施例公开的一种启动boot程序的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术在启动boot程序时,第一种方式中存在的成本高,以及第二种方式中存在的启动速度慢的问题,本发明公开了一种启动boot程序的方法。其中,所述boot程序存储在nand flash中,并且,在中央处理器CPU中设置有用于读取所述boot程序的mini boot程序。参见图1所示的工作流程示意图,所述启动boot程序的方法包括:
步骤S11、根据所述mini boot程序,读取存储在所述nand flash中的所述boot程序;
步骤S12、将读取到的所述boot程序存储至与CPU对应的存储空间中,并启动所述存储的boot程序。
其中,所述与CPU对应的存储空间通常采用的是SDRAM(同步动态随机存储器,Synchronous Dynamic Random Access Memory)。当然,也可以采用其他种类的存储器,本发明对此不做限定。
本申请中,将待启动的boot程序存储在nand flash中,由于nand flash不支持CPU的直接访问,因此,在CPU中设置用于读取boot程序的mini boot程序。所述mini boot程序实际上是一个微型的boot程序,具备从nand flash中读取数据,引导boot程序的功能。在启动boot程序之前,根据不同的boot程序,预先设置相应的mini boot程序,并将其集成至CPU中。
本发明所公开的启动boot程序的方法中,预先将boot程序存储在nandflash中,并且,在中央处理器CPU中,设置有用于读取boot程序的mini boot程序,所述mini boot程序能够读取所述nand flash中存储的boot程序。在本方案中,首先根据所述mini boot程序,读取存储在nand flash中的boot程序,继而将读取到的所述boot程序存储至CPU对应的存储空间中,并启动所述存储的boot程序。其中,所述nand flash的成本较低,且读取速度快,根据miniboot程序,CPU能够直接访问nand flash,且将mini boot程序集成在CPU中所需的费用低,解决了现有技术中,在启动boot程序时具有的成本高、读取速度慢的问题。
其中,所述mini boot程序是一个小型的引导程序,通常将其保存在CPU自带的只读存储器中,其作用是引导存储在nand flash中的boot程序。
boot程序为一种引导程序,当所述boot程序被CPU启动后,才能够启动相应的应用程序。例如,uboot即为一种广泛应用的boot程序,能够集成各种设备驱动,负责引导存储于flash或其他设备中的应用程序。
进一步的,参见图2所示的工作流程示意图,在步骤S11中所述的读取存储在nand flash中的boot程序的方法包括:
步骤S111、读取预先加载在所述boot程序中的数据头,以获取所述数据头中加载的boot程序的相关信息,所述相关信息包括:所述boot程序在所述nand flash中的开始地址,以及所述boot程序的容量;
步骤S112、根据所述boot程序的开始地址和容量,读取存储在所述nandflash中的所述boot程序。
在本方案中,mini boot程序根据不同的boot程序被预先设定并存储在CPU中,所述mini boot程序一般存储在CPU自带的固定只读存储器内,这种情况下,所述mini boot程序将无法被改变或删除,也就是说,所述mini boot程序为固化的程序,不易被更改,从而增加了系统的安全性。
另外,所述mini boot程序在读取boot程序时,以数据块为单位。为了使所述mini boot程序能够识别已经烧录在nand flash中的boot程序,所述boot程序中预先被加载了数据头,所述数据头为所述nand flash中的第一个数据块。所述数据头中包含有boot程序的相关信息,即所述boot程序在所述nand flash中的开始地址,和所述boot程序的容量。在利用所述mini boot程序读取所述boot程序时,首先读取所述boot程序的数据头,获取所述boot程序在所述nandflash中的开始地址和容量,再根据所述开始地址和容量,从nand flash读取所述boot程序。
本方案中,通过所述mini boot程序读取所述boot程序,并将读取到的所述boot程序存储至与CPU对应的存储空间中,再由CPU启动所述存储的boot程序。其中所述nand flash的成本较低,且CPU根据mini boot程序从所述nandflash中读取数据的速度较快。
另外,在步骤S12后,本发明所公开的启动boot程序的方法还包括:根据启动后的所述boot程序启动相应的应用程序。进一步的,由于所述nand flash的成本低,通常将与所述boot程序相对应的应用程序也存储在所述nand flash中。
相应的,本发明还公开了一种启动boot程序的装置,所述boot程序存储在nand flash中,并且,在中央处理器CPU中设置有用于读取boot程序的miniboot程序,参见图3所示的结构示意图,所述启动boot程序的装置包括:读取模块1和启动模块2,其中,
所述读取模块1,用于根据所述mini boot程序,读取存储在nand flash中的boot程序;
所述启动模块2,用于将读取到的所述boot程序存储至与CPU对应的存储空间中,并启动所述存储的boot程序。
进一步的,所述读取模块1包括:数据头读取单元11和boot程序读取单元12,其中,
所述数据头读取单元11,用于读取预先加载在所述boot程序中的数据头,以获取所述数据头中加载的boot程序的相关信息,所述相关信息包括:所述boot程序在所述nand flash中的开始地址,以及所述boot程序的容量;
所述boot程序读取单元12,用于根据所述boot程序的开始地址和容量,读取存储在所述nand flash中的所述boot程序。
本发明所公开的启动boot程序的装置,包括读取模块和启动模块,在启动boot程序时,由读取模块根据预先存储在CPU中的mini boot程序,读取存储在nand flash中的boot程序,再通过启动模块将读取到的所述boot程序存储至与CPU对应的存储空间,并启动所述存储的boot程序。其中,所述nand flash的成本较低,且读取速度快,根据mini boot程序,CPU能够直接访问nand flash,解决了现有技术中,在启动boot程序时具有的成本高、读取速度慢的问题。
进一步的,本发明所公开的启动boot程序的装置,还包括:应用程序启动模块,所述应用程序启动模块用于根据启动后的所述boot程序,启动相应的应用程序。在本发明中,所述应用程序预先存储至所述nand flash中。
相应的,本发明还公开了一种CPU,所述CPU的芯片中集成有用于读取boot程序的mini boot程序,并且还集成有上述读取boot程序的装置,其中,所述读取boot程序的装置包括:读取模块1和启动模块2,并且,所述读取模块1包括数据头读取单元11和boot程序读取单元12,进一步的,还可以包括应用程序启动模块。
本发明所公开的CPU,根据读取模块和启动模块,启动存储在nand flash中的boot程序。其中,所述CPU读取的boot程序,存储至nand flash中,而所述nand flash的成本较低,且读取速度快。根据mini boot程序,CPU能够直接访问nand flash,成本低廉,启动速度快,可以应用到各种嵌入式设备或者移动设备,如游戏机等,具有广泛的应用前景。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种启动boot程序的方法,其特征在于,所述boot程序存储在nand flash中,并且,在中央处理器CPU中设置有用于读取所述boot程序的mini boot程序,所述启动boot程序的方法包括:
根据所述mini boot程序,读取存储在所述nand flash中的所述boot程序;
将读取到的所述boot程序存储至与CPU对应的存储空间中,并启动所述存储的boot程序。
2.根据权利要求1所述的方法,其特征在于,所述读取存储在nand flash中的boot程序,包括:
读取预先加载在所述boot程序中的数据头,以获取所述数据头中加载的boot程序的相关信息,所述相关信息包括:所述boot程序在所述nand flash中的开始地址,以及所述boot程序的容量;
根据所述boot程序的开始地址和容量,读取存储在所述nand flash中的所述boot程序。
3.根据权利要求1所述的方法,其特征在于,还包括:
根据启动后的所述boot程序启动相应的应用程序。
4.根据权利要求3所述的方法,其特征在于,所述应用程序存储在所述nand flash中。
5.一种启动boot程序的装置,其特征在于,所述boot程序存储在nand flash中,并且,在中央处理器CPU中设置有用于读取所述boot程序的mini boot程序,所述启动boot程序的装置包括:
读取模块,用于根据所述mini boot程序,读取存储在所述nand flash中的所述boot程序;
启动模块,用于将读取到的所述boot程序存储至与CPU对应的存储空间中,并启动所述存储的boot程序。
6.根据权利要求5所述的装置,其特征在于,所述读取模块包括:
数据头读取单元,用于读取预先加载在所述boot程序中的数据头,以获取所述数据头中加载的boot程序的相关信息,所述相关信息包括:所述boot程序在所述nand flash中的开始地址,以及所述boot程序的容量;
boot程序读取单元,用于根据所述boot程序的开始地址和容量,读取存储在所述nand flash中的所述boot程序。
7.根据权利要求5所述的装置,其特征在于,还包括:
应用程序启动模块,用于根据启动后的所述boot程序启动相应的应用程序。
8.一种CPU,其特征在于,所述CPU的芯片中集成有用于读取boot程序的mini boot程序,还包括:
权利要求5和7任一项所述的读取boot程序的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310232721.0A CN104239077A (zh) | 2013-06-13 | 2013-06-13 | 启动引导程序的方法、装置及cpu |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310232721.0A CN104239077A (zh) | 2013-06-13 | 2013-06-13 | 启动引导程序的方法、装置及cpu |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104239077A true CN104239077A (zh) | 2014-12-24 |
Family
ID=52227217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310232721.0A Pending CN104239077A (zh) | 2013-06-13 | 2013-06-13 | 启动引导程序的方法、装置及cpu |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239077A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976815A (zh) * | 2019-03-20 | 2019-07-05 | 深圳忆联信息系统有限公司 | 一种加速Nandboot的方法及其系统 |
CN116149742A (zh) * | 2023-04-17 | 2023-05-23 | 苏州萨沙迈半导体有限公司 | 芯片、芯片启动方法以及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855145A (zh) * | 2011-06-30 | 2013-01-02 | 安凯(广州)微电子技术有限公司 | 嵌入式电子设备启动方法及系统 |
CN102883220A (zh) * | 2012-09-20 | 2013-01-16 | 深圳市九洲电器有限公司 | 一种机顶盒启动方法及装置 |
-
2013
- 2013-06-13 CN CN201310232721.0A patent/CN104239077A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855145A (zh) * | 2011-06-30 | 2013-01-02 | 安凯(广州)微电子技术有限公司 | 嵌入式电子设备启动方法及系统 |
CN102883220A (zh) * | 2012-09-20 | 2013-01-16 | 深圳市九洲电器有限公司 | 一种机顶盒启动方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976815A (zh) * | 2019-03-20 | 2019-07-05 | 深圳忆联信息系统有限公司 | 一种加速Nandboot的方法及其系统 |
CN109976815B (zh) * | 2019-03-20 | 2022-03-29 | 深圳忆联信息系统有限公司 | 一种加速Nandboot的方法及其系统 |
CN116149742A (zh) * | 2023-04-17 | 2023-05-23 | 苏州萨沙迈半导体有限公司 | 芯片、芯片启动方法以及计算机可读存储介质 |
CN116149742B (zh) * | 2023-04-17 | 2023-12-15 | 苏州萨沙迈半导体有限公司 | 芯片、芯片启动方法以及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11626972B2 (en) | Data processing method and apparatus | |
EP2555110A1 (en) | Smart mobile phone system and boot method thereof | |
CN104541280A (zh) | 用于利用非易失性存储器装置的备选引导路径支持 | |
KR102229742B1 (ko) | 동적 이미지를 프리뷰하기 위한 방법 및 디바이스, 그리고 표현 패키지를 디스플레이하기 위한 방법 및 디바이스 | |
CN105446811A (zh) | 应用进程关联启动方法及关联启动装置 | |
CN103810020A (zh) | 虚拟机弹性伸缩方法及装置 | |
CN104395884A (zh) | 用于网页应用程序和浏览器扩展的数据存储层级 | |
US20120102314A1 (en) | Smart phone system and booting method thereof | |
CN108200196B (zh) | 基于分布式架构的数据储存、查询方法及系统 | |
CN104636165A (zh) | 移动设备启动方法及装置 | |
JP2022028890A (ja) | メモリアドレス指定方法と関連するコントローラ、メモリデバイス、及びホスト | |
CN106575273A (zh) | 用于扩展片上系统的存储器的系统和方法 | |
CN111984557A (zh) | 数据处理方法、装置和系统 | |
CN103942009A (zh) | 扩展终端中存储器的设备和方法 | |
CN104156248A (zh) | 一种在开机过程中显示定制化信息的方法和bios芯片 | |
CN110515671B (zh) | 初始化方法、初始化装置、终端设备及可读存储介质 | |
CN104808953A (zh) | 控制数据存储的方法、装置及移动终端 | |
CN106610828B (zh) | 基于Android系统的GIF动画播放方法及装置 | |
CN104239077A (zh) | 启动引导程序的方法、装置及cpu | |
CN105320543A (zh) | 加载软件模块的方法和装置 | |
CN105242941A (zh) | 烧录方法及装置 | |
WO2017202128A1 (zh) | 非linux系统软件boot参数传递方法及系统 | |
KR20160004728A (ko) | 메모리 시스템 및 데이터 저장 장치 | |
KR20200068275A (ko) | 저장 장치를 초기화하는 방법 및 전자 장치 | |
CN102117245A (zh) | 嵌入式设备及其系统可执行文件分割加载和启动方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141224 |
|
RJ01 | Rejection of invention patent application after publication |