CN114443442B - 日志存储方法及电子设备 - Google Patents
日志存储方法及电子设备 Download PDFInfo
- Publication number
- CN114443442B CN114443442B CN202210363179.1A CN202210363179A CN114443442B CN 114443442 B CN114443442 B CN 114443442B CN 202210363179 A CN202210363179 A CN 202210363179A CN 114443442 B CN114443442 B CN 114443442B
- Authority
- CN
- China
- Prior art keywords
- memory block
- ddr
- log data
- ddr memory
- log
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了日志存储方法及电子设备,应用于嵌入式系统,所述日志存储方法包括:获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,在DDR硬件设备中获取DDR内存地址;依据所述DDR内存地址获取目标内存块,在所述目标内存块中检索结束标志字段;若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。本申请解决了现有技术中日志存储耗时高技术问题。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及一种日志存储方法及电子设备。
背景技术
在嵌入式设备应用场景中,系统日志时常可以监控设备软件的运行状态,及时记录问题点以及关键信息,方便开发人员后期定位以及解决问题。目前运用的有在flash文件系统中保存日志的方案,flash的访问写入会在系统分配的固定时刻将缓存数据写入flash内存中,耗时在毫秒级别,但在对处理时间比较苛刻的嵌入式系统中,会造成日志存储耗时高的问题。
发明内容
本申请的主要目的在于提供一种日志存储方法及电子设备,旨在解决现有技术中日志存储耗时高的技术问题。
为实现上述目的,本申请提供一种日志存储方法,应用于嵌入式系统,所述日志存储方法包括:
获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,在DDR(Double Data Rate SDRAM)硬件设备中获取DDR内存地址;
依据所述DDR内存地址获取目标内存块,在所述目标内存块中检索结束标志字段;
若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;
若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。
可选地,所述依据所述DDR内存地址获取目标内存块的步骤包括:
依据所述DDR内存地址,获取对应DDR内存块的头部标志字段;
依据所述头部标志字段存储的内存状态信息,确定可存储所述日志数据的目标内存块。
可选地,所述内存状态信息至少包括正在使用状态和满成状态,
所述依据所述头部标志字段存储的内存状态信息,确定可存储所述日志数据的目标内存块的步骤包括:
依据所述头部标志字段得到所述DDR内存块的内存状态信息;
若所述内存状态信息为正在使用状态,则将所述DDR内存块作为目标内存块,执行步骤:在所述目标内存块中检索结束标志字段;
若所述内存状态信息为满成状态,则查找未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为所述目标内存块。
可选地,所述查找未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为所述目标内存块的步骤还包括:
若不存在未使用状态的DDR内存块,则在所有DDR内存块中提取全部日志数据的存储时间;
依据各所述存储时间,在各所述DDR内存块中选取待初始化DDR内存块;
将所述待初始化DDR内存块的内存状态信息初始化为未使用状态,得到所述目标内存块。
可选地,所述在所述结束标志字段后存储所述日志数据的步骤包括:
确定所述目标内存块的剩余存储空间是否能完整存储所述日志数据;
若所述目标内存块的剩余存储空间能完整存储所述日志数据,则在所述结束标志字段后存储所述日志数据;
若所述目标内存块的剩余存储空间不能完整存储所述日志数据,则将所述目标内存块的内存状态信息修改为满成状态,查找未使用状态的DDR内存块,在所述未使用状态的DDR内存块中存储所述日志数据。
可选地,在所述结束标志字段后存储所述日志数据的步骤之后,所述日志存储方法还包括:
确定所述目标内存块的存储空间是否满成;
若所述目标内存块的存储空间已满成,则将所述目标内存块的内存状态信息修改为满成状态;
若所述目标内存块的存储空间未满成,则在所述日志数据的尾部加入结束标志字段。
为实现上述目的,本申请还提供一种日志存储装置,应用于嵌入式系统,所述日志存储装置包括:
接收数据模块,用于获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,在DDR硬件设备中获取DDR内存地址;
确定位置模块,用于依据所述DDR内存地址获取目标内存块,在所述目标内存块中检索结束标志字段;
第一日志存储模块,用于若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;
第二日志存储模块,用于若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。
可选地,所述确定位置模块还用于:
依据所述DDR内存地址,获取对应DDR内存块的头部标志字段;
依据所述头部标志字段存储的内存状态信息,确定可存储所述日志数据的目标内存块。
可选地,所述确定位置模块还用于:
依据所述头部标志字段得到所述DDR内存块的内存状态信息;
若所述内存状态信息为正在使用状态,则将所述DDR内存块作为目标内存块,执行步骤:在所述目标内存块中检索结束标志字段;
若所述内存状态信息为满成状态,则查找未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为所述目标内存块。
可选地,所述确定位置模块还用于:
若不存在未使用状态的DDR内存块,则在所有DDR内存块中提取全部日志数据的存储时间;
依据各所述存储时间,在各所述DDR内存块中选取待初始化DDR内存块;
将所述待初始化DDR内存块的内存状态信息初始化为未使用状态,得到所述目标内存块。
可选地,所述第一日志存储模块还用于:
确定所述目标内存块的剩余存储空间是否能完整存储所述日志数据;
若所述目标内存块的剩余存储空间能完整存储所述日志数据,则在所述结束标志字段后存储所述日志数据;
若所述目标内存块的剩余存储空间不能完整存储所述日志数据,则将所述目标内存块的内存状态信息修改为满成状态,查找未使用状态的DDR内存块,在所述未使用状态的DDR内存块中存储所述日志数据。
可选地,所述日志存储装置还用于:
确定所述目标内存块的存储空间是否满成;
若所述目标内存块的存储空间已满成,则将所述目标内存块的内存状态信息修改为满成状态;
若所述目标内存块的存储空间未满成,则在所述日志数据的尾部加入结束标志字段。
本申请还提供一种电子设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述日志存储方法的程序,所述日志存储方法的程序被处理器执行时可实现如上述的日志存储方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现日志存储方法的程序,所述日志存储方法的程序被处理器执行时实现如上述的日志存储方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的日志存储方法的步骤。
本申请提供了一种日志存储方法及电子设备,本申请中获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,在DDR硬件设备中获取DDR内存地址;依据所述DDR内存地址获取目标内存块,在所述目标内存块中检索结束标志字段;若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。也即,本申请通过获取嵌入式系统运行后的日志数据,通过DDR硬件设备获得DDR内存地址,再将所述日志数据存入DDR内存块中,使内存访问数据速率加快,从而使日志存储的速度加快。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请日志存储方法第一实施例的流程示意图;
图2为本申请实施例中日志存储方法涉及的硬件运行环境的设备结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本申请保护的范围。
实施例一
本申请实施例提供一种日志存储方法,在本申请日志存储方法的第一实施例中,参照图1,所述日志存储方法包括:
步骤S10,获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,在DDR硬件设备中获取DDR内存地址;
步骤S20,依据所述DDR内存地址获得目标内存块,在所述目标内存块中检索结束标志字段;
步骤S30,若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;
步骤S40,若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。
在本实施例中,需要说明的是,本申请实施例中为日志写入提供的存储介质为DDRSDRAM(双倍速率同步动态随机存储器),DDR内存中划分多个固定大小的DDR内存块,为了防止在运行状态下断电重启导致日志数据丢失,需要将DDR启动管脚改为GPIO引脚控制,可以将复位加载的低电平持续时间大约从100毫秒缩减至10微秒,使DDR内存在系统复位时不会写入随机值,所述DDR内存地址为所述DDR内存中的存储日志数据的DDR内存块地址,所述DDR内存地址从DDR硬件设备的挂载地址中获取,不同硬件设备的挂载地址不同,所述DDR内存地址指向一个对应DDR内存块;在所述DDR内存块的头部存有头部标志字段,所述头部标志字段记录所述DDR内存片段的存储状态,所述存储状态可以为未使用状态,正在使用状态,满成状态中的任意一种,其中,所述未使用状态表示所述DDR内存块没有存储过日志数据,所述正在使用状态表示所述DDR内存块已存储过日志数据,并且可以继续存储日志数据,所述满成状态表示所述DDR内存块中已存储了日志数据,但所述DDR内存块中的存储空间已满,不能继续存入日志数据,目标内存块为所述日志数据存储的内存块;在所述DDR内存片段中存有结束标志字段,所述结束标志字段为上一日志数据的结尾标志,在所述上一日志数据的结束标志字段后可写入新的日志数据。
另外,需要说明的是,嵌入式系统的运行判断为人为判断,当所述嵌入式系统运行正常时,操作人员可以选择通过运行正常的写入接口来存储所述日志数据,嵌入式系统预设单次运行固定时间,若所述嵌入式系统运行正常,则会在生成日志数据后将所述日志数据存入缓存空间,在所述嵌入式系统运行成功后,将缓存空间的日志数据存入DDR内存块中;当所述嵌入式系统运行异常时,表示代码运行出错导致系统运行出错,操作人员可以选择通过运行异常的写入接口来存储所述异常位置信息,将异常的日志数据的存储优先级提高,将所述异常位置信息直接写入所述DDR内存块中,方便后续查看出错原因。
作为一种示例,步骤S10至步骤S40包括:
获取嵌入式系统在完成一次运行过程后发送的日志数据,确定所述嵌入式系统是否运行正常;若确定所述嵌入式系统运行正常,则将所述日志数据存入缓存空间,同时从DDR硬件设备中获取存储所述日志数据的DDR内存地址;依据所述DDR内存地址获得各DDR内存块的头部标志字段,从而得到可使用的目标内存块,所述目标内存块的存储状态应该是正在使用状态或未使用状态,在所述目标内存块中检索上一日志数据后的结束标志字段;当所述单次运行时间还有剩余时,从所述缓存空间中取出所述日志数据,将所述日志数据存储进DDR内存块;若确定所述嵌入式系统运行异常,则所述日志数据为嵌入式系统运行异常的出错信息及出错的具体位置,从而将所述日志数据直接存储在所述DDR内存块中。
本申请实施例中针对不同的使用场景有不同的额写入机制,通过缓存空间写入日志数据,可以减少所述DDR内存的访问次数,以达到减少耗时的要求,直接将所述日志数据写入的方式实时性比较高,可以避免运行出错导致日志数据存储没有执行,导致日志数据丢失的情况。
其中,所述依据所述DDR内存地址获得DDR内存片段,依据所述DDR内存地址获取目标内存块的步骤包括:
步骤S21,依据所述DDR内存地址,获取对应DDR内存块的头部标志字段;
步骤S22,依据所述头部标志字段存储的内存状态信息,确定可存储所述日志数据的目标内存块。
在本实施例中,需要说明的是,在所述DDR内存地址中包含头部标志字段,所述头部标志字段可以表示所述DDR内存块的存储状态,所述存储状态可以是未使用状态、正在使用状态、满成状态中的任意一种。
作为一种示例,步骤S21至步骤S22包括:
通过所述DDR内存地址获得对应DDR内存块,从所述DDR内存地址上能够得到DDR内存块的头部标志字段,从而获得所述DDR内存块的存储状态,若所述DDR内存块的存储状态为正在使用状态,则将所述DDR内存块作为目标内存块,若所述DDR内存地址指向的DDR内存块的存储状态为满成状态,则获取存储状态为未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为目标内存块。
其中,所述内存状态信息至少包括正在使用状态和满成状态,
所述依据所述头部标志字段存储的内存状态信息,确定可存储所述日志数据的目标内存块的步骤包括:
步骤S221,依据所述头部标志字段得到所述DDR内存块的内存状态信息;
步骤S222,若所述内存状态信息为正在使用状态,则将所述DDR内存块作为目标内存块,执行步骤:在所述目标内存块中检索结束标志字段;
步骤S223,若所述内存状态信息为满成状态,则查找未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为所述目标内存块。
作为一种示例,步骤S221至步骤S223包括:
依据所述头部标志字段得到所述DDR内存块的内存状态信息,对所述内存状态信息进行判断,若所述DDR内存块的内存状态信息为正在使用状态,则将所述DDR内存块作为目标内存块,可以在所述目标内存块中继续存储日志数据,执行步骤:在所述目标内存块中检索结束标志字段;若所述DDR内存块的内存状态信息为满成状态,则不能在所述DDR内存块中继续存储日志数据,需要查找未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为目标内存块,在所述未使用状态的DDR内存块中存入所述日志数据。
其中,所述查找未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为所述目标内存块的步骤还包括:
步骤A10,若不存在未使用状态的DDR内存块,则在所有DDR内存块中提取全部日志数据的存储时间;
步骤A20,依据各所述存储时间,在各所述DDR内存块中选取待初始化DDR内存块;
步骤A30,将所述待初始化DDR内存块的内存状态信息初始化为未使用状态,得到所述目标内存块。
在本实施例中,需要说明的是,DDR内存中划分多个DDR内存块,当其中一个DDR内存块满成时会替换为另一个未使用状态的DDR内存块;在存储日志数据时,会同时写入存储日志的时间。
作为一种示例,步骤A10至步骤A30包括:
判断所述DDR内存中的DDR内存块的内存状态信息是否全部为满成状态,若所述全部DDR内存块的内存状态信息均为满成状态,表示所述DDR内存中不存在未使用状态的DDR内存块,从而导致存储空间不足,需要启动回环机制,将所有DDR内存块中存储时间最远的日志数据的DDR内存块的内存状态信息修改为未使用状态,将所述DDR内存块作为目标内存块,在所述目标内存块中存入所述日志数据,以将存储时间最远的日志数据替换,可以控制所述DDR内存中日志数据的数量,从而控制所诉DDR内存中的占用空间。
其中,所述在所述结束标志字段后存储所述日志数据的步骤包括:
步骤S31,确定所述目标内存块的剩余存储空间是否能完整存储所述日志数据;
步骤S32,若所述目标内存块的剩余存储空间能完整存储所述日志数据,则在所述结束标志字段后存储所述日志数据;
步骤S33,若所述目标内存块的剩余存储空间不能完整存储所述日志数据,则将所述目标内存块的内存状态信息修改为满成状态,查找未使用状态的DDR内存块,在所述未使用状态的DDR内存块中存储所述日志数据。
在本实施例中,需要说明的是,在内存状态信息为正在使用的DDR内存块中,所述日志数据需要使用的存储空间可能大于所述DDR内存块的剩余存储空间。
作为一种示例,步骤S31至步骤S33包括:
判断所述目标内存块的剩余存储空间是否足够存储所述日志数据;若所述目标内存块能完整存储所述日志数据,则直接在所述目标内存块中存储所述日志数据;若所述目标内存块不能完整存储所述日志数据,则将所述目标内存块的内存状态信息修改为满成状态,同时在内存中查找未使用状态的DDR内存块,在所述未使用状态的DDR内存块中存储所述日志数据。
其中,在所述结束标志字段后存储所述日志数据的步骤之后,所述日志存储方法还包括:
步骤B10,确定所述目标内存块的存储空间是否满成;
步骤B20,若所述目标内存块的存储空间已满成,则将所述目标内存块的内存状态信息修改为满成状态;
步骤B30,若所述目标内存块的存储空间未满成,则在所述日志数据的尾部加入结束标志字段。
作为一种示例,步骤B10至步骤B30包括:
在存储所述日志数据之后,需要判断所述目标内存块的存储空间是否已满成,若所述存储空间已满成,则将所述目标内存块的内存状态信息修改为满成状态,下一次存储日志数据时,将不会在所述目标内存块中继续存储,而是获得未使用状态的DDR内存块,在所述未使用状态的DDR内存块中继续存储日志数据;若所述目标内存块的存储空间未满成,则在所述写入的日志数据的尾部之后,加入结束标志字段。
其中,所述日志存储方法应用于嵌入式系统,所述日志存储方法还包括:
步骤C10,接收所述嵌入式系统的运行判断结果;
步骤C20,若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,执行步骤:在所述结束标志字段后存储所述日志数据;
步骤C30,若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至所述DDR内存块中。
本申请实施例提供了一种日志存储方法,本申请实施例中获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,在DDR硬件设备中获取DDR内存地址;依据所述DDR内存地址获取目标内存块,在所述目标内存块中检索结束标志字段;若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。也即,本申请实施例通过获取嵌入式系统运行后的日志数据,通过DDR硬件设备获得DDR内存地址,再将所述日志数据存入DDR内存块中,使内存访问数据速率加快,从而使日志存储的速度加快。
实施例二
本申请实施例还提供一种日志存储装置,应用于嵌入式系统,所述日志存储装置包括:
接收数据模块,用于获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,在DDR硬件设备中获取DDR内存地址;
确定位置模块,用于依据所述DDR内存地址获取目标内存块,在所述目标内存块中检索结束标志字段;
第一日志存储模块,用于若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;
第二日志存储模块,用于若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。
可选地,所述确定位置模块还用于:
依据所述DDR内存地址,获取对应DDR内存块的头部标志字段;
依据所述头部标志字段存储的内存状态信息,确定可存储所述日志数据的目标内存块。
可选地,所述确定位置模块还用于:
依据所述头部标志字段得到所述DDR内存块的内存状态信息;
若所述内存状态信息为正在使用状态,则将所述DDR内存块作为目标内存块,执行步骤:在所述目标内存块中检索结束标志字段;
若所述内存状态信息为满成状态,则查找未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为所述目标内存块。
可选地,所述确定位置模块还用于:
若不存在未使用状态的DDR内存块,则在所有DDR内存块中提取全部日志数据的存储时间;
依据各所述存储时间,在各所述DDR内存块中选取待初始化DDR内存块;
将所述待初始化DDR内存块的内存状态信息初始化为未使用状态,得到所述目标内存块。
可选地,所述第一日志存储模块还用于:
确定所述目标内存块的剩余存储空间是否能完整存储所述日志数据;
若所述目标内存块的剩余存储空间能完整存储所述日志数据,则在所述结束标志字段后存储所述日志数据;
若所述目标内存块的剩余存储空间不能完整存储所述日志数据,则将所述目标内存块的内存状态信息修改为满成状态,查找未使用状态的DDR内存块,在所述未使用状态的DDR内存块中存储所述日志数据。
可选地,所述日志存储装置还用于:
确定所述目标内存块的存储空间是否满成;
若所述目标内存块的存储空间已满成,则将所述目标内存块的内存状态信息修改为满成状态;
若所述目标内存块的存储空间未满成,则在所述日志数据的尾部加入结束标志字段。
本申请提供的日志存储装置,采用上述实施例中的日志存储方法,解决了日志存储耗时高的技术问题。与现有技术相比,本申请实施例提供的日志存储装置的有益效果与上述实施例提供的日志存储方法的有益效果相同,且该日志存储装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
实施例三
本申请实施例提供一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的日志存储方法。
下面参考图2,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图2示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图2所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)中的程序或者从存储装置加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有电子设备操作所需的各种程序和数据。处理装置、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。
通常,以下系统可以连接至I/O接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从ROM被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。
本申请提供的电子设备,采用上述实施例中的日志存储方法,解决了日志存储耗时高的技术问题。与现有技术相比,本申请实施例提供的电子设备的有益效果与上述实施例提供的日志存储方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
实施例四
本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的日志存储的方法。
本申请实施例提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,在DDR硬件设备中获取DDR内存地址;依据所述DDR内存地址获取目标内存块,在所述目标内存块中检索结束标志字段;若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本申请提供的计算机可读存储介质,存储有用于执行上述日志存储方法的计算机可读程序指令,解决了日志存储耗时高的技术问题。与现有技术相比,本申请实施例提供的计算机可读存储介质的有益效果与上述实施例提供的日志存储方法的有益效果相同,在此不做赘述。
实施例五
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的日志存储方法的步骤。
本申请提供的计算机程序产品解决了日志存储耗时高的技术问题。与现有技术相比,本申请实施例提供的计算机程序产品的有益效果与上述实施例提供的日志存储方法的有益效果相同,在此不做赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。
Claims (6)
1.一种日志存储方法,其特征在于,应用于嵌入式系统,所述日志存储方法包括:
获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,将DDR硬件设备设置为GPIO引脚控制,在所述DDR硬件设备中获取DDR内存地址;
依据所述DDR内存地址,获取对应DDR内存块的头部标志字段;
依据所述头部标志字段得到所述DDR内存块的内存状态信息,其中,所述内存状态信息至少包括正在使用状态和满成状态;
若所述内存状态信息为正在使用状态,则将所述DDR内存块作为目标内存块,执行步骤:在所述目标内存块中检索结束标志字段;
若所述内存状态信息为满成状态,则查找未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为所述目标内存块;
若不存在未使用状态的DDR内存块,则在所有DDR内存块中提取全部日志数据的存储时间;
依据各所述存储时间,在各所述DDR内存块中选取待初始化DDR内存块;
将所述待初始化DDR内存块的内存状态信息初始化为未使用状态,得到所述目标内存块;
在所述目标内存块中检索结束标志字段;
若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;
若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。
2.如权利要求1所述日志存储方法,其特征在于,所述在所述结束标志字段后存储所述日志数据的步骤包括:
确定所述目标内存块的剩余存储空间是否能完整存储所述日志数据;
若所述目标内存块的剩余存储空间能完整存储所述日志数据,则在所述结束标志字段后存储所述日志数据;
若所述目标内存块的剩余存储空间不能完整存储所述日志数据,则将所述目标内存块的内存状态信息修改为满成状态,查找未使用状态的DDR内存块,在所述未使用状态的DDR内存块中存储所述日志数据。
3.如权利要求1所述日志存储方法,其特征在于,在所述结束标志字段后存储所述日志数据的步骤之后,所述日志存储方法还包括:
确定所述目标内存块的存储空间是否满成;
若所述目标内存块的存储空间已满成,则将所述目标内存块的内存状态信息修改为满成状态;
若所述目标内存块的存储空间未满成,则在所述日志数据的尾部加入结束标志字段。
4.一种日志存储装置,其特征在于,应用于嵌入式系统,所述日志存储装置包括:
接收数据模块,用于获取所述嵌入式系统的日志数据以及所述嵌入式系统的运行判断结果,将DDR硬件设备设置为GPIO引脚控制,在所述DDR硬件设备中获取DDR内存地址;
确定位置模块,用于依据所述DDR内存地址,获取对应DDR内存块的头部标志字段;
还用于依据所述头部标志字段得到所述DDR内存块的内存状态信息,其中,所述内存状态信息至少包括正在使用状态和满成状态;
还用于若所述内存状态信息为正在使用状态,则将所述DDR内存块作为目标内存块,执行步骤:在所述目标内存块中检索结束标志字段;
还用于若所述内存状态信息为满成状态,则查找未使用状态的DDR内存块,将所述未使用状态的DDR内存块作为所述目标内存块;
还用于若不存在未使用状态的DDR内存块,则在所有DDR内存块中提取全部日志数据的存储时间;
还用于依据各所述存储时间,在各所述DDR内存块中选取待初始化DDR内存块;
还用于将所述待初始化DDR内存块的内存状态信息初始化为未使用状态,得到所述目标内存块;
第一日志存储模块,用于若所述运行判断结果为正常,则从缓存空间中取出所述日志数据,在所述结束标志字段后存储所述日志数据;
第二日志存储模块,用于若所述运行判断结果为异常,则获取运行异常信息,将所述运行异常信息直接储存至DDR内存块中。
5.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至3中任一项所述日志存储方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现日志存储方法的程序,所述实现日志存储方法的程序被处理器执行以实现如权利要求1至3中任一项所述日志存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210363179.1A CN114443442B (zh) | 2022-04-08 | 2022-04-08 | 日志存储方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210363179.1A CN114443442B (zh) | 2022-04-08 | 2022-04-08 | 日志存储方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114443442A CN114443442A (zh) | 2022-05-06 |
CN114443442B true CN114443442B (zh) | 2022-07-22 |
Family
ID=81359809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210363179.1A Active CN114443442B (zh) | 2022-04-08 | 2022-04-08 | 日志存储方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443442B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383012B (zh) * | 2023-05-26 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 获取开机日志的方法及装置、传输开机日志的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751394A (zh) * | 2008-12-16 | 2010-06-23 | 青岛海信传媒网络技术有限公司 | 数据同步方法和数据同步系统 |
CN102609484A (zh) * | 2012-01-19 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种通用系统日志管理方法 |
CN114168401A (zh) * | 2021-10-26 | 2022-03-11 | 苏州浪潮智能科技有限公司 | 一种日志记录方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7321987B2 (en) * | 2005-01-04 | 2008-01-22 | International Business Machines Corporation | Error monitoring of partitions in a computer system using partition status indicators |
CN101706822B (zh) * | 2009-12-18 | 2012-08-08 | 杭州迪普科技有限公司 | 提高挂载日志式文件系统速度的方法及设备 |
CN102567184B (zh) * | 2011-12-27 | 2014-12-17 | 青岛海信宽带多媒体技术有限公司 | 一种基于Flash的日志存储方法 |
CN110633166B (zh) * | 2018-06-22 | 2023-03-21 | 迈普通信技术股份有限公司 | 复位装置及复位方法 |
-
2022
- 2022-04-08 CN CN202210363179.1A patent/CN114443442B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751394A (zh) * | 2008-12-16 | 2010-06-23 | 青岛海信传媒网络技术有限公司 | 数据同步方法和数据同步系统 |
CN102609484A (zh) * | 2012-01-19 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种通用系统日志管理方法 |
CN114168401A (zh) * | 2021-10-26 | 2022-03-11 | 苏州浪潮智能科技有限公司 | 一种日志记录方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114443442A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8607003B2 (en) | Memory access to a dual in-line memory module form factor flash memory | |
CN111596863B (zh) | 一种数据读取方法、装置、设备及可读存储介质 | |
US9262283B2 (en) | Method for reading kernel log upon kernel panic in operating system | |
US8171192B2 (en) | Hardware-assisted device configuration detection | |
CN110989926B (zh) | 故障磁盘槽位定位方法、装置及电子设备 | |
KR102100458B1 (ko) | 메모리를 관리하기 위한 방법 및 그 전자 장치 | |
CN109683967B (zh) | 固件支持方法、装置、移动终端及可读存储介质 | |
CN110825419B (zh) | 一种固件刷新方法、装置及电子设备和存储介质 | |
US9239742B2 (en) | Embedded systems and methods for threads and buffer management thereof | |
CN114443442B (zh) | 日志存储方法及电子设备 | |
US20130080751A1 (en) | Method and device for updating bios program for computer system | |
CN114765051A (zh) | 内存测试方法及装置、可读存储介质、电子设备 | |
CN110633190B (zh) | 一种应用程序内存监控方法、装置、设备及存储介质 | |
CN111694684B (zh) | 存储设备的异常构造方法、装置、电子设备及存储介质 | |
US11862278B2 (en) | Memory test systems and memory test methods | |
CN112181467B (zh) | 终端的存储器固件升级方法、装置、终端和存储介质 | |
CN110769316B (zh) | 一种首帧时间的计算方法、装置、设备和存储介质 | |
CN115656788B (zh) | 一种芯片测试系统、方法、设备及存储介质 | |
CN108009039B (zh) | 终端信息的记录方法、装置、存储介质及电子设备 | |
CN114420190A (zh) | Emmc损耗度检测方法、装置、电子设备及存储介质 | |
KR20100050098A (ko) | 영상처리장치 및 그 제어 방법 | |
CN113961370A (zh) | Bmc与bios通信的方法、装置、服务器及存储介质 | |
CN114968644A (zh) | 系统软件转储方法、装置、电子设备及可读存储介质 | |
US9128873B2 (en) | Memory bus attached input/output (‘I/O’) subsystem management in a computing system | |
CN112182652B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |