CN107463459B - ***异常内存数据的保存方法、装置、***及终端设备 - Google Patents

***异常内存数据的保存方法、装置、***及终端设备 Download PDF

Info

Publication number
CN107463459B
CN107463459B CN201710693906.XA CN201710693906A CN107463459B CN 107463459 B CN107463459 B CN 107463459B CN 201710693906 A CN201710693906 A CN 201710693906A CN 107463459 B CN107463459 B CN 107463459B
Authority
CN
China
Prior art keywords
ddr
memory
memory data
abnormal
application processor
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.)
Active
Application number
CN201710693906.XA
Other languages
English (en)
Other versions
CN107463459A (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.)
Hisense Visual Technology Co Ltd
Original Assignee
Hisense Visual Technology Co Ltd
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 Hisense Visual Technology Co Ltd filed Critical Hisense Visual Technology Co Ltd
Priority to CN201710693906.XA priority Critical patent/CN107463459B/zh
Publication of CN107463459A publication Critical patent/CN107463459A/zh
Application granted granted Critical
Publication of CN107463459B publication Critical patent/CN107463459B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种***异常内存数据的保存方法、装置、***及终端设备,其中该方法包括:检测看门狗计时器的计数值是否超出预设值;如果超出预设值,则利用***CPU中的微处理器MCU控制双倍速率同步动态随机存储器DDR采用自刷新的方式保存DDR中的内存数据;当DDR完成其内部数据保存后,控制***CPU中的应用处理器进入***程序运行状态;在所述应用处理器进入***程序运行后,将DDR中的内存数据存储到预设存储介质中。本申请技术方案只需***内部程序运行就可实现***异常时内部数据的保存,不需要借助外界设备向***发送的指令,根据***异常时内部数据找到何处出现问题,实施性较强,提高了问题解决效率。

Description

