基于Flash的程序分层存储、运行以及升级的方法和装置的制造方法_4

文档序号:9396703阅读:来源:国知局
始化程序的运行环境;
[0159] 第二读取模块23,用于从Flash中读出预先存储的应用程序至RAM;其中,若遇到 坏块,则根据预先存储的坏块列表,读出与该坏块映射的好块中的数据,坏块列表中存储有 坏块和好块的映射关系;
[0160] 第二运行模块24,用于运行应用程序,实现程序的功能。
[0161] 与上述基于Flash的程序分层运行的方法对应的,本发明的基于Flash的程序分 层运行的装置可靠性高,启动速度快。
[0162] 作为本发明的基于Flash的程序分层运行的装置的一种改进,Flash中预先存储 有与应用程序相同的备份程序,如图15所示,第二读取模块23包括:
[0163] 第一读取单元231,用于从Flash中读出应用程序的程序头至RAM,程序头中包括 程序校验值;
[0164] 第一计算单元232,用于根据程序头,从Flash中读出应用程序至RAM,计算程序校 验值;
[0165] 第一比较单元233,用于将计算得到的程序校验值与程序头中的程序校验值比较, 若两者不一致,则从Flash中读出备份程序至RAM。
[0166] 与上述基于Flash的程序分层运行的方法对应的,本发明的基于Flash的程序分 层运行的装置进一步保证了程序运行的可靠性。
[0167] 与上述基于Flash的程序分层升级的方法对应的,本发明还提供一种基于Flash 的程序分层升级的装置,程序由引导程序和应用程序组成,引导程序用于初始化程序的运 行环境,应用程序用于实现程序的功能,引导程序和应用程序都存储在Flash中,如图16所 示,该装置包括:
[0168] 第三读取模块31,用于从Flash已知的好块中读出引导程序至RAM ;
[0169] 第三运行模块32,用于运行引导程序,初始化程序的运行环境;
[0170] 第一接收模块33,用于接收升级后的应用程序至RAM ;
[0171] 第一擦除模块34,从Flash中擦除原有的应用程序;其中,若遇到坏块,则根据预 先存储的坏块列表,擦除与该坏块映射的好块中的数据,坏块列表中存储有坏块和好块的 映射关系;
[0172] 第四写入模块35,用于将升级后的应用程序从RAM写入Flash ;其中,若遇到坏块, 则根据预先存储的坏块列表,写入与该坏块映射的好块中。
[0173] 与上述基于Flash的程序分层升级的方法对应的,本发明的基于Flash的程序分 层升级的装置保证了在Flash中程序升级的可靠性。
[0174] 上述的基于Flash的程序分层存储、运行以及升级的装置中Flash优选为Nand Flash。
[0175] 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员 来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也 应视为本发明的保护范围。
【主权项】
1. 一种基于Flash的程序分层存储的方法,其特征在于,所述程序由引导程序和应用 程序组成,所述引导程序用于初始化程序的运行环境,所述应用程序用于实现程序的功能, 所述方法包括: 将所述引导程序写入Flash的已知的好块中; 将所述应用程序写入Flash中;其中,若遇到坏块,则根据预先建立的坏块列表,写入 与该坏块映射的好块中,所述坏块列表中存储有坏块和好块的映射关系。2. 根据权利要求1所述的基于Flash的程序分层存储的方法,其特征在于,所述Flash 分为基本空间、预留空间以及其他空间,所述基本空间从所述Flash的第O块开始,所述坏 块列表存储在所述其他空间中; 所述将所述引导程序写入Flash的已知的好块中进一步为:将所述引导程序写入 Flash的第O块; 所述将所述应用程序写入Flash中进一步为:从Flash的第1块开始顺序写入所述应 用程序。3. 根据权利要求2所述的基于Flash的程序分层存储的方法,其特征在于,还包括: 再次将所述应用程序写入Flash中,作为备份程序。4. 一种基于Flash的程序分层运行的方法,其特征在于,所述程序由引导程序和应用 程序组成,所述引导程序用于初始化程序的运行环境,所述应用程序用于实现程序的功能, 所述引导程序和应用程序都存储在Flash中,所述方法包括: 从Flash中已知的好块中读出所述引导程序至RAM ; 运行所述引导程序,初始化程序的运行环境; 从Flash中读出预先存储的应用程序至RAM ;其中,若遇到坏块,则根据预先存储的坏 块列表,读出与该坏块映射的好块中的数据,所述坏块列表中存储有坏块和好块的映射关 系; 运行所述应用程序,实现程序的功能。5. 根据权利要求4所述的基于Flash的程序分层运行的方法,其特征在于,所述Flash 中预先存储有与所述应用程序相同的备份程序,所述从Flash中读出预先存储的应用程序 至RAM包括: 从Flash中读出所述应用程序的程序头至RAM,所述程序头中包括程序校验值; 根据所述程序头,从Flash中读出所述应用程序至RAM,计算程序校验值; 将计算得到的程序校验值与所述程序头中的程序校验值比较,若两者不一致,则从 Flash中读出所述备份程序至RAM。6. -种基于Flash的程序分层升级的方法,其特征在于,所述程序由引导程序和应用 程序组成,所述引导程序用于初始化程序的运行环境,所述应用程序用于实现程序的功能, 所述引导程序和应用程序都存储在Flash中,所述方法包括: 从Flash已知的好块中读出所述引导程序至RAM ; 运行所述引导程序,初始化程序的运行环境; 接收升级后的应用程序至RAM ; 从Flash中擦除原有的应用程序;其中,若遇到坏块,则根据预先存储的坏块列表,擦 除与该坏块映射的好块中的数据,所述坏块列表中存储有坏块和好块的映射关系; 将升级后的应用程序从RAM写入Flash ;其中,若遇到坏块,则根据预先存储的坏块列 表,写入与该坏块映射的好块中。7. 根据权利要求1-6任一权利要求所述的方法,其特征在于,所述Flash为Nand Flash。8. -种基于Flash的程序分层存储的装置,其特征在于,所述程序由引导程序和应用 程序组成,所述引导程序用于初始化程序的运行环境,所述应用程序用于实现程序的功能, 所述装置包括: 第一写入模块,用于将所述引导程序写入Flash的已知的好块中; 第二写入模块,用于将所述应用程序写入Flash中;其中,若遇到坏块,则根据预先建 立的坏块列表,写入与该坏块映射的好块中,所述坏块列表中存储有坏块和好块的映射关 系。9. 根据权利要求8所述的基于Flash的程序分层存储的装置,其特征在于,所述Flash 分为基本空间、预留空间以及其他空间,所述基本空间从所述Flash的第O块开始,所述坏 块列表存储在所述其他空间中; 所述第一写入模块进一步用于将所述引导程序写入Flash的第O块; 所述第二写入模块进一步用于从Flash的第1块开始顺序写入所述应用程序。10. 根据权利要求9所述的基于Flash的程序分层存储的装置,其特征在于,还包括: 第三写入模块,用于再次将所述应用程序写入Flash中,作为备份程序。11. 一种基于Flash的程序分层运行的装置,其特征在于,所述程序由引导程序和应用 程序组成,所述引导程序用于初始化程序的运行环境,所述应用程序用于实现程序的功能, 所述引导程序和应用程序都存储在Flash中,所述装置包括: 第一读取模块,用于从Flash中已知的好块中读出所述引导程序至RAM ; 第一运行模块,用于运行所述引导程序,初始化程序的运行环境; 第二读取模块,用于从Flash中读出预先存储的应用程序至RAM ;其中,若遇到坏块,则 根据预先存储的坏块列表,读出与该坏块映射的好块中的数据,所述坏块列表中存储有坏 块和好块的映射关系; 第二运行模块,用于运行所述应用程序,实现程序的功能。12. 根据权利要求11所述的基于Flash的程序分层运行的装置,其特征在于,所述 Flash中预先存储有与所述应用程序相同的备份程序,所述第二读取模块包括: 第一读取单元,用于从Flash中读出所述应用程序的程序头至RAM,所述程序头中包括 程序校验值; 第一计算单元,用于根据所述程序头,从Flash中读出所述应用程序至RAM,计算程序 校验值; 第一比较单元,用于将计算得到的程序校验值与所述程序头中的程序校验值比较,若 两者不一致,则从Flash中读出所述备份程序至RAM。13. -种基于Flash的程序分层升级的装置,其特征在于,所述程序由引导程序和应用 程序组成,所述引导程序用于初始化程序的运行环境,所述应用程序用于实现程序的功能, 所述引导程序和应用程序都存储在Flash中,所述装置包括: 第三读取模块,用于从Flash已知的好块中读出所述引导程序至RAM ; 第三运行模块,用于运行所述引导程序,初始化程序的运行环境; 第一接收模块,用于接收升级后的应用程序至RAM ; 第一擦除模块,用于从Flash中擦除原有的应用程序;其中,若遇到坏块,则根据预先 存储的坏块列表,擦除与该坏块映射的好块中的数据,所述坏块列表中存储有坏块和好块 的映射关系; 第四写入模块,用于将升级后的应用程序从RAM写入Flash ;其中,若遇到坏块,则根据 预先存储的坏块列表,写入与该坏块映射的好块中。14.根据权利要求8-13任一权利要求所述的装置,其特征在于,所述Flash为Nand Flash。
【专利摘要】本发明公开了一种基于Flash的程序分层存储、运行以及升级的方法和装置,属于嵌入式系统领域,所述程序由引导程序和应用程序组成,所述引导程序用于初始化程序的运行环境,所述应用程序用于实现程序的功能,所述方法包括:将所述引导程序写入Flash的已知的好块中;将所述应用程序写入Flash中;其中,若遇到坏块,则根据预先建立的坏块列表,写入与该坏块映射的好块中,所述坏块列表中存储有坏块和好块的映射关系。与现有技术相比,本发明可靠性高,便于维护。
【IPC分类】G06F12/08, G06F9/445, G06F3/06
【公开号】CN105117237
【申请号】CN201510423542
【发明人】贾天亮
【申请人】北京天诚盛业科技有限公司
【公开日】2015年12月2日
【申请日】2015年7月17日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1