一种嵌入式系统调试信息处理方法及装置的制造方法

文档序号:9235373阅读:359来源:国知局
一种嵌入式系统调试信息处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域的系统调试技术,尤其涉及一种嵌入式系统调试信息处理方法及装置。
【背景技术】
[0002]随着信息化技术的发展,嵌入式系统因其高效、低成本、高可靠性、丰富的代码以及应用程序可扩展性、可移植性等一系列优点,在当前IT (Informat1n Technology,信息技术)产业界被广泛应用。
[0003]嵌入式系统主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的“器件”。嵌入式处理器主要由一个单片机或微控制器(MicroController Unit,MCU)组成。相关支撑硬件可包括显示卡、存储介质(比如R0M(Read OnlyMemory,只读存储器)和RAM (Ramdom Access Memory,易挥发性随机存取存储器)等)、通讯设备等。嵌入式系统通常不具备像硬盘那样大容量的存储介质,而大多使用闪存(FlashMemory)作为存储介质。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用软件等。
[0004]图1示出了一种典型的嵌入式系统的架构。
[0005]调试是嵌入式系统在前期开发过程以及后期维护过程中的重要环节。
[0006]在前期开发过程中,对嵌入式系统出现的异常情况,一般通过软件代码中的打印调试信息来进行跟踪,打印调试信息通过嵌入式系统的串行通信接口(简称串口,如JTAG(Joint Test Act1n Group,联合测试行动小组)协议调试端口)或网络接口输出到外围设备进行显示。
[0007]嵌入式系统销售安装后,如果系统运行过程中出现异常,则一般是通过在嵌入式系统的串口连接上外围设备或将嵌入式系统连接到网络,并复现该异常,然后根据输出的打印调试信息来解决问题。
[0008]然而,在嵌入式系统异常的复现概率较低的情况下,获取系统异常时的调试信息就会变得比较困难。并且,由于某些嵌入式系统已不预留串口或者在某些使用环境下不适合接入串口设备或网络设备以接收和显示打印调试信息,因此使得获取系统异常时的调试信息就会变得异常困难。
[0009]由此可见,在不依赖于嵌入式系统的串口或网络接口的前提下,针对系统异常现象的复现概率较低的情况,如何获取系统异常时的调试信息就变得尤为迫切。

【发明内容】

