一种嵌入式系统日志收集装置、记录系统及方法

文档序号:9432449阅读:634来源:国知局
一种嵌入式系统日志收集装置、记录系统及方法
【技术领域】
[0001]本发明涉及一种嵌入式系统日志收集装置、记录系统及方法。
【背景技术】
[0002]对于嵌入式系统来讲,日志不仅是一种必要、常见且高效的调试开发手段,也是一种重要的产品维护手段。与其它通用CPU系统相比,嵌入式系统的资源有限。其日志系统的实现往往会受到多方面因素的制约,如制造成本、功耗等。其日志系统的要求是在有限的资源下,尽可能保证功能丰富强大、高效且代价小。日志功能越丰富、越强大,在产品、开发、调试、维护过程中所起的作用越大;日志效率越高、实现代价越小,对嵌入式系统资源要求就越低,产品更具竞争力。
[0003]嵌入式系统主要由软件完成日志功能,CPU需要参与日志运行的所有环节:生成、记录、管理、输出与保存。常见的日志运行流程如图1所示。
[0004]需要记录日志时,首先由软件按照自定义的格式生成日志数据(包括插入时间戳),再将日志数据按需要做如下的处理:直接将日志数据输出到外设接口,如UART ;直接将日志数据保存到非易失性介质,如NAND Flash ;先将日志数据写到缓存buffer,记录日志流程结束。日志的输出与保存由专门的软件模块或CPU来负责。在多CPU嵌入式系统中,常见的日志记录方法是:每个CPU负责各自日志的生成,包括加入时间戳;为每个CPU分配独立的缓存buffer,生成的日志首先被保存到本地的缓存buffer中;每个CPU需要管理属于自己的缓存buffer ;—定条件满足时,由系统中负载最小的CPU负责将其它CPU缓存buffer里的日志数据保存到另外一块大的缓存buffer中,再统一将其输出到外设接口或保存到非易失性介质中。
[0005]在上述方案中,日志运行的每个环节均需要软件参与完成,需要占用嵌入式系统中紧张的CPU资源。设计时,为了保证日志功能,会在保证系统所需业务的基础上提高CPU的规格(如时钟、RAM空间等),这会增加系统成本与功耗;日志的输出与保存由软件控制实现,这通常是一个耗时的流程,与系统内其它业务,尤其是关键业务抢夺资源,降低了日志整体运行效率,也大大降低了整个系统的工作效率;多CPU情形下,各个CPU单独管理自己日志的时间戳。这直接导致了日志数据时间先后及关联性不易确认的问题,加大了日志解析的难度。

【发明内容】

[0006]本发明所要解决的技术问题是,针对现有技术不足,提供一种嵌入式系统日志收集装置、记录系统及方法。
[0007]为解决上述技术问题,本发明所采用的技术方案是:一种嵌入式系统日志收集装置,包括:
预处理模块:负责收集CPU的日志数据并在每条日志数据后添加时间戳信息;
后处理模块:负责将预处理模块处理后的日志数据保存到外置缓存buffer、或者直接输出到外设输出接口、或者保存到NVM中。
[0008]优选地,本发明的装置还包括内部缓存空间:用于暂存由预处理模块处理后的日志数据。
[0009]优选地,所述预处理模块包括:
仲裁器:用于为收集控制器从哪一组FIFO中取数据提供仲裁;
FIFO:用于缓存CPU发送的日志数据;
收集控制器:用于从FIFO里取日志数据;根据记录了不同属性日志处理策略的属性表确定是否丢弃日志数据;向待处理的日志数据中插入时间戳,并将插入时间戳后的日志数据写到对应的内部缓存空间中,同时管理内部缓存空间的各子空间和FIFO的状态。
[0010]优选地,所述后处理模块包括BE控制器和SRAM控制器,所述BE控制器通过SRAM控制器将内部缓存空间的日志数据写到外置buffer中,通过SRAM控制器将外置Buffer的日志数据读出并送给外设输出接口,同时所述BE控制器负责外置缓存buffer空间的管理。
[0011 ] 优选地,所述日志收集装置还包括:
属性表:用于记录不同属性日志数据的处理策略,所述属性表包括多个大小、格式相同的元素,每个元素对应一种日志数据类别;
映射表:用于记录每个类别的日志数据写到内部缓存空间与外置buffer的哪个子空间。
[0012]优选地,所述内部缓存空间按照日志数据的类别划分为多个子空间;所述收集控制器管理每个子空间的写指针,所述BE控制器管理每个子空间的读指针。
[0013]所述外置缓存buffer按照日志数据的类别划分为多个子空间,方便记录不同类别的日志;所述BE控制器管理每个子空间的读指针与写指针。
[0014]
本发明还提供了一种嵌入式系统日志记录系统,包括多个CPU、NVM和日志缓冲buffer ;所述NVM与所述日志缓冲buffer连接;所述日志缓冲buffer与其中一个用于管理日志缓冲buffer、输出与保存日志的CPU连接;其还包括上述的日志收集装置;所述日志收集装置接收来自各CPU发送的日志数据,在每条日志数据后添加时间戳信息,并将添加了时间戳信息的日志数据输出至所述日志缓冲buffer,所述日志缓冲buffer将所述添加了时间戳信息的日志数据保存到所述NVM中;所述NVM与所述日志收集装置双向通信。
[0015]优选地,本发明的日志记录系统还包括外设输出接口 ;所述日志缓冲buffer与所述外设输出接口连接;所述外设输出接口与所述日志收集装置、用于管理日志缓冲buffer、输出与保存日志的CPU双向通信。
[0016]本发明还提供了一种利用上述日志记录系统实现日志记录的方法,包括以下步骤:
1)各CPU构造日志数据;
2)日志收集装置的预处理模块按照CPU配置的顺序从各CPU获取日志数据;
3)对于单一属性的日志数据,将当前系统时间戳信息插入到所获取的日志数据后;对于多属性的日志数据,直接丢弃CPU配置的待丢弃的日志数据,并将当前系统时间戳信息插入到留下的日志数据后;或者忽略CPU的配置信息,将当前系统时间戳信息插入到日志数据后;
4)预处理模块将经步骤3)处理后的数据写到内部缓存空间;
5)判断是否丢弃内部缓存空间内的数据,若是,返回步骤3);否则,进入步骤6);
6)采用下列方式中的一种保存日志数据:将内部缓存空间的日志数据保存到外置buffer中,进入步骤7);后处理模块完成日志数据的输出,CPU将输出的日志数据的保存到NVM中,进入步骤8);内部缓存空间完成日志数据的保存,CPU完成日志数据的输出,进入步骤8);后处理模块直接将内部缓存空间中的日志数据发送给外设输出接口及写到NVM中,进入步骤7);后处理模块先将内部缓存空间中的日志数据写到外置buffer,然后在合适的时间,后处理模块从外置buffer空间中读取日志数据并将其输出到外设输出接口及NVM中,进入步骤7);
7)判断是否丢弃日志数据,若是,进入步骤8);否则,将日志数据输出到外设输出接口,或者将日志数据写到NVM中;
8)结束。
[0017]与现有技术相比,本发明所具有的有益效果为:本发明将日志功能从软件剥离出来,交由日志收集装置实现,提高了日志运行效率和整个嵌入式系统的工作效率,降低了整个嵌入式系统,尤其是多CPU的ASIC的制造成本;由LGM(日志收集装置)统一管理时间戳,降低了日志解析的难度;LGM的主要工作方式、每个关键环节的运行策略均由CPU配置,提高了装置本身及整个日志记录系统的灵活性,提高了本发明的适用性。
【附图说明】
[0018]图1为现有的日
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1