一种嵌入式系统核心转储的方法技术方案

技术编号:20796872 阅读:18 留言:0更新日期:2019-04-06 10:29
本发明专利技术属于计算机系统软件专业技术领域,基于嵌入式开发环境,采用主机端配置,目标机端实现的软件结构,根据核心转储类型,支持对系统内存及程序信息的获取,生成并保存对应的核心转储信息,更好地解决了嵌入式系统错误现场捕获、错误信息存储和错误分析困难等问题。本发明专利技术支持对系统的图形化配置,在主机端提供图形化配置界面,提高了核心转储配置的易用性、直观性;支持从操作系统获取核心转储信息,具体包括程序运行时的内存,寄存器状态,堆栈状态,内存管理信息以及各种函数调用堆栈信息,提高了核心转储信息获取的可靠性、完整性;支持对输出核心转储信息的存储,提高了核心转储信息的安全性,进而提高了错误定位、错误排查的效率。

A Method of Core Dump in Embedded System

The invention belongs to the technical field of computer system software. Based on the embedded development environment, the software structure realized by the host terminal configuration and the target terminal is adopted. According to the core dump type, it supports the acquisition of system memory and program information, generates and saves the corresponding core dump information, and better solves the problems of error field capture, error information storage and error in embedded system. Analysis of difficulties and other issues. The invention supports the graphical configuration of the system, provides a graphical configuration interface on the host side, improves the usability and intuition of the core dump configuration, and supports obtaining core dump information from the operating system, including the memory of the running program, the state of the register, the state of the stack, the information of memory management and the stack information of various function calls, thereby improving the acquisition of core dump information. It supports the storage of the output core dump information, improves the security of the core dump information, and then improves the efficiency of error location and error detection.

