一种电视机闪存恢复方法 【技术领域】
本发明涉及数据恢复技术, 尤其涉及一种电视机闪存恢复方法。背景技术 随着网络电视 (IPTV) 技术的发展, 现有的电视机已经开始内置 IPTV 模块, 以实现 IPTV 功能, 目前, IPTV 的功能模块很多, 这些功能都是基于一个开发计划逐步实现, 新开发 出的产品都会通过网络升级的方式展现给老的用户, 那么随着功能的增加, 那么在升级过 程中, 我们需要对电视机的闪存 (Nandflash) 做删除和复制的动作。
基于 Nandflash 的特性和现实中的现象, 在对 Nandflash 进行数据删除和复制操 作的过程中可能会造成 NandFlash 损坏, 而导致升级失败的情况产生, 针对这样的现象, 客 户可能会投诉产品质量或者要求售后服务, 直接影响产品形象和增加售后成本。
鉴于上述问题, 有必要提供一种电视机 Nandfash 恢复方法, 使用户可以自行恢复 电视机的闪存, 既解决了闪存损坏导致用户无法升级的问题, 也减少了售后上门的次数, 直 接节约了售后服务的成本。
发明内容
本发明的目的在于提供一种电视闪存恢复方法, 能够根据用户需要对电视机闪存 进行恢复, 避免由闪存损坏导致升级失败或售后服务成本的增加。
本发明的技术方案如下 :
一种电视闪存恢复方法, 包括以下步骤 :
A. 内存中的监控程序监听电视机串口, 等待恢复指令 ;
B. 监控程序根据接收到的恢复指令调用闪存中的恢复模块 ;
C. 闪存中的恢复模块进行恢复操作, 对闪存进行恢复 ;
D. 闪存恢复完成后通过电视机的屏幕显示模块显示恢复完成信息。
所述的电视闪存恢复方法, 其中, 所述步骤 A 具体包括 :
A1. 在电视机的闪存中划分出新的备份分区, 在备份分区中存放出厂程序、 系统文 件和恢复模块 ;
A2. 在电视机内存中存放监控程序 ;
A3. 监控程序监听电视机的串口, 直至有恢复指令输入。
所述的电视闪存恢复方法, 其中, 所述步骤 C 具体包括 :
C1. 闪存中的恢复模块被监控程序调用后, 通过主应用程序发送消息到屏幕显示 模块, 提示恢复操作准备开始 ;
C2. 恢复模块对闪存进行初始化, 卸载分区、 删除分区、 重新分区以及挂载分区 ;
C3. 恢复模块通过主应用程序发送消息到屏幕显示模块, 提示恢复操作开始进 行;
C4. 恢复模块将闪存中备份模块中的程序拷贝到相应的目录下, 完成恢复操作。所述的电视闪存恢复方法, 其中, 在所述步骤 C1 中, 恢复模块接收到屏幕显示模 块发出的响应信号后再继续执行下一步。
所述的电视闪存恢复方法, 其中, 在所述步骤 C3 中, 恢复模块接收到屏幕显示模 块发出的响应信号后再继续执行下一步。
所述的电视闪存恢复方法, 其中, 在所述步骤 C1 或 C3 中, 恢复模块未接收到屏幕 显示模块发出的响应信号时, 发送指令到屏幕显示模块, 提示重新开始恢复操作。
以上方法允许用户通过一键操作的方式对电视机的 Nandflash 进行恢复操作, 避 免在电视机进行在线升级时由于 Nandflash 损坏造成的不便。 附图说明
图 1 为本发明电视闪存恢复方法较佳实施方式的流程图。 具体实施方式
为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。 在本发明中首先对 Nandflash 的结构进行修改, 增加一个新的备份分区用于存放 出厂程序、 系统文件和 NandFlash 的恢复模块, 然后在串口内存 (spi rom) 中增加一个监 控程序, 当监控程序监控到 NandFlash 出现错误使应用程序无法启动或者无法升级的情况 下, 用户可以通过一组键值来启动 NandFlash 的恢复模块, 恢复模块会将 NandFlash 重新分 区、 格式化, 并且将在出厂时备份的程序重新拷贝到指定目录下, 这样既解决了用户无法升 级的问题, 也减少了售后上门的次数, 直接节约了售后的成本。
参考图 1, 本发明电视闪存恢复方法较佳实施方式包括步骤 :
S1、 系统启动, 串口初始化 ;
S2、 spi rom 中的监控程序监听串口, 判断串口是否接收到特定的指令, 是则进入 步骤 S4, 否则进入步骤 S3 ;
S3、 阻塞等待, 保持串口监控, 直至接收到特定的指令 ;
S4、 调用 Nandflash 中的恢复模块, 准备开始 Nandflash 恢复 ;
S5、 进行界面初始化, 恢复模块发送消息到主应用程序 (APP) 报告其准备开始初 始化, 主应用程序发送指令到电视机的屏幕显示 (OSD) 模块, 使 OSD 模块进行界面初始化即 在电视机上通过屏幕内容显示 Nandfash 准备开始初始化, OSD 模块初始化后发送响应信号 给主应用程序报告界面初始化完成, 再由主应用程序反馈给恢复模块 ;
S6、 恢复模块判断是否收到来自 OSD 模块的响应, 即通过是否接收到 OSD 反馈的信 号判断 OSD 模块是否完成界面初始化, 是则进入步骤 S7, 否则进入步骤 S12 ;
S7、 恢复模块开始 Nandflash 恢复, 对 Nandflash 进行初始化, 卸载分区、 删除分 区、 重新分区、 挂载分区, 在进行上述初始化动作时不对备份分区进行操作 ;
S8、 界面提示恢复开始, 由恢复模块通过主应用程序转发消息给电视机的 OSD 模 块, 报告 Nandflash 已经开始初始化, 电视机的 OSD 模块通过屏幕内容显示 Nandflash 已经 开始初始化, 并通过主应用程序反馈响应信号给恢复模块 ;
S9、 恢复模块判断是否收到来自 OSD 模块的响应, 是则进入步骤 S10, 否则进入步 骤 S12 ;
S10、 恢复模块将备份分区中的程序拷贝到 Nandflash 相应的目录下, 完成程序拷 贝;
S11、 恢复模块通过主应用程序向 OSD 模块发送消息, 报告 Nandflash 恢复完成, 由 OSD 模块通过屏幕显示恢复完成请重新启动 ;
S12、 界面提示重新发送恢复指令, 由恢复模块发送指令到 OSD 模块, 在屏幕上显 示请重新按某键开始恢复。
上述步骤具体描述如下 : 当打开电视机电源时, 电视机 spi room 中的驱动程序 (u-boot) 会启动 spi room 中的监控程序和 Nandflash 的系统内核 (kernal), 当用户发现需 要对 Nandflash 进行恢复时, 可以通过操作遥控器或电视机上的某一按键或按键组合, 产 生恢复指令给电视机的串口, 当监控程序监听串口发现接收到恢复指令时, 调用 Nandflash 的恢复模块, 准备开始 Nandflash 恢复, 此时恢复模块通过主应用程序向电视机的 OSD 模块 发送消息, 在屏幕上显示 Nandflash 准备开始初始化, 在收到 OSD 完成内容显示的响应信息 后, 恢复模块开始卸载原有分区、 删除所有分区、 重新分区, 并将新分区都挂载到具体的目 录上, 在进行上述初始化动作时不对备份分区进行操作, 然后再通过 OSD 模块进行屏幕显 示, 提示恢复开始进行, 获得 OSD 的响应信息后继续完成备份分区的内容拷贝, 完成恢复操 作, 最后通过屏幕显示通知用户恢复完成, 重新启动电视。
在上述方法中, 监控程序存放在 spi room 中而不在 Nandflash 中, 是为了避免由 于 Nandflash 损坏而造成监控程序不能启动, 无法正常调用恢复模块 ; 上述的步骤 S6 和 S9 中通过屏幕显示的方式将恢复操作的执行情况报告给用户, 方便用户了解电视机的当前工 作状态, 此时需要用户在 OSD 菜单中选择确认恢复操作继续执行。
以上方法允许用户通过一键操作的方式对电视机的 Nandflash 进行恢复操作, 避 免在电视机进行在线升级时由于 Nandflash 损坏造成升级失败或售后服务成本的增加。
应当理解的是, 对本领域普通技术人员来说, 可以根据上述说明加以改进或变换, 而所有这些改进和变换都应属于本发明所附权利要求的保护范围。