自动修复DDR翻转的方法、移动终端和存储介质技术

技术编号:20176419 阅读:42 留言:0更新日期:2019-01-23 00:18
本申请中提供了自动修复DDR翻转的方法、移动终端和存储介质,其中,方法包括:监测当前系统及应用程序的运行状态是否正常;若不正常,判断RAM是否存在DDR翻转;若存在,获取所述DDR翻转的第一物理内存地址;将所述第一物理内存地址写入节点,所述节点存在于ROM;重启系统,读取所述节点内的所述第一物理内存地址;根据预设规则将包含所述第一物理内存地址的指定区域,申请为预留内存,所述预留内存无法被访问。本申请通过检测获得DDR翻转的物理内存地址后,将其记录在节点内,并将物理内存地址申请为预留内存,使其无法被系统或应用程序访问,从而实现自动修复DDR翻转。

Automatic Repair of DDR Flip, Mobile Terminal and Storage Media

In this application, a method, mobile terminal and storage medium for automatically repairing DDR flip are provided. The methods include: monitoring the operation status of the current system and application program; judging whether DDR flip exists in RAM if it is not normal; acquiring the first physical memory address of the DDR flip if it exists; writing the first physical memory address to the node where the node exists. ROM; restart the system to read the first physical memory address in the node; according to the preset rules, the designated area containing the first physical memory address is applied for reserved memory, which can not be accessed. This application obtains the physical memory address of DDR flip by detecting, records it in the node, and applies the physical memory address as reserved memory, so that it can not be accessed by the system or application program, thus realizing automatic repair of DDR flip.

【技术实现步骤摘要】
自动修复DDR翻转的方法、移动终端和存储介质
本申请涉及移动通讯
,特别涉及一种自动规避DDR翻转的方法、移动终端和存储介质。
技术介绍
DDR全称是DDRSDRAM(DoubleDataRateSDRAM,双倍速率同步动态随机存储器),具有双倍速率传输数据的特性,是现有市场上的主流内存规范,被广泛应用于各大芯片组厂商的主流产品。现有的DDR在使用过程中,如果出现DDR翻转情况,会导致当前正在运行的程序崩溃或者业务流程出错,使得用户的工作成果毁于一旦。事后,用户只能通过更换DDR避免再次发生程序崩溃或业务流程出错,无法对出现翻转的DDR进行修复。
技术实现思路
本申请的主要目的为提供自动规避DDR翻转的方法、移动终端和存储介质,通过检测、识别DDR翻转的物理内存地址,将其记录并申请为预留内存,使其无法被系统或应用程序访问,从而实现自动修复DDR翻转。为实现上述目的,本申请提供了一种自动修复DDR翻转的方法包括:监测当前系统及应用程序的运行状态是否正常;若不正常,判断RAM是否存在DDR翻转;若存在,获取所述DDR翻转的第一物理内存地址;将所述第一物理内存地址写入节点,所述节点存在于ROM;重启系统,读取所述节点内的所述第一物理内存地址;根据预设规则将包含所述第一物理内存地址的指定区域,申请为预留内存,所述预留内存无法被访问。进一步的,所述判断RAM是否存在DDR翻转的步骤,包括:加载DDR测试软件;输入检测参数到所述DDR测试软件;根据所述检测参数运行所述DDR测试软件,得到检测结果;判断所述检测结果是否输出错误信息,所述错误信息包括所述DDR翻转的第一物理内存地址;若输出,判定所述RAM存在DDR翻转;若不输出,判定所述RAM不存在DDR翻转。进一步的,所述根据预设规则将包含所述第一物理内存地址的指定区域,申请为预留内存的步骤之前,包括:检测所述RAM当前的第一可用内存;判断所述第一可用内存是否小于所述预留内存;若小于,输出第一报警信息,并仅保持系统运行。进一步的,所述判断所述第一可用内存是否小于所述预留内存的步骤之后,包括:若大于,计算所述第一可用内存与所述预留内存的内存差;判断所述内存差是否小于最大应用内存,所述最大应用内存为应用运行历史的最大内存;若小于,输出第二报警信息,并禁止运行非必需应用,所述非必需应用由用户预先设定。进一步的,所述判断所述内存差是否小于最大应用内存的步骤之前,包括:实时监测所述RAM的应用运行内存,形成历史记录;根据预设频率,从所述历史记录中选择预设时间段内具有最大值的应用运行内存,设置为所述最大应用内存。进一步的,所述根据预设规则将包含所述第一物理内存地址的指定区域,申请为预留内存的步骤之后,包括:实时监测所述RAM当前的第二可用内存;判断所述第二可用内存是否小于预设提醒内存,所述预设提醒内存由用户预先设定;若小于,获取所述RAM的型号;根据所述RAM的型号搜索相应的商品信息,所述商品信息包括所述RAM的购买链接;输出所述商品信息到显示界面。进一步的,所述监测当前系统及应用程序的运行状态是否正常的步骤之前,包括:判断系统是否正常启动;若是,读取所述节点,判断所述节点内部是否存在第二物理内存地址,所述第二物理内存地址为预先检测到的DDR翻转的第二物理内存地址;若存在,根据预设规则将包含所述第二物理内存地址的指定区域,申请为预留内存,所述预留内存无法被访问。本申请还提供一种移动终端,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。进一步的,所述移动终端还包括显示屏,所述显示屏用于显示所述判断RAM是否存在DDR翻转的结果。本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。本申请中提供的自动规避DDR翻转的方法、移动终端和存储介质,具有以下有益效果:通过检测获得DDR翻转的物理内存地址后,将其记录在节点内,并将物理内存地址申请为预留内存,使其无法被系统或应用程序访问,从而实现自动修复DDR翻转。附图说明图1是本申请一实施例中自动规避DDR翻转的方法的步骤示意图;图2是本申请一实施例中自动规避DDR翻转的方法的整体流程示意图;图3是本申请一实施例的移动终端的结构示意框图。本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。参照图1,本申请一实施例中提供了一种自动修复DDR翻转的方法,,包括:S1:监测当前系统及应用程序的运行状态是否正常;S2:若不正常,判断RAM是否存在DDR翻转;S3:若存在,获取所述DDR翻转的第一物理内存地址;S4:将所述第一物理内存地址写入节点,所述节点存在于ROM;S5:重启系统,读取所述节点内的所述第一物理内存地址;S6:根据预设规则将包含所述第一物理内存地址的指定区域,申请为预留内存,所述预留内存无法被访问。移动终端包括但不限于手机,本实施中以手机为例进行说明。手机开机运行后,自动对应系统以及应用程序的运行状态进行监测。如果手机监测到系统或应用程序发生崩溃或出错,那么手机需要对系统或应用程序发生崩溃或出错的原因进行查询。手机自动加载DDR测试软件,例如开源的memtester,高通的QMESA_64等预先存在在手机内部的测试软件。手机通过DDR测试软件对设定的RAM进行内存压力测试,DDR测试软件会输出相应的检测事项的检测数据。手机根据DDR测试软件的检测结果可以直接判断当前DDR是否存在翻转。如果DDR当前存在翻转,则DDR测试软件的会输出检测到异常的检测事项,并输出相应的出现DDR翻转的第一物理内存地址,比如,输出:workbuf@phys=0x173162748,shadowbuf@phys=0x173162748。手机通过DDR测试软件的检测结果得到第一物理内存地址后,将第一物理内存地址写入节点内,节点存在于ROM,在系统重启后会被保存下来。申请预留内存必须在系统刚开始启动时才能实施,因为系统及应用程序在运行过程中已经将RAM内的运行内存占据,无法执行申请预留内存,所以必须重启系统。手机重新开机后,在Linuxkernel,即系统内核刚启动时,会先为驱动预留部分内存,此时添加坏地址预存机制,即读取节点,并获得节点内的预先检测到的第一物理内存地址。手机根据预设规则,将包含第一物理内存地址的指定区域,申请为预留内存。比如,将第一物理内存地址开始的4K内存,或者该地址前后2K的物理内存,或者该地址之前的4K的物理内存申请为预留内存。因为内存的基本单位为4K,而DDR翻转的第一物理内存地址在4K的内存里面,但不能对4K的内存进行分割,否则会导致RAM产生内存碎片,可用率降低。申请预留内存后,预留内存被视为已使用内存,Linux的内核不会为预留内存建立页表。而Linux系统中分为用户内存和物理内存,其中用户内存为虚拟内存,与物理内存通过页表进行映射。由于预留内存没有页表,用户内存无法映射到物理内存,因此系统或应本文档来自技高网...