【技术实现步骤摘要】
一种嵌入式系统核心转储的方法
本专利技术属于计算机系统软件专业
,涉及一种嵌入式系统核心转储的方法。
技术介绍
随着嵌入式操作系统的高速发展,各类基于嵌入式操作系统的平台已广泛应用在航空航天、工业控制、通信卫星等重要领域当中。此时,嵌入式操作系统的安全性和可靠性要求也随着其应用规模的扩大而越来越高。在嵌入式设备中,系统可以使用的内存空间往往十分有限,因此需要程序设计者对嵌入式系统的内存空间做出精细的分配来保证内存访问的安全性。但即便如此,在程序运行过程中仍会产生某些难以预料的错误,当系统核心进程产生无法恢复的错误时,为了避免系统相关资源受到更大损害,操作系统都会强行停止运行,与之类似,操作系统可以在一个应用进程产生错误时,在不影响其他进程的情况下,中止此进程的运行。在这些情况下,对于嵌入式系统开发或应用人员而言,需要一种方法获得错误发生现场内存中的各种结构及其它重要信息保存下来,据此来分析错误原因。这样,为了快速有效的定位程序错误,提高故障调试效率,核心转储技术的相关研究应运而生。核心转储技术是一种将嵌入式系统产生错误时的相关信息进行获取与保存的一种技术,通过该保存信息可以进行错误分析。目前,在嵌入式操作系统领域中,Linux和WindRiver公司的VxWorks操作系统均对核心转储技术有所实现。二者在执行核心转储操作时,均会生成一个保留当前进程信息的文件,其中包含了程序产生错误时操作系统的相关信息。但Linux在实现过程中存在用户只能通过命令行方式实现核心转储的配置与执行,不方便记忆与操作的问题。而VxWorks在实现过程中则存在对核心转储信息存储方面的缺陷,表现为它通过错误监控与报告工具来实现核心转储功能,该工具将得到的核心转储信息默认储存在内存的高地址空间中,这样在系统发生复位时核心转储信息会消失,导致无法查看的问题,并且,若要将核心转储信息保存在其它存储设备中则需要用户自行实现,降低了错误分析效率。针对上述问题,提出了一种嵌入式系统核心转储技术方案,研制了核心转储工具,提供了图形化配置界面和核心转储服务,实现在嵌入式系统发生错误时的核心转储功能以及对核心转储信息的保存功能。
技术实现思路
本专利技术的目的本文提出了一种嵌入式系统核心转储的方法。该方法基于嵌入式开发环境,支持对系统的图形化配置,支持在系统发生错误退出时对系统内存关键信息的获取与存储,为程序错误分析提供了有力的支撑,开发人员可据此定位错误位置,分析错误,更好地解决了嵌入式系统错误现场捕获、错误信息存储和错误分析困难等问题,有效地提高了嵌入式系统的错误分析效率。本专利技术的技术方案一种嵌入式系统核心转储的方法,其特征在于:包括以下几个步骤:步骤一:核心转储工具包含核心转储插件和核心转储服务两部分,其中核心转储插件用于对核心转储操作进行配置,在主机端运行;核心转储服务实现核心转储操作,与操作系统共同编译生成可执行文件,下载至目标机运行;步骤二:在操作系统启动核心转储服务时,首先从操作系统配置信息中读取核心转储类型、核心转储信息输出方式两项配置;步骤三:初始化核心转储:在系统初始化任务中调用核心转储初始化;步骤四:进行核心转储操作:确定核心转储数据:将核心转储分为两种类型,系统级核心转储与应用级核心转储,在进行核心转储操作前,根据配置中核心转储类型确定所需转储的数据,进入核心转储操作;执行核心转储操作:调取核心转储接口,核心转储接口从操作系统及应用程序中获得程序运行时的内存信息、寄存器状态、堆栈状态、内存管理信息以及各种函数调用堆栈信息,在应用级核心转储中,保存现场,以便在核心转储生成后恢复现场;步骤五:输出核心转储信息:通过核心转储工具,将核心转储信息通过串口输出或存储到Flash设备。所述核心转储插件向用户提供图形化的界面操作,实现核心转储配置功能。所述核心转储服务在目标机端运行,指通过读取配置、核心转储初始化、进行核心转储操作,并将得到的核心转储信息通过串口输出或存储在Flash设备上,实现核心转储服务功能。本专利技术的有益效果本专利技术支持对系统的图形化配置,在主机端提供图形化配置界面,提高了核心转储配置的易用性、直观性;支持从操作系统获取核心转储信息,具体包括程序运行时的内存,寄存器状态,堆栈状态,内存管理信息以及各种函数调用堆栈信息,提高了核心转储信息获取的可靠性、完整性;支持对输出核心转储信息的存储,提高了核心转储信息的安全性,进而提高了错误定位、错误排查的效率。附图说明图1为本专利技术的系统结构图。核心转储工具包含核心转储插件和核心转储服务两部分,其中:a.核心转储插件用于对核心转储操作进行相关配置,在主机开发环境平台上运行;b.核心转储服务用于实现核心转储操作,与操作系统共同编译生成可执行文件,下载至目标机上运行。图2为本专利技术的核心转储服务流程图。具体实施方式本文专利技术了一种核心转储工具,通过该工具来实现核心转储功能。核心转储工具所采用的系统结构如图1所示,分为主机端和目标机端两部分。主机端由核心转储插件组成,以插件的形式集成到基于Eclipse的开发环境平台上,属于开发环境的一部分。核心转储插件面向用户,提供图形化的界面操作,实现对核心转储的配置功能。目标机端由核心转储服务组成,是核心转储工具的主要部分,核心转储服务由操作系统启动,通过读取配置、核心转储初始化、从操作系统及应用程序获取所需数据来进行核心转储操作,并将得到的核心转储信息通过串口输出或存储在Flash设备上,实现核心转储服务功能。在操作系统启动核心转储服务时,核心转储工具将按图2所示流程完成核心转储服务,具体步骤见下:1.读取配置信息从操作系统配置信息中读取核心转储类型、核心转储信息输出方式两项配置。2.核心转储初始化在系统初始化任务中调用核心转储初始化,其调用在内核、内存、系统控制、应用、系统调用、共享数据、共享库、MMU、错误处理、调试、中断、信号量等操作之后。其初始化主要包含以下步骤:(1).检查用于保存核心转储信息的存储空间内是否存在旧的核心转储信息,若存在先将其清除。(2).核心转储内存空间初始化。确定核心转储内存空间页大小。初始化内存空间,如果有虚拟内存管理,则从虚拟内存页申请,如果没有,则申请一个页面,然后初始化核心转储存储块链表。从核心转储内存空间中分配核心转储栈空间。(3).核心转储结构初始化。初始化核心转储用到的数据结构,注册处理各种函数。初始化接口指针和标志,包括信息采集接口、系统物理内存基址及大小、信号量、计数、使能校验、校验函数、写函数等。(4).核心转储存储设备初始化。初始化Flash存储器。将其空间按核心转储内存块的格式分配。(5).其他初始化。主要有挂接校验和函数、内存空间保护使能等。3.进行核心转储操作(1).确定核心转储数据。核心转储是基于嵌入式操作系统的,在操作系统内核或应用运行发生运行错误时,将由操作系统启动核心转储服务,所得到的核心转储信息中包含该时刻的系统状态。具体来说,当出现以下三种类型错误时,会启动核心转储服务:a.嵌入式操作系统在初始化、核心运行及系统调用过程中发生无法处理的错误;b.应用程序发生除零、内存访问越界、非法指针、缓冲区溢出等内存非法访问错误;c.多线程读写的变量数据未加锁保护。比如说,全局变量,静态本文档来自技高网
...