***异常内存数据的保存方法、装置、***及终端设备
技术领域
本发明涉及通信技术领域,尤其涉及一种***异常内存数据的保存方法、装置、***及终端设备。
背景技术
近年来智能电视几乎是每个家庭必备的家用电器,其功能也越来越多。而在智能电视的项目开发阶段,***CPU会遇到各种各样的异常问题,如应用处理单元ARM核心上运行的软件出现kernel panic(内核错误)、内存错误、内存越界、内存踩踏等问题,***表现为死机、重启现象,导致***无法响应外界的任何控制指令。
目前分析***死机、重启等问题时,主要可供使用的日志信息包括:串口日志、logcat日志(android日志)、dmesg(linux内核日志)、anr(android异常trace日志)、tomstones(android异常日志)等。当发生常规的CPU异常时,例如内核驱动层空指针、应用层死锁时,查看这些上述日志信息基本可以确定问题原因,找到问题原因后解决问题。而当出现内存地址越界、踩踏时,这些日志信息只能提供何处出现问题,但无法提供因何出现问题,这些日志信息毫无帮助。因此,遇到内存越界、踩踏等问题时,通常需要将***连接arm仿真工具Trace,重新运行异常***,使用Trace对***问题进行复现,从而找到哪个进程或任务出现了问题以及因何出现问题。
但是,只有在特定条件下运行异常进程或任务时,才会出现***CPU异常,造成问题复现的概率低下。还有内存越界、踩踏等问题造成的异常现象多种多样,造成异常现象不确定,从而增加了问题复现的难度。而且嵌入式***(linux或android)大多为多CPU***,出现CPU异常后,需要查看哪个或哪几个CPU内核出现问题,相比单核***,增加了工作量,使得问题复现更困难,因而,使用Trace复现问题的实施性较差,解问题的效率低下。另外,Trace这种仿真工具自身还存在价格昂贵、操作复杂等问题,因此,在硬件成本和人力成本方面也不具优势。
发明内容
本发明提供了一种***异常内存数据的保存方法、装置、***及终端设备,以解决目前***出现异常问题时,分析方法实施性差、解问题效率低下的问题。
第一方面,本发明实施例提供了一种***异常内存数据的保存方法,所述方法包括:
检测看门狗计时器的计数值是否超出预设值;
如果超出预设值,则利用所述***中央处理器CPU中的微处理器MCU控制双倍速率同步动态随机存储器DDR采用自刷新的方式保存所述DDR中的内存数据;
当所述DDR完成其内部数据保存后,控制所述***CPU中的应用处理器进入***程序运行状态;
在所述应用处理器进入***程序运行后,将所述DDR中的内存数据存储到预设存储介质中。
第二方面,本发明实施例提供了一种***异常内存数据的保存装置,包括:处理器、存储器和通信接口,所述处理器、所述存储器和所述通信接口通过通信总线相连;
所述通信接口,用于接收自刷新指令;
所述存储器,用于存储程序代码;
所述处理器,用于读取所述存储器中存储的程序代码,并执行上述所述的方法。
第三方面,本发明实施例提供了一种***异常内存数据的保存***,包括上述的***异常内存数据的保存装置,还包括:应用处理器、微处理器MCU以及双倍速率同步动态随机存储器DDR,所述MCU与DDR分别通过外设总线与所述应用处理器连接;
所述DDR,用于采用自刷新的方式保存内存数据;
所述MCU,用于在所述***异常内存数据的保存装置的作用下控制所述DDR保存内存数据;
所述应用处理器,用于在所述MCU的控制下进入***程序运行状态,以重启***。
第四方面,本发明实施例提供了一种终端设备,包括上述所述的***异常内存数据的保存***。
本发明提供的技术方案可以包括以下有益效果:
本发明实施例提供的方案中,检测***CPU中的看门狗计时器的计数值是否超出预设值,若超出预设值,则证明***出现异常,***开始运行异常程序,即利用***CPU中的微处理器MCU控制双倍速率同步动态随机存储器DDR采用自刷新的方式保存DDR中的内存数据。通过MCU控制DDR进入自刷新模式,保存DDR中***程序运行过程中产生的数据,避免***重启后DDR中的数据失效。DDR中的内存数据保存完后,控制***CPU中的应用处理器进入***程序运行状态,即重启***CPU,还有为方便后续分析处理数据,在应用处理器进入***程序运行后,将DDR中的内存数据存储到预设存储介质中,如U盘中。工作人员可对预设存储介质中的内存数据进行分析,找到何处出现内存越界、踩踏等问题,避免工作人员守着终端设备进行分析数据,影响其他人员进行其他工作。本发明提供的***异常内存数据的保存方法、装置、***及终端设备只需***内部程序运行就可实现***异常时内部数据的保存,不需要借助外界设备向***发送的指令,根据***异常时内部数据找到何处出现问题,实施性较强,提高了问题解决效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一种终端设备的最小组成***的结构示意图;
图2为一种终端设备的最小组成***中CPU的结构示意图
图3为本发明实施例一提供的一种***异常内存数据的保存方法的流程图;
图4为本发明实施例提供的***异常内存数据的保存方法中S402详细的流程图;
图5为本发明实施例二提供的一种***异常内存数据的保存方法的流程图;
图6为本发明实施例提供的***异常内存数据的保存装置的结构示意图。
具体实施方式
在智能电视的项目开发阶段,嵌入式***(Linux或android)会遇到各种各样的***死机、重启等问题,例如kernel panic(内核错误)、内存泄露、内存越界、踩踏等异常,此时***已经不响应类似命令行的人机交互方式来了解当前***的状态,即***处于失控状态,不响应外界的任何控制指令。
目前为解决***异常,需要外接arm仿真工具Trace,重新运行异常***,通过仿真工具Trace对问题进行复现,以找到哪个进程或任务出现了内存访问错误,但只有在特定条件下运行异常进程或任务时,才会出现***异常,造成问题复现概率低下,还有嵌入式***大多为多核***,增加了问题复现的难度,从而使得Trace复现问题的实施性较差,解问题的效率低下。为解决这些问题,本发明实施例提供一种异常***内存数据的保存方法,不需外界设备对问题进行复现,只需***本身的软件即可保存***异常状态下的内存数据,提高问题解决的效率。
图1是一种终端设备中***的结构示意图。如图1所示,该终端设备的***包括:中央处理器CPU(Central Processing Unit)100、双倍速率同步动态随机存储器DDR(DoubleSynchronous Dynamic Random Access Memory)200以及非易失性存储器EMMC(EmbeddedMulti Media Card)300,其中,
EMMC300是非易失性存储器,相当于PC电脑的硬盘,用来存储操作***镜像,其特点是掉电后数据可以保存。
DDR200(Double Data Rate),即双倍速率同步动态随机存储器,其中双倍速率的含义是在时钟的上升和下降沿均可以传输数据,同步的含义是所有的数据传输用到的信号要通过时钟来同步。目前市面上常见的DDR芯片有DDR、DDR2、DDR3、DDR4,即DDR技术的四个版本。
程序运行时,CPU中的软件是在DDR中进行程序运行的,程序运行过程中产生的数据保存在DDR中,可以通过DDR中的内存数据分析软件运行过程中出现的问题。
图2是一种终端设备中***CPU的结构示意图。如图2所示,***CPU100包括应用处理器101、WDT(Watchdog Timer,看门狗)102、EMMC控制器103、DDR控制器104、MCU(Microcontroller Unit,微处理器)105以及共享内存106,其中,
WDT102、EMMC控制器103、DDR控制器104以及MCU105分别通过外设总线与应用处理器101连接,应用处理器101与MCU105分别与共享内存106连接。
应用处理器101上运行的是linux或android操作***,目前应用处理器101主流是ARM核心。
WDT102是独立于应用处理器101的硬件看门狗,负责监控***运行情况,其实现原理是开机时设置这个看门狗定时器的超时时间,应用处理器101定期去将定时器的计数器清零,俗称喂狗。如果***发生死机等异常情况,无法喂狗了,WDT102负责重启***。
EMMC控制器103、DDR控制器104分别与外部的EMMC300、DDR200器件相对应,负责给DDR200、EMMC300提供时钟、数据、控制信号等。
MCU105为单片机架构,其上运行独立于应用处理器101的程序软件,负责***待机后的行为,例如待机唤醒等功能。MCU一般为C51core。
共享内存106是CPU内部的一块若干容量的静态随机存储器sram,应用处理器101与MCU105之间的数据交换是通过共享内存106实现的。
当***CPU出现内存越界、踩踏等异常时,CPU内部的应用处理器101不响应任何控制命令,但WDT102、MCU105独立于应用处理器101,***异常时仍然可以运行。但是***CPU出现异常后,会触发看门狗超时而重启***,DDR200中的内存数据在***CPU重启后会失效,工作人员无法根据内存数据分析问题所在。
为了解决***CPU出现异常重启后DDR中的内存数据失效的问题,本发明实施例提供了一种***异常内存数据的保存方法,该方法的核心时:当***CPU出现异常,造成看门狗计时器超时,在重启***前,MCU控制DDR采用自刷新的方式保存DDR中的内存数据,以避免***重启后DDR中的内存数据失效。
以下将结合附图对本发明实施例提供的***异常内存数据的保存方法进行详细说明。
图3是本发明实施例一提供的异常***内存数据的保存方法的流程图,该方法应用于图2的终端设备的***中,更为具体的,所述方法的执行主体可以为图2所示***CPU中的WDT、MCU与应用处理器,主要处理步骤包括:
S401:检测看门狗计时器的计数值是否超出预设值。
***CPU开机运行时,通过读写寄存器的方式给看门狗定时器设置超时预设值和超时发生时要执行的指令,即超时处理函数,***正常运行时,定期去将定时器的计数器清零,俗称喂狗。如果***发生死机等异常时,无法喂狗了,看门狗计时器的计数值就会超过预设值。因此通过检测看门狗计时器的计数值是否超出预设值来判断***CPU是否出现异常。
检测看门狗计时器的计数值是否超出预设值是看门狗模块自己检测的,即执行主体是看门狗WDT,不依赖其他模块。
S402:如果超出预设值,则利用所述***中央处理器CPU中的微处理器MCU控制双倍速率同步动态随机存储器DDR采用自刷新的方式保存所述DDR中的内存数据。
检测到看门狗计时器的计数值超出预设值,则表明***CPU出现异常,此时***运行异常程序。由看门狗WDT跳转至MCU程序(***CPU内的程序是通过读写寄存器的方式实现程序切换的,此处看门狗通过读取MCU寄存器的方式切换至MCU运行程序),通过MCU控制DDR保存其内部的内存数据。
微处理器MCU,一般为C51核心,负责在应用处理器(ARM核心)进入待机模式,不停的检测外部唤醒事件,例如检测用户是否按下遥控器power键,如果检测到,就给应用处理器上电,然后唤醒并跳转至应用处理器运行。
MCU控制DDR采用自刷新模式保存数据的具体步骤如图4所示:
S412:所述MCU通过所述***CPU中的DDR控制器向所述DDR发送自刷新指令。
S422:所述DDR接收所述自刷新指令后进入自刷新模式,以保存所述DDR中的内存数据。
DDR是一种DRAM(Dynamic Random Access Memory,动态随机存储器),基本存储单元是MOS管的栅极电容,电容保持电荷的时间有限,为了及时补充漏掉的电荷,必须定时给栅极电容补充电荷,这个补充电荷的操作称为刷新操作,其实就是轮流读每个单元充一次电。
刷新操作分为两种:AR(Auto Refresh,自动刷新)与SR(Self Refresh,自刷新)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。对于AR,SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)内部有一个行地址生成器(也称为refresh计数器)用来自动的依次生成行地址。
SR则主要用于休眠模式低功耗状态下的数据保存。在发出AR命令时,将CKE(管脚)置于无效状态,就进入了SR模式,此时不再依靠***时钟工作,而是根据内部的时钟进行refresh操作。在SR期间除了CKE之外的所有外部信号都是无效的,只有重新使CKE有效才能退出SR模式并进入正常操作状态。
通常DDR的运行时钟是由CPU上集成的DDR控制器来提供的。在MCU程序中,MCU通过读写DDR控制器的地址寄存器的方式控制DDR控制器向DDR发送自刷新指令,DDR芯片接收自刷新指令后进入自刷新模式,DDR经过自刷新后其内部的内存数据得以保存,不会在***重启后失效。
S403:当所述DDR完成其内部数据保存后,控制所述***CPU中的应用处理器进入***程序运行状态。
DDR进入自刷新模式后,DDR内部的内存数据得以保存,此时由MCU程序跳转至应用处理器程序,运行应用处理器程序,以重启***。具体地,MCU通过读取应用处理器(ARM核心)地址寄存器的方式控制应用处理器的程序进入运行状态,以重启***。
S404:在所述应用处理器进入***程序运行后,将所述DDR中的内存数据存储到预设存储介质中。
为方便分析***异常时的内存数据,重启***后,将DDR中的内存数据存储到预设存储介质中,如U盘、移动硬盘等,避免工作人员长时间守在终端设备前进行分析数据,影响其他人员的其他操作。将DDR中的内存数据保存至预设存储介质的具体步骤如下:
***CPU中的应用处理器进入***程序运行后,检测***是否接入了预设存储介质,如接入了预设存储介质,则***自动将DDR中的内存数据写入预设存储介质中。
将DDR中的内存数据存储到预设存储介质中后,***日志上进行标记,提醒工作人员***CPU出现异常,***异常时的内存数据已保存至预设存储介质中,工作人员即可对预设存储介质中的数据进行分析,找到哪个进程或任务出现内存访问错误,从而解决***异常问题。
本发明实施例提供的保存方法,在检测到看门狗计时器的计数值超出预设值后,利用***CPU中的MCU控制DDR采用自刷新的方式保存DDR中的内存数据,从而可以避免DDR中的内存数据在***重启后失效;在DDR内的数据保存完后,控制***CPU中的应用处理器进入***程序运行状态,以重启***,并在应用处理器进入***程序运行后,将DDR中的内存数据存储到预设存储介质中,方便工作人员分析***异常时的内存数据。本发明提供的***异常内存数据的保存方法只需***内部程序运行就可实现***异常时内部数据的保存,不需要借助外界设备向***发送的指令,根据***异常时内存数据找到何处出现问题,实施性较强,提高了问题解决效率。
本发明实施例还提供了一种***异常内存数据的保存方法,如图5所示,该方法应用于图2的终端设备的***中,更为具体的,所述方法的执行主体可以为图2所示***CPU中的WDT、MCU与应用处理器,主要处理步骤包括:
S501:检测看门狗计时器的计数值是否超出预设值。
S502:当看门狗计时器的计数值超出预设值后,在所述微处理器MCU与所述应用处理器之间的共享内存中设置异常标志。
当检测到看门狗计时器的计数值超出预设值后,表明***出现异常,此时开始执行异常状态下的程序。为区分***是否出现异常,当看门狗计时器的计数值超出预设值后,在共享内存中设置异常标志,异常标志为32位整数。共享内存是CPU内部的一块若干容量的静态随机存储器sram,应用处理器与MCU之间的数据交换是通过共享内存实现的。
S503:利用***CPU中的微处理器MCU控制双倍速率同步动态随机存储器DDR采用自刷新的方式保存所述DDR中的内存数据。
S504:当所述DDR完成其内部数据保存后,控制所述***CPU中的应用处理器进入***程序运行状态。
S505:在应用处理器运行bootloader程序的过程中,检测所述共享内存中是否存在异常标志。
S506:若存在,将所述DDR中的内存数据存储到预设存储介质中。
S507:若不存在,继续运行应用处理器程序,以重启***。
终端设备一次正常的开机流程为:当交流上电或直流开机时,应用处理器(ARM核心)开始运行,软件上按照bootloader——linux——android的顺序依次运行。某一时刻,收到了待机请求,例如用户按下遥控器的power键,则应用处理器(ARM核心)停止运行,MCU开始运行。MCU程序软件时刻检测是否有开机请求,如果有,则通知应用处理器(ARM核心)开机,跳转到应用处理器(ARM核心)继续运行。
***出现内存越界、踩踏等异常,导致***重启,此时保存DDR中的内存数据才有意义,可根据DDR中的内存数据找到哪个进程或任务出现内存访问错误,从而解决问题。但如果是正常开机或因硬件问题导致的***重启,此时DDR中的内存数据对问题解决没有帮助,因此保存DDR中的内存数据就没有意义。
在应用处理器运行bootloader程序时,***即可访问外界的存储设备,此时检测共享内存中是否存在异常标志,若存在异常标志,则表明***是由于CPU出现异常才重启的,将DDR中的内存数据存储到预设存储介质中,方便解决问题;若不存在异常标志,则表明***是由于其他原因才重启的或是正常开机,此时只需正常启动***即可,将DDR中的内存数据存储到预设存储介质中则完全没必要。
本发明实施例提供的保存方法,在检测到看门狗计时器的计数值超出预设值后,在MCU与应用处理器之间的共享内存中设置异常标志,再利用***CPU中的MCU控制DDR采用自刷新的方式保存DDR中的内存数据,从而可以避免DDR中的数据在***重启后失效;在DDR内的数据保存完后,控制***CPU中的应用处理器进入***程序运行状态,以重启***,并在应用处理器的bootloader运行过程中,检测共享内存中是否存在异常标志,若存在,则将DDR中的内存数据存储到预设存储介质中,若不存在,则正常启动***。本发明提供的***异常内存数据的保存方法只需***内部程序运行就可实现***异常时内部数据的保存,不需要借助外界设备向***发送的指令,根据***异常时内部数据找到何处出现问题,实施性较强,提高了问题解决效率。
图6是本发明实施例提供的一种***异常内存数据的保存装置的结构示意图。如图6所示,该***异常内存数据的保存装置600,其结构包括:至少一个处理器601、内存602、***设备接口603、输入/输出子***604、电力线路605以及通信线路606。
在图6中,箭头表示能进行计算机***的构成要素间的通信和数据传送,且其可利用高速串行总线、并行总线、存储区域网络和/或其他适当的通信技术而实现。
内存602可包括操作***612和内存数据保存例程622。例如,内存602可包括高速随机存取存储器、磁盘、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)、闪存或非挥发性内存。内存602可存储用于操作***612和内存数据保存例程622的程序编码,也就是说可包括***异常内存数据的保存装置600的动作所需的软件模块、指令集架构或其之外的多种数据。此时,***设备接口603等其他控制器与内存602的存取可通过处理器601进行控制。
***设备接口603可将***异常内存数据的保存装置600的输入和/或输出***设备与处理器601、内存602相结合。并且,输入/输出子***604可将多种输入/输出***设备与***设备接口603相结合。例如,输入/输出子***604可包括显示器、键盘、鼠标、打印机等,具体地,在输入/输出子***604中包括用于将CPU及DDR与***设备接口603相结合的控制器。根据另一侧面,输入/输出***也可不经过输入/输出子***604而与***设备接口603相结合,即CPU及DDR也可不经过输入/输出子***604而与***设备接口603相结合。
电力线路605可向终端设备的电路元件的全部或部分供给电力。例如,电力线路605可包括如电力管理***、电池或交流(AC)一个以上的电源、充电***、电源故障检测电路、电力变换器或逆变器、电力状态标记符或用于电力生成、管理、分配的任意其他电路元件。
通信线路606可利用至少一个接口与其他计算机***进行通信,如与控制***进行通信。
处理器601通过施行存储在内存602中的软件模块或指令集架构可执行***异常内存数据的保存装置600的多种功能且处理数据。也就是说,处理器601通过执行基本的算术、逻辑以及计算机***的输入/输出演算,可构成为处理计算机程序的命令。
处理器601构成用于执行上述实施例一至二的***异常内存数据的保存方法。
图6的实施例仅是终端设备的***异常内存数据的保存装置600的一个示例,***异常内存数据的保存装置600可具有如下结构或配置:省略图6所示的部分电路元件,或进一步具备图6中未图示之追加的电路元件,或结合两个以上的电路元件。例如,用于移动环境的通信终端的计算机***除了图6所示的电路元件之外,还可进一步包括传感器等,且在通信线路606中也可包括用于多种通信方式(WiFi、6G、LTE、Bluetooth、NFC、Zigbee等)的RF通信的电路。包含在***异常内存数据的保存装置600中的电路元件可由包括一个以上的信号处理或应用程序所特殊化的集成电路的硬件、软件或硬件和软件两者的组合而实现。
上述构成的***异常内存数据的保存装置600控制执行异常程序,并处于实时检测用户动作的工作状态,该装置还检测看门狗计时器的计数值是否超出预设值,并且当确定计数值超出预设值时,利用MCU控制DDR采用自刷新的方式保存DDR中的内存数据,避免DDR中的内存数据在***重启后失效。
基于图6所示的***异常内存数据的保存装置,本发明实施例提供了一种***异常内存数据的保存***,该***包括图6所示的***异常内存数据的保存装置600,还包括应用处理器(ARM核心)、微处理器MCU以及双倍速率同步动态随机存储器DDR,其中,MCU与DDR分别通过外设总线与应用处理器连接。DDR,用于采用自刷新的方式保存内存数据;***异常内存数据的保存装置600,用于检测看门狗计时器的计数值是否超出预设值;MCU,用于在所述***异常内存数据的保存装置600的作用下控制DDR保存内存数据;应用处理器,用于在MCU的控制下进入***程序运行状态,以重启***
该保存***还包括DDR控制器,MCU与DDR控制器通过外设总线连接,用于在MCU的控制下向DDR发送自刷新指令;DDR根据自刷新指令进入自刷新模式,以保存DDR中的内存数据。
该保存***还包括共享内存,应用处理器与MCU分别与共享内存连接;共享内存,用于当看门狗计时器的计数值超出预设值时,在其内设置异常标志;在应用处理器运行bootloader程序过程中,检测到异常标志后将DDR中的内存数据存储到预设存储介质中。
本发明实施例还提供了一种终端设备,包括上述实施例中的***异常内存数据的保存***。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域技术人员在考虑说明书及实践这里发明的公开后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。

