CN106873913A - 一种嵌入式系统自适应不同flash进行分区的方法 - Google Patents
一种嵌入式系统自适应不同flash进行分区的方法 Download PDFInfo
- Publication number
- CN106873913A CN106873913A CN201710086556.0A CN201710086556A CN106873913A CN 106873913 A CN106873913 A CN 106873913A CN 201710086556 A CN201710086556 A CN 201710086556A CN 106873913 A CN106873913 A CN 106873913A
- Authority
- CN
- China
- Prior art keywords
- flash
- embedded system
- bootloader
- partition
- subregion
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种嵌入式系统自适应不同flash进行分区的方法,其实现过程为:基于嵌入式系统,且该嵌入式系统中主控芯片最开始运行的代码为BootLoader,用于初始化硬件,其实现过程为:在BootLoader增加自适应分区功能,即通过在BootLoader中集成flash驱动模块,来对flash进行读写操作。本发明的一种嵌入式系统自适应不同flash进行分区的方法与现有技术相比,可以避免因为不同的flash大小而开发维护不同的软件情景,根据flash大小做到分区自适应,达到软件兼容,零配置;基本原理是软件内置不同的分区表,根据flash的大小,可自动选取合适的分区表应用到系统,无需替换软件,实用性强,适用范围广泛,具有很好的推广应用价值。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种嵌入式系统自适应不同flash进行分区的方法。
背景技术
嵌入式系统不同于通用计算机系统,嵌入式系统的flash分区没有UI呈现,无需用户干预,常常将分区表预先放置到程序中。实施中又经常要求嵌入式的软件可以做到兼容不同的flash大小。
嵌入式系统的flash分区,往往由内置在软件模块中的分区表决定。如果变换flash大小,就必须调整源码中的flash分区配置,然后编译,再次烧录使能。不同的flash大小必须烧录携带不同分区表的程序。这样的方式有很多弊端,1)软件无法做到兼容,维护成本变大 2)对于一些初级用户替换不同的分区表有些困难,难以避免错误。
基于此,本文设计实现了一种根据flash大小,可以自动分区,自适应的方法。达到软件兼容,零配置。基本原理是软件内置不同的分区表,根据flash的大小,可自动选取合适的分区表应用到系统。
发明内容
本发明的技术任务是针对以上不足之处,提供一种嵌入式系统自适应不同flash进行分区的方法。
一种嵌入式系统自适应不同flash进行分区的方法,其实现过程为:
基于嵌入式系统,且该嵌入式系统中主控芯片最开始运行的代码为BootLoader,用于初始化硬件,其实现过程为:在BootLoader增加自适应分区功能,即通过在BootLoader中集成flash驱动模块,来对flash进行读写操作。
所述flash驱动模块包括自适应分区应用层、逻辑实现层、操作抽象层和Flash驱动层,其中,
自适应分区应用层用于根据用户定制条件完成分区的检查和更新;
逻辑实现层用于存储MBR/GPT分区表,并由系统内核来自动识别;
操作抽象层用于将Flash IO操作进行抽象,方便Flash移植性;
Flash驱动层则用于正常系统启动。
BootLoader在编译时,先内置flash size分区表,然后在嵌入式系统开机后,BootLoader初始化硬件后运行到自适应分区应用层;自适应分区应用层根据定制条件完成分区的检查和更新。
本发明的具体实现过程为,
首先获取Flash信息,该信息包括size信息、分区表信息;
根据Flash大小启动系统要求,选择合适的分区表;
检查Flash分区表和内置选择的分区表是否匹配,如果不匹配,强制更新分区表信息;
启动正常的系统。
本发明的一种嵌入式系统自适应不同flash进行分区的方法和现有技术相比,具有以下有益效果:
本发明提供的一种嵌入式系统自适应不同flash进行分区的方法,可以避免因为不同的flash 大小而开发维护不同的软件情景,根据flash大小做到分区自适应,达到软件兼容,零配置;基本原理是软件内置不同的分区表,根据flash的大小,可自动选取合适的分区表应用到系统,无需替换软件,实用性强,适用范围广泛,具有很好的推广应用价值。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1为本发明的实现流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如附图1所示,一种嵌入式系统自适应不同flash进行分区的方法,
嵌入式中的BootLoader往往是主控芯片最开始运行的一段代码,承担着初始化硬件,搬运kernel,引导kernel启动的任务。因为BootLoader启动在kernel启动之前,本文选择在BootLoader增加自适应分区功能。BootLoader需要集成flash driver,以便对flash进行读写操作。
和通用计算机系统一样,Flash分区常见的两种标准为MBR和GPT,MBR只能支持4个主分区或者3主分区+1扩展分区(包含任意数目的逻辑分区)而GPT确可以支持最多128个主分区。MBR相对比较过时,本文推荐使用GPT分区标准对flash进行分区。
由于Flash多种多样,为了提高软件的可移植性。我们需要对flash io操作进行抽象。整体的软件架构分为四部分,自适应分区应用层,GPT/MBR实现层,FlashIO抽象层,Flash驱动层。
其实现过程为:基于嵌入式系统,且该嵌入式系统中主控芯片最开始运行的代码为BootLoader,用于初始化硬件,其实现过程为:在BootLoader增加自适应分区功能,即通过在BootLoader中集成flash驱动模块,来对flash进行读写操作。
所述flash驱动模块包括自适应分区应用层、逻辑实现层、操作抽象层和Flash驱动层,其中,
自适应分区应用层用于根据用户定制条件完成分区的检查和更新;
逻辑实现层用于存储MBR/GPT分区表,并由系统内核来自动识别;
操作抽象层用于将Flash IO操作进行抽象,方便Flash移植性;
Flash驱动层则用于正常系统启动。
BootLoader在编译时,先内置flash size分区表,然后在嵌入式系统开机后,BootLoader初始化硬件后运行到自适应分区应用层;自适应分区应用层根据定制条件完成分区的检查和更新。
本发明的具体实现过程为,
首先获取Flash信息,该信息包括size信息、分区表信息;
根据Flash大小启动系统要求,选择合适的分区表;
检查Flash分区表和内置选择的分区表是否匹配,如果不匹配,强制更新分区表信息;
启动正常的系统。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (4)
1.一种嵌入式系统自适应不同flash进行分区的方法,其特征在于,其实现过程为:
基于嵌入式系统,且该嵌入式系统中主控芯片最开始运行的代码为BootLoader,用于初始化硬件,其实现过程为:在BootLoader增加自适应分区功能,即通过在BootLoader中集成flash驱动模块,来对flash进行读写操作。
2.根据权利要求1所述的一种嵌入式系统自适应不同flash进行分区的方法,其特征在于,所述flash驱动模块包括自适应分区应用层、逻辑实现层、操作抽象层和Flash驱动层,其中,
自适应分区应用层用于根据用户定制条件完成分区的检查和更新;
逻辑实现层用于存储MBR/GPT分区表,并由系统内核来自动识别;
操作抽象层用于将Flash IO操作进行抽象,方便Flash移植性;
Flash驱动层则用于正常系统启动。
3.根据权利要求1或2所述的一种嵌入式系统自适应不同flash进行分区的方法,其特征在于,BootLoader在编译时,先内置flash size分区表,然后在嵌入式系统开机后,BootLoader初始化硬件后运行到自适应分区应用层;自适应分区应用层根据定制条件完成分区的检查和更新。
4.根据权利要求3所述的一种嵌入式系统自适应不同flash进行分区的方法,其特征在于,本发明的具体实现过程为,
首先获取Flash信息,该信息包括size信息、分区表信息;
根据Flash大小启动系统要求,选择合适的分区表;
检查Flash分区表和内置选择的分区表是否匹配,如果不匹配,强制更新分区表信息;
启动正常的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710086556.0A CN106873913B (zh) | 2017-02-17 | 2017-02-17 | 一种嵌入式系统自适应不同flash进行分区的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710086556.0A CN106873913B (zh) | 2017-02-17 | 2017-02-17 | 一种嵌入式系统自适应不同flash进行分区的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106873913A true CN106873913A (zh) | 2017-06-20 |
CN106873913B CN106873913B (zh) | 2020-03-17 |
Family
ID=59167291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710086556.0A Active CN106873913B (zh) | 2017-02-17 | 2017-02-17 | 一种嵌入式系统自适应不同flash进行分区的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106873913B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110993016A (zh) * | 2019-12-24 | 2020-04-10 | 深圳Tcl数字技术有限公司 | 芯片预抄写的检测方法、装置及计算机可读存储介质 |
CN111538591A (zh) * | 2020-04-21 | 2020-08-14 | 广东天波信息技术股份有限公司 | 一种基于安卓系统兼容不同容量flash的方法、装置及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117330A (zh) * | 2011-03-04 | 2011-07-06 | 中山中珩数字科技有限公司 | 一种保护嵌入式Linux操作系统关键区域完整性的方法及系统 |
CN102662717A (zh) * | 2012-04-27 | 2012-09-12 | 深圳市掌讯通讯设备有限公司 | 一种嵌入式系统自引导启动方法 |
CN106095620A (zh) * | 2013-09-23 | 2016-11-09 | 恒鸿达科技有限公司 | 一种嵌入式Linux存储分区的开发方法 |
-
2017
- 2017-02-17 CN CN201710086556.0A patent/CN106873913B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117330A (zh) * | 2011-03-04 | 2011-07-06 | 中山中珩数字科技有限公司 | 一种保护嵌入式Linux操作系统关键区域完整性的方法及系统 |
CN102662717A (zh) * | 2012-04-27 | 2012-09-12 | 深圳市掌讯通讯设备有限公司 | 一种嵌入式系统自引导启动方法 |
CN106095620A (zh) * | 2013-09-23 | 2016-11-09 | 恒鸿达科技有限公司 | 一种嵌入式Linux存储分区的开发方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110993016A (zh) * | 2019-12-24 | 2020-04-10 | 深圳Tcl数字技术有限公司 | 芯片预抄写的检测方法、装置及计算机可读存储介质 |
CN110993016B (zh) * | 2019-12-24 | 2022-09-02 | 深圳Tcl数字技术有限公司 | 芯片预抄写的检测方法、装置及计算机可读存储介质 |
CN111538591A (zh) * | 2020-04-21 | 2020-08-14 | 广东天波信息技术股份有限公司 | 一种基于安卓系统兼容不同容量flash的方法、装置及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN106873913B (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106990958B (zh) | 一种扩展组件、电子设备及启动方法 | |
CN100377085C (zh) | 嵌入式操作系统硬件镜像启动优化的实现方法 | |
US8966236B2 (en) | Dynamically redirecting boot to another operating system | |
US20130290645A1 (en) | Techniques to prelink software to improve memory de-duplication in a virtual system | |
CN102841802B (zh) | 移动终端的软件升级方法 | |
EP2847668B1 (en) | Execution using multiple page tables | |
CN101183310A (zh) | 一种建立设备驱动的方法、设备驱动装置及单板 | |
CN105378689A (zh) | 统一可扩展固件接口(uefi)驱动器和协议 | |
CN107463388A (zh) | 一种uefi无盘启动方法 | |
CN105653330A (zh) | 一种基于SD卡的NorFlash烧写系统和方法 | |
US9672047B1 (en) | Systems and methods for accessing a bootable partition on a serial peripheral interface device | |
CN105354071A (zh) | 一种嵌入式软件兼容硬件的方法 | |
RU2510073C2 (ru) | Управление дескриптором типа для замороженных объектов | |
CN106873913A (zh) | 一种嵌入式系统自适应不同flash进行分区的方法 | |
CN103955389A (zh) | 一种基于pcm的系统启动方法 | |
CN106201605A (zh) | 基于FPGA和PowerPC的FPGA启动加载FLASH升级系统及方法 | |
TWI464583B (zh) | 取得觸發功能之指令的方法 | |
CN104866388A (zh) | 数据处理方法及装置 | |
CN103560934A (zh) | 一种电力猫生产测试方法及装置 | |
CN110837446A (zh) | 应用于嵌入式系统的设备管理方法及装置、介质以及嵌入式设备 | |
CN100465894C (zh) | 一种Java Processor启动时类装载方法 | |
WO2018120548A1 (zh) | 一种系统启动及运行的方法、装置、计算机存储介质 | |
CN106951268A (zh) | 一种申威平台支持NVMe硬盘启动的实现方法 | |
KR20150072963A (ko) | 다중시스템 및 이의 부팅 방법 | |
CN110990018B (zh) | 一种嵌入式系统的编译方法及编译系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210208 Address after: 250100 Inspur science and Technology Park, 1036 Inspur Road, hi tech Zone, Jinan City, Shandong Province Patentee after: Inspur Software Technology Co.,Ltd. Address before: 250100 First Floor of R&D Building 2877 Kehang Road, Sun Village Town, Jinan High-tech Zone, Shandong Province Patentee before: SHANDONG INSPUR BUSINESS SYSTEM Co.,Ltd. |
|
TR01 | Transfer of patent right |