【技术保护点】
1.一种自动修复DDR翻转的方法,其特征在于,包括:监测当前系统及应用程序的运行状态是否正常;若不正常,判断RAM是否存在DDR翻转;若存在,获取所述DDR翻转的第一物理内存地址;将所述第一物理内存地址写入节点,所述节点存在于ROM;重启系统,读取所述节点内的所述第一物理内存地址;根据预设规则将包含所述第一物理内存地址的指定区域,申请为预留内存,所述预留内存无法被访问。

【技术特征摘要】
1.一种自动修复DDR翻转的方法,其特征在于,包括:监测当前系统及应用程序的运行状态是否正常;若不正常,判断RAM是否存在DDR翻转;若存在,获取所述DDR翻转的第一物理内存地址;将所述第一物理内存地址写入节点,所述节点存在于ROM;重启系统,读取所述节点内的所述第一物理内存地址;根据预设规则将包含所述第一物理内存地址的指定区域,申请为预留内存,所述预留内存无法被访问。2.根据权利要求1所述的自动修复DDR翻转的方法,其特征在于,所述判断RAM是否存在DDR翻转的步骤,包括:加载DDR测试软件;输入检测参数到所述DDR测试软件;根据所述检测参数运行所述DDR测试软件,得到检测结果;判断所述检测结果是否输出错误信息,所述错误信息包括所述DDR翻转的第一物理内存地址;若输出,判定所述RAM存在DDR翻转;若不输出,判定所述RAM不存在DDR翻转。3.根据权利要求1所述的自动修复DDR翻转的方法,其特征在于,所述根据预设规则将包含所述第一物理内存地址的指定区域,申请为预留内存的步骤之前,包括:检测所述RAM当前的第一可用内存;判断所述第一可用内存是否小于所述预留内存;若小于,输出第一报警信息,并仅保持系统运行。4.根据权利要求3所述的自动修复DDR翻转的方法,其特征在于,所述判断所述第一可用内存是否小于所述预留内存的步骤之后,包括:若大于,计算所述第一可用内存与所述预留内存的内存差;判断所述内存差是否小于最大应用内存,所述最大应用内存为应用运行历史的最大内存;若小于,输出第二报警信息,并禁止运行非必需应用,所述非必需应用由用户预先设定。5.根据权利要求4所述的自动修复DDR翻转的方法...

【专利技术属性】
技术研发人员:张胜利
申请(专利权)人:奇酷互联网络科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1