Claims (10)

1.一种***异常内存数据的保存方法,其特征在于,所述方法包括:
检测看门狗计时器的计数值是否超出预设值;
如果超出预设值,则由所述看门狗计时器跳转至所述***中央处理器CPU中的微处理器MCU,利用所述微处理器MCU控制双倍速率同步动态随机存储器DDR采用自刷新的方式保存所述DDR中的内存数据;
当所述DDR完成其内部数据保存后,控制所述***CPU中的应用处理器进入***程序运行状态;
在所述应用处理器进入***程序运行后,将所述DDR中的内存数据存储到预设存储介质中。
2.如权利要求1所述的方法,其特征在于,检测看门狗计时器的计数值是否超出预设值之后,所述方法还包括:
当检测到看门狗计时器的计数值超出所述预设值后,在所述微处理器MCU与所述应用处理器之间的共享内存中设置异常标志;
以及,
在所述应用处理器进入***程序运行后,将所述DDR中的内存数据存储到预设存储介质中,包括:
在所述应用处理器运行bootloader程序的过程中,检测所述共享内存中是否存在所述异常标志;
若存在,则将所述DDR中的内存数据存储到所述预设存储介质中。
3.如权利要求2所述的方法,其特征在于,将所述DDR中的内存数据存储到所述预设存储介质中,包括:
检测到所述共享内存中存在所述异常标志后,检测所述***是否接入预设存储介质;
若接入,则自动将所述DDR中的内存数据写入所述预设存储介质中。
4.如权利要求1所述的方法,其特征在于,利用所述***中央处理器CPU中的微处理器MCU控制双倍速率同步动态随机存储器DDR采用自刷新的方式保存所述DDR中的内存数据,包括:
所述MCU通过所述***CPU中的DDR控制器向所述DDR发送自刷新指令;
所述DDR接收所述自刷新指令后进入自刷新模式,以保存所述DDR中的内存数据。
5.如权利要求1所述的方法,其特征在于,控制所述***CPU中的应用处理器进入***程序运行状态,包括:
所述MCU通过读取所述应用处理器地址寄存器的方式控制所述应用处理器的程序进入运行状态,以重启所述***。
6.一种***异常内存数据的保存装置,其特征在于,包括:处理器、存储器和通信接口,所述处理器、所述存储器和所述通信接口通过通信总线相连;
所述通信接口,用于接收自刷新指令;
所述存储器,用于存储程序代码;
所述处理器,用于读取所述存储器中存储的程序代码,并执行如权利要求1至5中任一项所述的方法。
7.一种***异常内存数据的保存***,其特征在于,包括:如权利要求6所述的***异常内存数据的保存装置,还包括:应用处理器、微处理器MCU以及双倍速率同步动态随机存储器DDR,所述MCU与DDR分别通过外设总线与所述应用处理器连接;
所述DDR,用于采用自刷新的方式保存内存数据;
所述MCU,用于在所述***异常内存数据的保存装置的作用下控制所述DDR保存内存数据;
所述应用处理器,用于在所述MCU的控制下进入***程序运行状态,以重启***。
8.如权利要求7所述的***,其特征在于,所述***还包括DDR控制器,所述MCU与DDR控制器通过外设总线连接,用于在所述MCU的控制下向所述DDR发送自刷新指令;
所述DDR根据所述自刷新指令进入自刷新模式,以保存所述DDR中的内存数据。
9.如权利要求7所述的***,其特征在于,所述***还包括共享内存,所述应用处理器与MCU分别与所述共享内存连接;
所述共享内存,用于当看门狗计时器的计数值超出预设值时,在其内设置异常标志;
在所述应用处理器运行bootloader程序过程中,检测到所述异常标志后将所述DDR中的内存数据存储到预设存储介质中。
10.一种终端设备,其特征在于,包括如权利要求7至9中任一项所述的***异常内存数据的保存***。
CN201710693906.XA 2017-08-14 2017-08-14 ***异常内存数据的保存方法、装置、***及终端设备 Active CN107463459B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710693906.XA CN107463459B (zh) 2017-08-14 2017-08-14 ***异常内存数据的保存方法、装置、***及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710693906.XA CN107463459B (zh) 2017-08-14 2017-08-14 ***异常内存数据的保存方法、装置、***及终端设备