【技术保护点】
1.一种嵌入式系统核心转储的方法,其特征在于,包括以下步骤:步骤一:核心转储工具包含核心转储插件和核心转储服务两部分,其中核心转储插件用于对核心转储操作进行配置,在主机端运行;核心转储服务实现核心转储操作,与操作系统共同编译生成可执行文件,下载至目标机运行;步骤二:在操作系统启动核心转储服务时,首先从操作系统配置信息中读取核心转储类型、核心转储信息输出方式两项配置;步骤三:初始化核心转储:在系统初始化任务中调用核心转储初始化;步骤四:进行核心转储操作:确定核心转储数据:将核心转储分为两种类型,系统级核心转储与应用级核心转储,在进行核心转储操作前,根据配置中核心转储类型确定所需转储的数据,进入核心转储操作;执行核心转储操作:调取核心转储接口,核心转储接口从操作系统及应用程序中获得程序运行时的内存信息、寄存器状态、堆栈状态、内存管理信息以及各种函数调用堆栈信息,在应用级核心转储中,保存现场,以便在核心转储生成后恢复现场;步骤五:输出核心转储信息:通过核心转储工具,将核心转储信息通过串口输出或存储到Flash设备。

【技术特征摘要】
1.一种嵌入式系统核心转储的方法,其特征在于,包括以下步骤:步骤一:核心转储工具包含核心转储插件和核心转储服务两部分,其中核心转储插件用于对核心转储操作进行配置,在主机端运行;核心转储服务实现核心转储操作,与操作系统共同编译生成可执行文件,下载至目标机运行;步骤二:在操作系统启动核心转储服务时,首先从操作系统配置信息中读取核心转储类型、核心转储信息输出方式两项配置;步骤三:初始化核心转储:在系统初始化任务中调用核心转储初始化;步骤四:进行核心转储操作:确定核心转储数据:将核心转储分为两种类型,系统级核心转储与应用级核心转储,在进行核心转储操作前,根据配置中核心转储类型确定所需转储的数据,进入核心转储操作;执行核心转储操作:调取核心转储...

【专利技术属性】
技术研发人员:孙景昌张旻田丹高原魏国
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所
类型:发明
国别省市:陕西,61

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

1