[0010]本发明实施例提供了一种嵌入式系统调试信息处理方法及装置,用以解决在不依赖于嵌入式系统的串口或网络接口的前提下,针对系统异常现象的复现概率较低的情况,难以获取系统异常时的调试信息的问题。
[0011]本发明实施例提供的嵌入式系统调试信息处理方法,包括:
[0012]检测嵌入式系统的运行过程,并当检测到异常事件发生时,获取所述异常事件发生时的嵌入式系统状态信息;将获取到的嵌入式系统状态信息作为调试信息保存到所述嵌入式系统的存储器中。
[0013]本发明的上述实施例中,由于在嵌入式系统运行过程中检测是否发生异常事件,并在检测到异常事件发生时,将异常事件发生时的嵌入式系统状态信息作为调试信息保存到嵌入式系统的存储器中,一方面,无需通过对异常事件进行复现的方式来获得调试信息,从而解决了针对系统异常现象的复现概率较低的情况,难以获取系统异常时的调试信息的问题;另一方面,上述实施例将调试信息保存到存储器中,在需要调试信息时,只要从该存储器中读取或输出调试信息即可,从而无需依赖于嵌入式系统的串口或网络接口进行调试信息的输出。
[0014]优选地,上述方法还包括:在所述嵌入式系统启动时,确定用于存储调试信息的存储器;其中,若所述嵌入式系统配置有SD卡,则将所述SD卡确定为用于存储调试信息的存储器,若所述嵌入式系统未配置SD卡但配置有通用串行总线USB闪存驱动器,则将所述USB闪存驱动器确定为用于存储调试信息的存储器,若所述嵌入式系统未配置SD卡和USB闪存驱动器,则将所述嵌入式系统内置的闪存FLASH确定为用于存储调试信息的存储器;
[0015]所述将获取到的嵌入式系统状态信息作为调试信息保存到所述嵌入式系统的存储器中,包括:将获取到的嵌入式系统状态信息作为调试信息保存到所确定出的存储器中,所述存储器用于存储所述嵌入式系统发生异常事件时的调试信息的存储器中。
[0016]上述优选方案中,在保存调试信息时,可按照存储优先级保存到相应存储器中。考虑到通常按照存储容量从大到小排序为:SD+>USB闪存驱动器存储器>嵌入式系统自带的FLASH,尤其是嵌入式系统自带的FLASH —般只有16M字节,其存储空间非常宝贵,另外从操作方便的角度考虑,SD卡和U盘具有可插拔的特点,而嵌入式系统自带的FLASH通常是焊接在设备上的,因此使用SD卡或U盘存储调试信息,这样查看存于其上的嵌入式系统调试信息非常方便。
[0017]优选地,上述方法还包括:在所述嵌入式系统启动时,创建跨进程的线程互斥锁;
[0018]所述将获取到的嵌入式系统状态信息作为调试信息保存到所述嵌入式系统的存储器中,包括:利用所述线程互斥锁锁定第一线程以外的其他线程,使用所述第一线程将获取到的嵌入式系统状态信息作为调试信息保存到所述嵌入式系统的存储器中。
[0019]上述优选方案中,由于整个嵌入式系统中存在多个进程,每个进程中都可能存在多个线程,各个线程都可以保存调试信息到存储器,为了防止各线程之间互相干扰,可预先创建一个跨进程的线程互斥锁,这样,在将调试信息存入该日志文件的过程中,可利用该线程互斥锁将除当前向该日志文件写入数据的线程以外的其他线程锁定,以使当前仅有一个线程写入数据。
[0020]优选地,上述方法还包括:所述嵌入式系统启动时,创建用于存储所述嵌入式系统发生异常事件时的调试信息的日志文件,并为所述日志文件创建管道,所述管道中包含用于指示是否允许写入调试信息的控制信息;
[0021]所述将获取到的嵌入式系统状态信息作为调试信息保存到所述嵌入式系统的存储器中,包括:根据所述管道中的控制信息判断是否允许写入调试信息,若允许,则通过所述管道将获取到的嵌入式系统状态信息作为调试信息写入所述日志文件。这样可以提高灵活性。
[0022]优选地,上述方法中还包括:按照设定周期检测所述存储器的空余容量,若所述存储器的空余容量低于设定容量阈值,且所述存储器存储的所有信息中所述嵌入式系统的调试信息所占比例高于设定比例,则:
[0023]根据嵌入式系统的调试信息的保存时间,删除部分调试信息;或者
[0024]将尚未压缩的调试信息进行压缩,若将调试信息压缩后,所述存储器的空余容量仍低于所述设定容量阈值,且所述存储器存储的所有信息中所述嵌入式系统的调试信息所占比例高于所述设定比例,则根据嵌入式系统的调试信息的保存时间,删除部分调试信息。
[0025]上述优选方案可节省存储空间的占用。
[0026]本发明实施例提供的嵌入式系统调试信息处理装置,包括:
[0027]检测单元,用于检测嵌入式系统的运行过程;
[0028]获取单元,用于当所述检测单元检测到异常事件发生时,获取所述异常事件发生时的嵌入式系统状态信息;
[0029]处理单元,用于将所述获取单元获取到的嵌入式系统状态信息作为调试信息保存到所述嵌入式系统的存储器中。
[0030]优选地,上述嵌入式系统调试信息处理装置中,处理单元还用于:在所述嵌入式系统启动时,确定用于存储调试信息的存储器;其中,若所述嵌入式系统配置有SD卡,则将所述SD卡确定为用于存储调试信息的存储器,若所述嵌入式系统未配置SD卡但配置有通用串行总线USB闪存驱动器,则将所述USB闪存驱动器确定为用于存储调试信息的存储器,若所述嵌入式系统未配置SD卡和USB闪存驱动器,则将所述嵌入式系统内置的闪存FLASH确定为用于存储调试信息的存储器;
[0031]所述处理单元具体用于:将获取到的嵌入式系统状态信息作为调试信息保存到确定出的存储器中,所述存储器用于存储所述嵌入式系统发生异常事件时的调试信息的存储器中。
[0032]优选地,上述嵌入式系统调试信息处理装置中,处理单元还用于:在所述嵌入式系统启动时,创建跨进程的线程互斥锁;
[0033]所述处理单元具体用于:利用所述线程互斥锁锁定第一线程以外的其他线程,使用所述第一线程将获取到的嵌入式系统状态信息作为调试信息保存到所述嵌入式系统的存储器中。
[0034]优选地,上述嵌入式系
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1