Publications (2)

Publication Number Publication Date
CN107463459A CN107463459A (zh) 2017-12-12
CN107463459B true CN107463459B (zh) 2021-02-26

Family

ID=60549621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710693906.XA Active CN107463459B (zh) 2017-08-14 2017-08-14 ***异常内存数据的保存方法、装置、***及终端设备

Country Status (1)

Country Link
CN (1) CN107463459B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228389A (zh) * 2018-01-11 2018-06-29 青岛海信移动通信技术股份有限公司 一种进行数据备份的方法及终端
CN108647131B (zh) * 2018-04-08 2021-04-27 广州视源电子科技股份有限公司 运行日志的输出***
CN109062718B (zh) * 2018-07-12 2021-08-17 联想(北京)有限公司 一种服务器及数据处理方法
CN109240844B (zh) * 2018-08-20 2022-03-22 成都国科微电子有限公司 一种日志获取方法及***
CN112667588B (zh) * 2019-10-16 2022-12-02 青岛海信移动通信技术股份有限公司 一种智能终端设备及其进行文件***数据写入的方法
CN113742113A (zh) * 2020-05-29 2021-12-03 上海微电子装备(集团)股份有限公司 一种嵌入式***健康管理方法、设备及储存介质
CN112199230B (zh) * 2020-10-19 2024-07-05 广东电网有限责任公司佛山供电局 一种支持多核***异常处理的存储控制器
CN112860516A (zh) * 2021-02-04 2021-05-28 展讯通信(上海)有限公司 一种日志保存方法、通信装置、芯片及模组设备
CN115576734B (zh) * 2022-11-18 2023-05-05 南京芯驰半导体科技有限公司 一种多核异构日志存储方法和***
CN116701041B (zh) * 2023-07-27 2023-11-10 飞腾信息技术有限公司 一种内存数据保留方法、保留装置和相关设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536840A (zh) * 2014-12-31 2015-04-22 北京兆易创新科技股份有限公司 一种看门狗计时器及其控制方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286130B (zh) * 2007-04-11 2010-09-29 中兴通讯股份有限公司 一种嵌入式设备的复位故障定位的实现方法
CN101630278A (zh) * 2008-07-18 2010-01-20 深圳富泰宏精密工业有限公司 记录电子装置当机异常信息的方法及其电子装置
KR101913549B1 (ko) * 2010-07-29 2018-10-30 르네사스 일렉트로닉스 가부시키가이샤 반도체 장치 및 데이터 처리 시스템
CN103377095B (zh) * 2012-04-24 2016-12-07 华为技术有限公司 一种运行日志的保存方法和设备
US8874973B2 (en) * 2012-10-26 2014-10-28 Lsi Corporation Methods and structure to assure data integrity in a storage device cache in the presence of intermittent failures of cache memory subsystem
CN104866051B (zh) * 2014-02-24 2018-09-07 华为技术有限公司 一种预测狗复位发生的方法、微控制器及嵌入式***

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536840A (zh) * 2014-12-31 2015-04-22 北京兆易创新科技股份有限公司 一种看门狗计时器及其控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
COMPARISON OF INTERNAL AND EXTERNAL WATCHDOG TIMERS;Eric Schlaepfer;《https://www.maximintegrated.com/en/design/technical-documents/app-notes/4/4229.html》;20080605;第1-6页 *
内存的刷新与自刷新;velanjun;《https://blog.csdn.net/velanjun/article/details/11584589》;20130911;第1页 *

