CN101354660B - 嵌入式软件程序的运行方法、装置及其系统 - Google Patents

嵌入式软件程序的运行方法、装置及其系统 Download PDF

Info

Publication number
CN101354660B
CN101354660B CN 200810222250 CN200810222250A CN101354660B CN 101354660 B CN101354660 B CN 101354660B CN 200810222250 CN200810222250 CN 200810222250 CN 200810222250 A CN200810222250 A CN 200810222250A CN 101354660 B CN101354660 B CN 101354660B
Authority
CN
China
Prior art keywords
data
storage space
storing
data identification
identification
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.)
Expired - Fee Related
Application number
CN 200810222250
Other languages
English (en)
Other versions
CN101354660A (zh
Inventor
张华�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CN 200810222250 priority Critical patent/CN101354660B/zh
Publication of CN101354660A publication Critical patent/CN101354660A/zh
Application granted granted Critical
Publication of CN101354660B publication Critical patent/CN101354660B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种嵌入式软件程序的运行方法,包括:在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在存储有需加载的数据的存储空间中获取与该数据标识对应的数据,所述存储空间与存储所述程序的存储空间为物理上独立的存储空间;将获取的所述数据加载到所述程序中。本发明实施例还提供了一种嵌入式软件程序的运行装置及其系统。采用本发明提供的方案能够解决现有技术中将程序运行时需要加载的数据直接写入到程序中,从而导致程序占用运行程序的系统的存储空间较大的问题。

Description

嵌入式软件程序的运行方法、装置及其系统
技术领域
本发明涉及计算机领域,尤其涉及一种嵌入式软件程序的运行方法、装置及其系统。
背景技术
在进行嵌入式软件程序的开发时,除了涉及到程序本身的数据外,还会涉及到大量在程序运行时需要加载的数据,由于一般的嵌入式软件程序不提供动态加载数据的运行模式,所以在程序的运行过程中,就不能按照动态加载数据的方式来运行加载的数据,而是只能按照把程序运行时需要加载的数据直接写入到程序中的方式,以实现对数据的加载。
由于运行嵌入式软件程序的系统自身的存储空间较小,从而采用上述将程序运行时需要使用的加载数据直接写入到程序中的方式,编写出的程序将会占用运行嵌入式软件程序的系统较大比例的存储空间,因此会导致运行嵌入式软件程序的系统自身的存储资源比较紧张。
发明内容
本发明实施例提供一种嵌入式软件程序的运行方法,用以解决现有技术中将程序运行时需要加载的数据直接写入到程序中,从而导致程序占用运行程序的系统的存储空间较大的问题。
对应的,本发明实施例还提供一种嵌入式软件程序的运行装置及其系统。
为此,本发明实施例采用以下技术方案:
一种嵌入式软件程序的运行方法,包括:
在嵌入式软件程序运行过程中,当需加载数据时,根据所述数据的数据标识,在存储有需加载的数据的存储空间中获取与该数据标识对应的数据,所述存储空间与存储所述程序的存储空间为物理上独立的存储空间,其中,根据需加载的数据的数据标识时,在数据标识与需加载的数据的存储地址的对应关系中,查找与所述数据标识对应的存储地址,根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据;将获取的所述数据加载到所述程序中。
一种嵌入式软件程序的运行装置,包括获取单元,用于在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在存储有需加载的数据的存储空间中获取与该数据标识对应的数据,所述存储空间与存储所述程序的存储空间为物理上独立的存储空间,其中,根据需加载的数据的数据标识时,在数据标识与需加载的数据的存储地址的对应关系中,查找与所述数据标识对应的存储地址,根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据;加载单元,用于将获取单元获取的所述数据加载到所述程序中。
一种嵌入式软件程序的运行系统,包括嵌入式软件程序的运行装置以及存储有所述程序需加载的数据的存储空间,所述存储空间与存储所述程序的存储空间为物理上独立的存储空间,其中所述装置包括获取单元,用于在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在所述存储有需加载的数据的存储空间中获取与该数据标识对应的数据,其中,根据需加载的数据的数据标识时,在数据标识与需加载的数据的存储地址的对应关系中,查找与所述数据标识对应的存储地址,根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据;加载单元,用于将获取单元获取的所述数据加载到所述程序中。
本发明实施例提供的嵌入式软件程序的运行方案,通过程序在运行过程中需加载数据时,根据需加载的数据对应的数据标识,在和存储有程序的存储空间物理上相互独立的存储空间中获取与数据标识对应的需加载的数据,并将获取的所述数据加载到所述程序中,从而避免了将程序中需加载的数据写入到程序中,而是在程序需要运行该需加载的数据时,才从对应的存储空间中获取并加载所述数据,从而使得程序本身占用的存储空间变得较小。
附图说明
图1为本发明实施例提供的一种嵌入式软件程序的运行方法的具体流程示意图;
图2为本发明实施例中根据数据标识在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据的具体流程示意图;
图3为本发明实施例中根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据的具体流程示意图;
图4为本发明实施例提供的一种嵌入式软件程序的运行装置具体结构示意图;
图5为本发明实施例提供的一种嵌入式软件程序的运行系统的具体结构示意图。
具体实施方式
本发明实施例提供一种嵌入式软件程序的运行方法,当需加载数据时,根据需加载的数据的数据标识,从与存储所述程序的存储空间物理上独立的存储空间中获取与该数据标识对应的数据,并将获取的数据加载到所述程序中,从而避免了现有技术中需加载的数据是直接写入到嵌入式软件程序中,从而导致程序占用运行程序的系统的存储空间较大的问题。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
如图1所示,为本发明实施例提供的一种嵌入式软件程序的运行方法的具体流程示意图,包括:
步骤11,在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在存储有需加载的数据的存储空间中获取与该数据标识对应的数据,其中存储空间与存储所述程序的存储空间为物理上独立的存储空间;
步骤12,将获取的所述数据加载到所述程序中。
在步骤11中,以用于开发便携式多媒体播放器(PMP,Portable MultimediaPlayer)项目的嵌入式软件程序为例,其中存储该嵌入式软件程序的存储空间与存储该程序所需加载的数据的存储空间在物理上是相互独立的。其中,嵌入式软件程序是存储在嵌入式系统内部的存储空间中,而存储所述需加载的数据的存储空间则可以为嵌入式系统外部的非易失闪存存储器(NAND Flash)。
当需加载的数据要存储到NAND Flash中时,首先判断NAND Flash中各个存储块是否都能使用,如果判断发现有的存储块为不能使用的坏存储块,则后续不再将需加载的数据存储到被判断为不能使用的存储块中。在判断结果确定出所有能使用的好的存储块后,考虑到如果长期读写NAND Flash中的同一块存储块会减少NAND Flash的使用寿命的问题,因此,可以进一步确定各个好的存储块的使用次数,并根据确定的次数,优先选择使用次数较少的存储块对需加载的数据进行存储。
在上述步骤11中根据该数据标识,在存储有需加载的数据的存储空间中获取与该数据标识对应的数据的具体流程示意图如图2所示,包括:
步骤21,根据所述数据标识,在数据标识与需加载的数据的存储地址的对应关系中,查找与所述数据标识对应的存储地址;
步骤22,根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据。
在上述的步骤22中,数据标识与需加载的数据的存储地址的对应关系可由下表表示,该表中除了存储数据标识与需加载的数据的存储地址外,还可以存储需加载的数据所占用的存储空间的大小等信息:
表1:
数据标识 存储地址 存储空间的大小
... ... ...
... ... ...
以用于开发便携式多媒体播放器PMP项目的嵌入式软件程序为例,该表在所述程序中占用的空间非常小,一般在1kB以内,因此,在程序中增加如表1这样的用于指示所述对应关系的存储结构,对整个程序占用存储空间的大小基本上不会造成什么影响。需要说明的是,如果需加载的数据的数据标识被设置为与该数据的存储空间直接对应,也可以直接根据该数据标识确定该数据的存储空间,而不需要从上述的对应关系中查找存储地址。
在上述步骤22中根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据的具体流程示意图如图3所示,包括:
步骤31,根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第一部分数据和地址偏移值;
步骤32,根据所述获取的地址偏移值指示的下一存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第二部分数据,以此类推直至获取到与该数据标识对应的所有数据。
具体地,同样以用于开发PMP项目的嵌入式软件程序为例,当数据存储到NAND Flash中时,如果需加载的数据的数据量较大,则NAND Flash中一块存储块的存储空间大小不能满足需加载的数据的存储空间需求,因此,存储该需加载的数据至少需要两个存储块,且这两个存储块有可能不相邻。在这种情况下,由于需加载的数据的数据标识只与存储第一部分数据的存储空间相对应,因此,就需要在存储第一部分数据的存储空间中,存储第二部分数据的存储块的地址偏移值,比如,可以在NAND Flash的存储块中的最后64个字节中记录该地址偏移值,这样,后续就能够根据获取到的地址偏移值指示的下一存储地址,在存储有第二部分数据的存储块中的对应位置上,获取与所述数据标识对应的第二部分数据,以此类推,直至获取到与该数据标识对应的所有需加载的数据。
相应地,本发明实施例提供一种嵌入式软件程序的运行装置,用以解决现有技术中将需加载的数据直接写入到嵌入式软件程序中,而导致的程序占用运行程序的系统的存储空间较大的问题。本发明实施例提供的该装置的具体结构示意图如图4所示,包括:
获取单元41,用于在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在存储有需加载的数据的存储空间中获取与该数据标识对应的数据,所述存储空间与存储所述程序的存储空间为物理上独立的存储空间;
加载单元42,用于将获取单元41获取的所述数据加载到所述程序中。
其中,获取单元41可以具体包括:
查找模块411,用于在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在数据标识与需加载的数据的存储地址的对应关系中,查找与所述数据标识对应的存储地址;获取模块412,用于根据查找模块411查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据。如果需加载的数据的数据标识被设置为与该数据的存储空间直接对应,也可以直接根据该数据标识确定该数据的存储空间,而不需要对存储地址进行查找。
较佳地,获取模块412可以根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第一部分数据和地址偏移值;以及根据所述获取的地址偏移值指示的下一存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第二部分数据,以此类推直至获取到与该数据标识对应的所有数据。
此外,本发明实施例还提供一种嵌入式软件程序的运行系统,其具体结构如图5所示,包括嵌入式软件程序的运行装置51,以及存储有所述程序需加载的数据的存储空间52,存储空间52与存储所述程序的存储空间为物理上独立的存储空间。
其中,嵌入式软件程序的运行装置51具体包括:获取单元511,用于在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在存储空间52中获取与该数据标识对应的数据;加载单元512,用于将获取单元511获取的数据加载到所述程序中。
以用于PMP项目的嵌入式软件程序为例,上述的存储空间52可以为嵌入式系统外部的NAND Flash,当需加载的数据要存储到NAND Flash中时,首先判断NAND Flash中各个存储块是否都能使用,如果判断发现有的存储块为不能使用的坏存储块,则后续不再将需加载的数据存储到被判断为不能使用的存储块中。在判断结果确定出所有能使用的好的存储块后,考虑到如果长期读写NAND Flash中的同一块存储块会减少NAND Flash的使用寿命的问题,因此,可以进一步确定各个好的存储块的使用次数,并根据确定的次数,优先选择使用次数较少的存储块,对需加载的数据进行存储。
较佳地,上述的获取单元511具体包括:查找模块5111,用于在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在数据标识与需加载的数据的存储地址的对应关系中,查找与所述数据标识对应的存储地址;
获取模块5112,用于根据查找模块5111查找到的存储地址,在存储有需加载的数据的存储空间52中,获取与该数据标识对应的数据。
其中,获取模块5112根据查找到的存储地址,在存储有需加载的数据的存储空间52中,获取与该数据标识对应的第一部分数据和地址偏移值;以及根据所述获取的地址偏移值指示的下一存储地址,在存储有需加载的数据的存储空间52中,获取与该数据标识对应的第二部分数据,以此类推直至获取到与该数据标识对应的所有数据。
具体地,同样以用于开发PMP项目的嵌入式软件程序为例,当需加载的数据存储到NAND Flash中时,如果该数据的数据量较大,则NAND Flash中一块存储块的存储空间大小不能满足需加载的数据的存储空间需求,因此,存储该需加载的数据至少需要两个存储块,且这两个存储块有可能不相邻。在这种情况下,由于需加载的数据的数据标识只与存储第一部分数据的存储空间相对应,因此,就需要在存储第一部分数据的存储空间中,存储第二部分数据的存储块的地址偏移值,比如,可以在NAND Flash的存储块中的最后64个字节中记录该地址偏移值,这样,后续就能够据获取到的地址偏移值指示的下一存储地址,在存储有第二部分数据的存储块中的对应位置上,获取与所述数据标识对应的第二部分数据,以此类推,直至获取到与该数据标识对应的所有需加载的数据。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种嵌入式软件程序的运行方法,其特征在于,包括:
在嵌入式软件程序运行过程中,当需加载数据时,根据所述数据的数据标识,在存储有需加载的数据的存储空间中获取与该数据标识对应的数据,所述存储空间与存储所述程序的存储空间为物理上独立的存储空间,其中,根据所述数据标识,在数据标识与需加载的数据的存储地址的对应关系中,查找与所述数据标识对应的存储地址,根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据;
将获取的所述数据加载到所述程序中。
2.如权利要求1所述的方法,其特征在于,根据查找到的存储地址,在存储有需加载的数据的存储空间中获取与该数据标识对应的数据,具体包括:
根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第一部分数据和地址偏移值;
根据所述获取的地址偏移值指示的下一存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第二部分数据,以此类推直至获取到与该数据标识对应的所有数据。
3.一种嵌入式软件程序的运行装置,其特征在于,包括:
获取单元,用于在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在存储有需加载的数据的存储空间中获取与该数据标识对应的数据,所述存储空间与存储所述程序的存储空间为物理上独立的存储空间,其中,根据需加载的数据的数据标识,在数据标识与需加载的数据的存储地址的对应关系中,查找与所述数据标识对应的存储地址,根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据;
加载单元,用于将获取单元获取的所述数据加载到所述程序中。
4.如权利要求3所述的装置,其特征在于,所述获取单元根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第一部分数据和地址偏移值;以及根据所述获取的地址偏移值指示的下一存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第二部分数据,以此类推直至获取到与该数据标识对应的所有数据。
5.一种嵌入式软件程序的运行系统,其特征在于,包括嵌入式软件程序的运行装置以及存储有所述程序需加载的数据的存储空间,所述存储空间与存储所述程序的存储空间为物理上独立的存储空间,其中所述装置包括:
获取单元,用于在嵌入式软件程序运行过程中,当需加载数据时,根据需加载的数据的数据标识,在所述存储有需加载的数据的存储空间中获取与该数据标识对应的数据,其中,根据需加载的数据的数据标识时,在数据标识与需加载的数据的存储地址的对应关系中,查找与所述数据标识对应的存储地址,根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的数据;
加载单元,用于将获取单元获取的所述数据加载到所述程序中。
6.如权利要求5所述的系统,其特征在于,所述获取单元根据查找到的存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第一部分数据和地址偏移值;以及根据所述获取的地址偏移值指示的下一存储地址,在存储有需加载的数据的存储空间中,获取与该数据标识对应的第二部分数据,以此类推直至获取到与该数据标识对应的所有数据。
CN 200810222250 2008-09-12 2008-09-12 嵌入式软件程序的运行方法、装置及其系统 Expired - Fee Related CN101354660B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810222250 CN101354660B (zh) 2008-09-12 2008-09-12 嵌入式软件程序的运行方法、装置及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810222250 CN101354660B (zh) 2008-09-12 2008-09-12 嵌入式软件程序的运行方法、装置及其系统

Publications (2)

Publication Number Publication Date
CN101354660A CN101354660A (zh) 2009-01-28
CN101354660B true CN101354660B (zh) 2013-07-24

Family

ID=40307479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810222250 Expired - Fee Related CN101354660B (zh) 2008-09-12 2008-09-12 嵌入式软件程序的运行方法、装置及其系统

Country Status (1)

Country Link
CN (1) CN101354660B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102135892B (zh) * 2010-01-22 2015-03-04 广州华多网络科技有限公司 应用程序运行方法、装置及系统
JP6223001B2 (ja) 2013-06-06 2017-11-01 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
CN104202442A (zh) * 2014-09-12 2014-12-10 北京奇虎科技有限公司 加载数据的方法、设备及系统
CN113031996A (zh) * 2021-03-17 2021-06-25 歌尔科技有限公司 一种电子设备的ota升级方法、装置、控制终端及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421824B1 (en) * 1999-04-23 2002-07-16 Sun Microsystems, Inc. Method and apparatus for producing a sparse interference graph
CN1403918A (zh) * 2001-09-05 2003-03-19 联想(北京)有限公司 在线帮助的实现方法
CN1622057A (zh) * 2004-12-31 2005-06-01 北京中星微电子有限公司 扩展存储空间的存取方法及其存取装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100589104C (zh) * 2008-01-25 2010-02-10 中兴通讯股份有限公司 一种嵌入式系统中图片资源加载的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421824B1 (en) * 1999-04-23 2002-07-16 Sun Microsystems, Inc. Method and apparatus for producing a sparse interference graph
CN1403918A (zh) * 2001-09-05 2003-03-19 联想(北京)有限公司 在线帮助的实现方法
CN1622057A (zh) * 2004-12-31 2005-06-01 北京中星微电子有限公司 扩展存储空间的存取方法及其存取装置

Also Published As

Publication number Publication date
CN101354660A (zh) 2009-01-28

Similar Documents

Publication Publication Date Title
US8417872B2 (en) Write and merge methods in memory card systems for reducing the number of page copies
US8606987B2 (en) Data writing method for flash memory and controller using the same
US10101914B2 (en) Memory management method, memory control circuit unit and memory storage device
US8131911B2 (en) Data writing method, and flash storage system and controller using the same
US7613870B2 (en) Efficient memory usage in systems including volatile and high-density memories
US20170322727A1 (en) Trim command processing method, memory control circuit unit and memory storage apparatus
US20070081401A1 (en) Apparatus for controlling flash memory and method thereof
CN101908023A (zh) NandFlash存储器中数据存储方法
CN102214143A (zh) 一种多层单元闪存的管理方法、装置及存储设备
CN110489052B (zh) 数据储存装置
CN103942159A (zh) 一种基于混合存储设备的数据读写方法与装置
US20120246394A1 (en) Flash Memory Device and Data Writing Method for a Flash Memory
US20130024604A1 (en) Data writing method, memory controller, and memory storage apparatus
CN104317739A (zh) 一种混合内存页面调度方法及装置
CN103823642A (zh) 用于Flash均衡存储的方法及系统
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
CN101354660B (zh) 嵌入式软件程序的运行方法、装置及其系统
CN101625897A (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
US10339045B2 (en) Valid data management method and storage controller
CN112596668A (zh) 一种存储器的坏块处理方法及系统
CN109101437A (zh) 一种数据存储方法与终端
CN102135943A (zh) 闪存数据的存储、访问方法及装置
CN108733576B (zh) 一种固态硬盘及其内存转换层对映方法
CN104133640B (zh) 从休眠快速恢复
US8209464B2 (en) Management method, management apparatus, and controller for memory data access

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130724

Termination date: 20140912

EXPY Termination of patent right or utility model