Also Published As

Publication number Publication date
CN107463459A (zh) 2017-12-12

Similar Documents

Publication Publication Date Title
CN107463459B (zh) ***异常内存数据的保存方法、装置、***及终端设备
US9645829B2 (en) Techniques to communicate with a controller for a non-volatile dual in-line memory module
US20170344421A1 (en) Integral post package repair
US6405320B1 (en) Computer system performing machine specific tasks before going to a low power state
US20040073818A1 (en) Computer system performing machine specific tasks before going to a low power state
JP2019527424A (ja) Ddrメモリエラーリカバリ
US20130166866A1 (en) Systems and methods of performing a data save operation
US9317342B2 (en) Characterization of within-die variations of many-core processors
US9229729B2 (en) Initializing processor cores in a multiprocessor system
KR20150111936A (ko) 메모리 모듈에서의 데이터의 런타임 백업
US20190096472A1 (en) Memory chip having reduced baseline refresh rate with additional refreshing for weak cells
US10157657B2 (en) Selective refresh with software components
US10657003B2 (en) Partial backup during runtime for memory modules with volatile memory and non-volatile memory
US10346072B1 (en) Dislocated power loss protection charge storage
US10725689B2 (en) Physical memory region backup of a volatile memory to a non-volatile memory
CN115576734B (zh) 一种多核异构日志存储方法和***
US20150089293A1 (en) Non-Volatile Logic Based Processing Device
US20130145137A1 (en) Methods and Apparatus for Saving Conditions Prior to a Reset for Post Reset Evaluation
US10747611B2 (en) Safety enhancement for memory controllers
JP4867896B2 (ja) 情報処理システム
EP3553662A1 (en) Intergral post package repair
EP3321767A1 (en) Method for reducing power consumption of memory and computer device
CN118132386A (zh) ***崩溃信息保存方法、装置和计算机***
US7475237B2 (en) Timer with periodic channel service
CN117581211A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218

Applicant after: Hisense Visual Technology Co., Ltd.

Address before: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218

Applicant before: QINGDAO HISENSE ELECTRONICS Co.,Ltd.

GR01 Patent grant
GR01 Patent grant