CN103186461A - 一种现场数据的保存方法和恢复方法以及相关装置 - Google Patents

一种现场数据的保存方法和恢复方法以及相关装置 Download PDF

Info

Publication number
CN103186461A
CN103186461A CN201110455767XA CN201110455767A CN103186461A CN 103186461 A CN103186461 A CN 103186461A CN 201110455767X A CN201110455767X A CN 201110455767XA CN 201110455767 A CN201110455767 A CN 201110455767A CN 103186461 A CN103186461 A CN 103186461A
Authority
CN
China
Prior art keywords
data
field data
embedded device
register
abnormal
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.)
Granted
Application number
CN201110455767XA
Other languages
English (en)
Other versions
CN103186461B (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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Chongqing Cyit Communication Technologies 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 Chongqing Cyit Communication Technologies Co Ltd filed Critical Chongqing Cyit Communication Technologies Co Ltd
Priority to CN201110455767.XA priority Critical patent/CN103186461B/zh
Publication of CN103186461A publication Critical patent/CN103186461A/zh
Application granted granted Critical
Publication of CN103186461B publication Critical patent/CN103186461B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种现场数据的保存方法和恢复方法以及相关装置,用于解决嵌入式设备出现异常后现场数据的恢复。本发明实施例方法包括:当嵌入式设备发生异常时,触发软中断;读取所述嵌入式设备发生异常时的现场数据,将所述现场数据保存到非易失性文件系统中,所述现场数据包括所述嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据;将所述现场数据的信息写入异常数据描述文件中,将所述异常数据描述文件保存到所述非易失性文件系统中,所述现场数据的信息包括:所述现场数据的数据类型、所述现场数据对应地址空间的起始地址、所述现场数据的数据长度以及所述嵌入式设备发生异常的类型。

Description

一种现场数据的保存方法和恢复方法以及相关装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种现场数据的保存方法和恢复方法以及相关装置。
背景技术
在嵌入式设备进行真实环境测试时或在平常使用嵌入式设备时,嵌入式设备可能会发生各种各样的异常情况,导致嵌入式设备无法正常工作,这就需要检测嵌入式设备存在什么样的异常情况以便于恢复,但是此时由于嵌入式设备不可能像在实验室进行测试时那样连接有调试器进行检测,况且现场的测试人员或使用者也不具备设备异常分析能力,这就需要对嵌入式设备的当前工作现场进行保存后,然后再拿回提供给开发人员进行分析。
现有技术中,嵌入式设备异常后数据保存和恢复的处理方法通常是:现场人员向嵌入式设备的Trace输出口或内部保存的日志(log)文件输入导致系统崩溃的字符串,以打印出记录出错原因、错误号以及文件系统当前状态、正在运行的进程堆栈、当前函数嵌套调用的情况等等的信息,然后将这些打印信息拿给开发人员,开发人员通过对软件代码进行回朔来查找出问题的地方。
但是本发明的发明人在实现本发明的过程中发现:现有的嵌入式设备异常后数据保存和恢复的方法只能够解决一些简单问题,但无法解决较复杂一点的软件问题。例如,现有的方式可以解决出现在当前进程内的错误,但如果软件出现错误的地方并不在当前进程内,而是在较长时间以前就已经发生了,只是当软件运行到此处时错误才表现出来,那么按照现有的方式通过软件进行记录的log文件是无法找到错误的,也就更无法解决错误了;又如,当前异对嵌入式设备的软件的错误操作(例如非法访问地址、CPU产生Abort错误)引发硬件进入异常模式,按照现有的方式仅保存的当前软件信息也是不足以分析问题的。而且,开发人员在进行问题分析时通过保存的打印信息来恢复当时的场景,即使配合反汇编工具也极其不方便,无法快速、直观的再现当时的场景。
发明内容
本发明实施例提供了一种现场数据的保存方法和恢复方法以及相关装置,用于解决嵌入式设备出现异常后现场数据的恢复。
一方面,本发明实施例提供的现场数据的保存方法,包括:
当嵌入式设备发生异常时,触发软中断;
读取所述嵌入式设备发生异常时的现场数据,将所述现场数据保存到非易失性文件系统中,所述现场数据包括所述嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据;
将所述现场数据的信息写入异常数据描述文件中,将所述异常数据描述文件保存到所述非易失性文件系统中,所述现场数据的信息包括:所述现场数据的数据类型、所述现场数据对应地址空间的起始地址、所述现场数据的数据长度以及所述嵌入式设备发生异常的类型。
另一方面,本发明实施例提供的现场数据的恢复方法,包括:
根据异常数据描述文件将现场数据装载到中央处理单元CPU模拟器上,其中,所述现场数据为嵌入式设备发生异常时保存的数据,所述异常数据描述文件中写入有所述现场数据的信息,所述现场数据的信息包括:所述现场数据的数据类型、所述现场数据对应地址空间的起始地址、所述现场数据的数据长度以及所述嵌入式设备发生异常的类型;
将所述嵌入式设备的软件版本对应的符号表装载到所述CPU模拟器中;
基于所述CPU模拟器上装载的符号表和所述现场数据对所述嵌入式设备发生的异常进行分析。
另一方面,本发明实施例提供的现场数据的保存装置,包括;
中断单元,用于当嵌入式设备发生异常时,触发软中断;
读写单元,用于读取所述嵌入式设备发生异常时的现场数据,将所述现场数据保存到非易失性文件系统中,所述现场数据包括所述嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据;
存储单元,用于将所述现场数据的信息写入异常数据描述文件中,将所述异常数据描述文件保存到所述非易失性文件系统中,所述现场数据的信息包括:所述现场数据的数据类型、所述现场数据对应地址空间的起始地址、所述现场数据的数据长度以及所述嵌入式设备发生异常的类型。
另一方面,本发明实施例提供的现场数据的恢复装置,包括:
现场数据装载单元,用于根据异常数据描述文件将现场数据装载到中央处理单元CPU模拟器上,其中,所述现场数据为嵌入式设备发生异常时保存的数据,所述异常数据描述文件中写入有现场数据的信息,所述现场数据的信息包括:所述现场数据的数据类型、所述现场数据对应地址空间的起始地址、所述现场数据的数据长度以及所述嵌入式设备发生异常的类型;
符号表装载单元,用于将所述嵌入式设备的软件版本对应的符号表装载到所述CPU模拟器中;
异常分析单元,用于基于所述CPU模拟器上装载的符号表和所述现场数据对所述嵌入式设备发生的异常进行分析。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明一实施例中,当嵌入式设备发生异常时首先触发软中断,然后读取嵌入式设备发生异常时的现场数据,将现场数据保存在非易失性文件系统中,然后将现场数据的信息写入到异常数据描述文件中,最后将异常数据描述文件保存到非易失性文件系统,由于本发明实施例中读取和保存的现场数据包括内存中的数据、CPU的通用寄存器以及协处理器的寄存器中的数据,保存的现场数据比较全面,能够记录下嵌入式设备发生异常时的全面信息,为后续开发人员对异常情况的分析保存了足够的信息。
在本发明另一实施例中,首先根据异常数据描述文件将现场数据装载到CPU模拟器上,其次将嵌入式设备的软件版本对应的符号表装载到CPU模拟器中,最后基于CPU模拟器上装载的符号表和现场数据对嵌入式设备发生的异常进行分析,由于本发明实施例中将嵌入式设备异常时保存的现场数据和嵌入式设备的软件版本对应的符号表都加载到了CPU模拟器中,恢复出了嵌入式设备发生异常的现场,实现了与开发一样的调试环境,可以减少异常处理程序对当前软件调用栈的分析等工作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种现场数据的保存方法的示意图;
图2为本发明实施例提供的嵌入式设备所使用的地址空间的示意图;
图3为本发明实施例提供的一种现场数据的恢复方法的示意图;
图4为本发明实施例提供的一种现场数据的保存装置的示意图;
图5为本发明实施例提供的一种现场数据的恢复装置的示意图。
具体实施方式
本发明实施例提供了一种现场数据的保存方法和恢复方法以及相关装置,用于解决嵌入式设备出现异常后现场数据的恢复。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种现场数据的保存方法,如图1所示,包括:
101、当嵌入式设备发生异常时,触发软中断。
在本发明实施例中,当嵌入式设备在发生异常时,触发软中断,进入特定的软中断处理程序,软中断通常是硬中断服务程序对内核的中断,为了保证软中断处理程序在嵌入式设备在异常时仍然可靠,本发明实施例中对于执行步骤101的方法的程序通常放在不会轻易就被修改的存储空间中,例如闪存(Flash Memory)。
102、读取嵌入式设备发生异常时的现场数据,将现场数据保存到非易失性文件系统中,现场数据包括嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据。
在本发明实施例中,读取嵌入式设备发生异常时的现场数据,将现场数据保存到非易失性文件系统中,现场数据指的是嵌入式设备当前的工作现场中的数据,现场数据包括:嵌入式设备的内存中的数据、中央处理单元(CPU,Central Processing Unit)的通用寄存器以及协处理器的寄存器中的数据。从现场数据包括的内容来看,本发明实施例中在嵌入式设备异常时保存的是完整的现场数据,本发明实施例中所有的物理内存以及重要的寄存器空间都作为现场数据保存在非易失性文件系统中,将嵌入式设备的软件当前的完整状态以及部分重要硬件的工作状态都进行了保存,这就使得在异常现场进行重现时几乎没有盲点,本发明能够实现高效率、完整的现场数据保存,本发明实施例中保存的现场数据比较全面,能够记录下嵌入式设备发生异常时的全面信息,为后续开发人员对异常情况的分析保存了足够的信息。
需要说明的是,本发明实施例中,保存到非易失性文件系统中的现场数据除了前述内容之外,现场数据还可以包括嵌入式设备的可读寄存器中的数据,通过保存嵌入式设备的可读寄存器中的数据可以记录下来嵌入式设备发生异常时硬件的执行状态,以便于后续开发人员能够检测到硬件出错的问题。
需要说明的是,在本发明实施例中读取现场数据,将现场数据保存到非易失性文件系统中可以采用一边读一边写入的方式,即读取到现场数据中的一点数据就立即写入非易失性文件系统中,然后再读取现场数据中的一点数据就立即写入非易失性文件系统中,按照这样的方式反复进行,直至将现有数据完整的保存在非易失性文件系统中为止。另外本发明实施例中非易失性文件系统是指部署在非易失性存储设备上的文件系统,例如非易失性存储设备可以是闪存(Flash Memory),又如可擦除可编程只读内存(EPROM,ErasableProgrammable Read-Only Memory)。
需要说明的是,在本发明实施例中,若现场数据包括:嵌入式设备的内存中的数据、可读寄存器中的数据、CPU的通用寄存器以及协处理器的寄存器中的数据,读取嵌入式设备发生异常时的现场数据,将现场数据保存到非易失性文件系统中具体可以包括如下步骤:读取嵌入式设备的内存中的数据,将内存中的数据保存在非易失性文件系统中;读取嵌入式设备的可读寄存器中的数据,将可读寄存器中的数据保存在非易失性文件系统中;读取嵌入式设备的CPU的通用寄存器以及协处理器的寄存器中的数据,将CPU的通用寄存器以及协处理器的寄存器中的数据保存在非易失性文件系统中。对于前述中读取数据、保存数据到非易失性文件系统中,具体可以采用一边读一边写的方式。
另外需要说明的是,在本发明实施例中,将现场数据保存到非易失性文件系统中之前还可以包括:将读取到的现场数据进行压缩;则将现场数据保存到非易失性文件系统中具体为:将压缩后的现场数据保存到非易失性文件系统中。即在读取到现场数据后,可以先对现场数据进行压缩然后再保存在非易失性文件系统中。
103、将现场数据的信息写入异常数据描述文件中,将异常数据描述文件保存到非易失性文件系统中,现场数据的信息包括:现场数据的数据类型、现场数据对应地址空间的起始地址、现场数据的数据长度以及嵌入式设备发生异常的类型。
在本发明实施例中,读取到现场数据、将现场数据写入非易失性文件系统之后,将现场数据的信息写入异常数据描述文件,将异常数据描述文件保存到非易失性文件系统中,其中,现场数据的信息包括:现场数据的数据类型、现场数据对应地址空间的起始地址以及数据长度、嵌入式设备发生的异常的类型。现场数据的数据类型指的是被写入非易失性文件系统的现场数据是内存数据还是寄存器数据,嵌入式设备发送的异常的类型指的是嵌入式设备发生的是哪一种类型的异常,在实际应用中,嵌入式设备异常大致可以分为四种类型:1、软件流程中进行自检测,发现发生了不可容忍的错误(例如Assert()断言接口);2、软件的错误操作引发硬件进入异常模式(例如非法地址访问,CPU产生Abort错误);3、硬件看门狗或软件看门狗检测到系统长时间没有上报信息;4、硬件模块状态异常,导致软件进入异常流程。
需要说明的是,在本发明实施例中,步骤103执行之后还可以包括步骤:向用户反馈嵌入式设备发生异常,以提示用户嵌入式设备需要重启。例如如果嵌入式设备具备显示界面,则通过显示界面向用户(即使用人员或现场测试人员)反馈嵌入式设备异常需要重启,若没有显示界面可利用闪烁的发光二极管(LED,Light Emitting Diode)灯的方式提示用户,然后嵌入式设备可以进行重启供用户正常使用,不影响已保存的异常现场数据。
另外,向用户反馈嵌入式设备发生异常之后还可以包括步骤:在用户重启嵌入式设备之后,将非易失性文件系统中保存的现场数据和异常数据描述文件导出。例如用户通过专用通道连接嵌入式设备与电脑之后,将非易失性文件系统中保存的现场数据和异常数据描述文件导出。
在本发明实施例中,当嵌入式设备发生异常时首先触发软中断,然后读取嵌入式设备发生异常时的现场数据,将现场数据保存在非易失性文件系统中,然后将现场数据的信息写入到异常数据描述文件中,最后将异常数据描述文件保存到非易失性文件系统,由于本发明实施例中读取和保存的现场数据包括内存中的数据、CPU的通用寄存器以及协处理器的寄存器中的数据,保存的现场数据比较全面,能够记录下嵌入式设备发生异常时的全面信息,为后续开发人员对异常情况的分析保存了足够的信息。
接下来一个实际的应用场景来介绍本发明实施例提供的现场数据的保存方法,为了阐述本发明的思想,这里以一款基于ARM的嵌入式设备为例,来描述本方法。首先,假设嵌入式设备的软件系统所使用地址空间如图2。
片内Flash地址空间为0x0-0x1FFFF字节,
内存的物理地址空间范围为0x10000000-0x10FFFFFF(字节),
可读寄存器地址空间分3个段:0x40000000-0x40000100、0x50000000-0x50000100、0x60000000-0x60000100。
假设软件系统开启了内存管理单元(MMU,Memory Management Unit)的地址保护功能,当软件访问禁止的物理地址时,ARM产生一个abort异常中断,此时需要进入嵌入式设备发生异常时的现场数据的保存流程。根据本发明的思路,按照以下几个步骤来实施现场数据的保存:
CPU在abort异常硬件中断产生后,软件会自动跳转到abort异常中断处理程序中运行。在中断处理程序中,为了接下来的操作首先将ARM运行状态修改为指令码(SVC,SuperVisorCall)模式,为了本发明实施例的程序代码在软件运行过程中不会被破坏,其代码位于Flash上。
接下来,读取内存中的数据并将内存中的数据进行保存,这里可以只保存软件系统所使用的部分内存空间,也可以保存整个物理内存空间。这里将地址空间0x10000000-0x10FFFFFF地址的数据分批读出,同时一边读一边压缩后写入FLASH上文件系统的压缩文件1中;分批读取可读寄存器地址空间0x40000000-0x40000100寄存器的值,同时一边读一边压缩后写入FLASH上文件系统的压缩文件2中;分批读取可读寄存器地址空间0x50000000-0x50000100寄存器的值,同时一边读一边压缩后写入FLASH上文件系统的压缩文件3中;分批读取可读寄存器地址空间0x60000000-0x60000100寄存器的值,同时一边读一边压缩后写入FLASH上文件系统的压缩文件4;将ARM各个模式下的CPU的通用寄存器以及各协处理器的寄存器值读出,写入FLASH上文件系统的压缩文件5。
然后,将前面步骤保存的现场数据的信息写入异常数据描述文件,并保存到FLASH上文件系统中。现场数据的信息包括:每个文件保存的数据类型(具体指的是内存数据或是寄存器数据);每个文件数据对应地址空间中的起始地址以及数据长度;当前发生的异常类型(即此例中CPU进入abort中断)。
然后,通过液晶显示器(LCD,Liquid Crystal Display)界面或其他硬件接口向用户提示设备异常并需要重启。
最后,在用户重启嵌入式设备之后,将非易失性文件系统中保存的现场数据和异常数据描述文件导出。
以上实施例介绍了现场数据的保存方法,接下来介绍将现场数据保存下来之后对现场数据进行恢复的方法,如图3所示,包括:
301、根据异常数据描述文件将现场数据装载到CPU模拟器上,其中,现场数据为嵌入式设备发生异常时保存的数据,异常数据描述文件中写入有现场数据的信息,现场数据的信息包括:现场数据的数据类型、现场数据对应地址空间的起始地址、现场数据的数据长度以及嵌入式设备发生异常的类型。
在本发明实施例中,在对现场数据进行恢复时,本发明实施例需要配合使用CPU模拟器,故需要首先开启和发生异常的嵌入式设备相匹配的CPU模拟器,选择和嵌入式设备的CPU相同的CPU模拟器。
在本发明实施例中,前述图1的实施例中已经将现场数据保存下来了,故此处就使用前述实施例中保存下了的现场数据装载到CPU模拟器中,根据前述实施例中的说明,现场数据包括在嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据,异常数据描述文件中写入有现场数据的信息,现场数据的信息包括:现场数据的数据类型、现场数据对应地址空间的起始地址以及、现场数据的数据长度以及嵌入式设备发生异常的类型。需要说明的是,若前述实施例中对现场数据进行了压缩,此处还需要对现场数据进行解压缩才能装载到CPU模拟器上。
需要说明的是,在实际应用中,现场数据包括:所述嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据,根据异常数据描述文件将现场数据装载到CPU模拟器上具体可以包括步骤:
A1、按照嵌入式设备的内存中的数据对应地址空间的起始地址将内存中的数据装载到CPU模拟器上;
A2、根据CPU的通用寄存器以及协处理器的寄存器中的数据对CPU模拟器进行设置。
对于步骤A2,根据嵌入式设备的通用寄存器以及各个协处理器的寄存器中的数据对CPU模拟器进行重新设置,以恢复出原来嵌入式设备发生异常时的CPU当时的现场。
当现场数据还包括:所述嵌入式设备的可读寄存器中的数据,根据异常数据描述文件将现场数据装载到CPU模拟器上除了包括步骤A1、A2之外,还包括如下步骤:
A3、按照嵌入式设备的可读寄存器中的数据对应地址空间的起始地址将可读寄存器中的数据装载到CPU模拟器上。
需要说明的是,在本发明实施例中如果嵌入式的CPU开启了MMU功能,此时需要将页表指向正确的页表地址,此时整个地址空间就与发生异常时一样。
302、将嵌入式设备的软件版本对应的符号表装载到CPU模拟器中。
在本发明实施中,将现场数据装载到CPU模拟器上之后,将嵌入式设备的软件版本对应的符号表装载到CPU模拟器中,符号表是在编译程序工作的过程中记录和使用源程序中语法符号的类型和特征的信息,这些信息一般以表格形式存储于系统中,例如常数表、变量名表、数组名表、过程名表、标号表等等。
303、基于CPU模拟器上装载的符号表和现场数据对嵌入式设备发生的异常进行分析。
在本发明实施例中,将嵌入式设备的软件版本对应的符号表装载到CPU模拟器上之后,基于CPU模拟器上装载的符号表和现场数据对嵌入式设备发生的异常进行分析。通过CPU模拟器开发人员可以清楚的查看软件的各种信息,还可以利用CPU模拟器的扩展功能,查看软件系统所有进程状态、内存分配情况等等。通过CPU模拟器还可以直观看到重要硬件寄存器的状态,可以进行软件模拟单步调试,再现错误过程,大大方便开发人员查找、分析嵌入式设备发送的异常问题。
利用CPU模拟器的自动解析功能,可以看到异常发生时当前的函数栈调用情况、局部变量、全局变量等,还可以对照硬件手册查阅相关硬件模块寄存器状态。功能强大的CPU模拟器还有操作系统扩展功能,可以很方便的看到整个系统当前进程状态、内存分配情况等等,更可以在CPU模拟器上面进行软件单步调试,大大加快开发人员解决设备异常的速度。
在本发明实施例中,首先根据异常数据描述文件将现场数据装载到CPU模拟器上,其次将嵌入式设备的软件版本对应的符号表装载到CPU模拟器中,最后基于CPU模拟器上装载的符号表和现场数据对嵌入式设备发生的异常进行分析,由于本发明实施例中将嵌入式设备异常时保存的现场数据和嵌入式设备的软件版本对应的符号表都加载到了CPU模拟器中,恢复出了嵌入式设备发生异常的现场,实现了异常恢复后与开发一样的调试环境,可以减少异常处理程序对当前软件调用栈的分析等工作。
接下来以一个实际的应用场景对现场数据的恢复方法进行介绍,为了便于说明,以前述的应用场景中保存的现场数据(即图2所描述的应用场景)为例进行说明,按如下步骤重现嵌入式设备异常时的现场数据:
首先在电脑上开启ARM CPU模拟器,将现场数据压缩文件拷贝到电脑上并进行解压缩。
然后,根据异常数据描述文件,将压缩文件1至压缩文件4按照各个数据对应地址空间的起始地址分别装载到CPU模拟器上,然后再将CPU的通用寄存器与各个协处理器的寄存器按照压缩文件5中的保存的数据值一一进行设置。
接下来,装载对应软件版本的符号表到CPU模拟器中。
最后,开始对异常原因进行分析,查看ARM当前运行的代码地址,再对照相关通用寄存器,就可以轻易发现异常原因是在程序某个流程中访问了非法地址。
利用CPU模拟器的自动解析功能,可以看到异常发生时当前的函数栈调用情况、局部变量、全局变量等,还可以对照硬件手册查阅相关硬件模块寄存器状态。CPU模拟器还有操作系统扩展功能,可以很方便的看到整个系统当前进程状态、内存分配情况等等,更可以在模拟器上面进行软件单步调试。使用此方案,将大大加快开发人员解决设备异常的速度。
以上实施例分别介绍了本发明实施例提供的现场数据的保存方法和恢复方法,接下来介绍本发明实施例提供的现场数据的保存装置,如图4所示,现场数据的保存装置400,包括:
中断单元401,用于当嵌入式设备发生异常时,触发软中断;
读写单元402,用于读取嵌入式设备发生异常时的现场数据,将现场数据保存到非易失性文件系统中,现场数据包括嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据;
存储单元403,用于将现场数据的信息写入异常数据描述文件中,将异常数据描述文件保存到非易失性文件系统中,现场数据的信息包括:现场数据的数据类型、现场数据对应地址空间的起始地址、现场数据的数据长度以及嵌入式设备发生异常的类型。
需要说明的是,在实际应用中,现场数据的保存装置400还可以包括:反馈单元404,用于向用户反馈嵌入式设备发生异常,以提示用户嵌入式设备需要重启。需要说明的是,在实际应用中,现场数据的保存装置400还可以包括:导出单元405,用于在用户重启嵌入式设备之后,将非易失性文件系统中保存的现场数据和异常数据描述文件导出。
需要说明的是,在实际应用中,现场数据的保存装置400还可以包括:压缩单元406,用于将读取到的现场数据进行压缩。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明如图1所示的方法实施例中的叙述,此处不再赘述。
在本发明实施例中,当嵌入式设备发生异常时中断单元首先触发软中断,然后读写单元读取嵌入式设备发生异常时的现场数据,保存在非易失性文件系统中,然后存储单元将现场数据的信息写入到异常数据描述文件中,最后存储单元将异常数据描述文件保存到非易失性文件系统,由于本发明实施例中读取并保存的现场数据包括内存中的数据、CPU的通用寄存器以及协处理器的寄存器中的数据,保存的现场数据比较全面,能够记录下嵌入式设备发生异常时的全面信息,为后续开发人员对异常情况的分析保存了足够的信息。
以上实施例介绍了本发明实施例提供的现场数据的保存装置,接下来介绍本发明实施例提供的现场数据的恢复装置,如图5所示,现场数据的恢复装置500,包括:
现场数据装载单元501,用于根据异常数据描述文件将现场数据装载到中央处理单元CPU模拟器上,其中,现场数据为嵌入式设备发生异常时保存的数据,异常数据描述文件中写入有现场数据的信息,现场数据的信息包括:现场数据的数据类型、现场数据对应地址空间的起始地址、现场数据的数据长度以及嵌入式设备发生异常的类型;
符号表装载单元502,用于将嵌入式设备的软件版本对应的符号表装载到CPU模拟器中;
异常分析单元503,用于基于CPU模拟器上装载的符号表和现场数据对嵌入式设备发生的异常进行分析。
需要说明的是,在本发明实施例中,对于现场数据装载单元501而言,现场数据包括:嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据,现场数据装载单元501具体可以包括(未在图5中示出):
第一装载模块,用于按照嵌入式设备的内存中的数据对应地址空间的起始地址将内存中的数据装载到CPU模拟器上;
CPU恢复模块,用于根据CPU的通用寄存器以及协处理器的寄存器中的数据对CPU模拟器进行设置。
另外,现场数据还包括:嵌入式设备的可读寄存器中的数据,现场数据装载单元501具体可以包括(未在图5中示出):
第二装载模块,用于按照嵌入式设备的可读寄存器中的数据对应地址空间的起始地址将可读寄存器中的数据装载到所述CPU模拟器上。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明如图3所示的方法实施例中的叙述,此处不再赘述。
在本发明实施例中,首先现场数据装载单元根据异常数据描述文件将现场数据装载到CPU模拟器上,其次符号表装载单元将嵌入式设备的软件版本对应的符号表装载到CPU模拟器中,最后异常分析单元基于CPU模拟器上装载的符号表和现场数据对嵌入式设备发生的异常进行分析,由于本发明实施例中将嵌入式设备异常时保存的现场数据和嵌入式设备的软件版本对应的符号表都加载到了CPU模拟器中,恢复出了嵌入式设备发生异常的现场,实现了异常恢复后与开发一样的调试环境,可以减少异常处理程序对当前软件调用栈的分析等工作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种现场数据的保存方法和恢复方法以及相关装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种现场数据的保存方法,其特征在于,包括:
当嵌入式设备发生异常时,触发软中断;
读取所述嵌入式设备发生异常时的现场数据,将所述现场数据保存到非易失性文件系统中,所述现场数据包括所述嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据;
将所述现场数据的信息写入异常数据描述文件中,将所述异常数据描述文件保存到所述非易失性文件系统中,所述现场数据的信息包括:所述现场数据的数据类型、所述现场数据对应地址空间的起始地址、所述现场数据的数据长度以及所述嵌入式设备发生异常的类型。
2.根据权利要求1所述的现场数据的保存方法,其特征在于,所述现场数据还包括:所述嵌入式设备的可读寄存器中的数据。
3.根据权利要求1所述的现场数据的保存方法,其特征在于,所述将所述异常描述保存到所述非易失性文件系统中之后,还包括:
向用户反馈所述嵌入式设备发生异常,以提示所述用户所述嵌入式设备需要重启。
4.根据权利要求3所述的现场数据的保存方法,其特征在于,所述向用户反馈所述嵌入式设备发生异常之后还包括:
在所述用户重启所述嵌入式设备之后,将所述非易失性文件系统中保存的所述现场数据和所述异常数据描述文件导出。
5.根据权利要求1所述的现场数据的保存方法,其特征在于,所述将所述现场数据保存到非易失性文件系统中之前包括:
将读取到的现场数据进行压缩;
所述将所述现场数据保存到非易失性文件系统中具体为:
将压缩后的现场数据保存到非易失性文件系统中。
6.一种现场数据的恢复方法,其特征在于,包括:
根据异常数据描述文件将现场数据装载到中央处理单元CPU模拟器上,其中,所述现场数据为嵌入式设备发生异常时保存的数据,所述异常数据描述文件中写入有所述现场数据的信息,所述现场数据的信息包括:所述现场数据的数据类型、所述现场数据对应地址空间的起始地址、所述现场数据的数据长度以及所述嵌入式设备发生异常的类型;
将所述嵌入式设备的软件版本对应的符号表装载到所述CPU模拟器中;
基于所述CPU模拟器上装载的符号表和所述现场数据对所述嵌入式设备发生的异常进行分析。
7.根据权利要求6所述的现场数据的恢复方法,其特征在于,所述现场数据包括:所述嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据;
所述根据异常数据描述文件将所述现场数据装载到所述CPU模拟器上包括:
按照所述嵌入式设备的内存中的数据对应地址空间的起始地址将所述内存中的数据装载到所述CPU模拟器上;
根据所述CPU的通用寄存器以及协处理器的寄存器中的数据对所述CPU模拟器进行设置。
8.根据权利要求7所述的现场数据的恢复方法,其特征在于,所述现场数据还包括:所述嵌入式设备的可读寄存器中的数据;
所述根据异常数据描述文件将所述现场数据装载到所述CPU模拟器上还包括:
按照所述嵌入式设备的可读寄存器中的数据对应地址空间的起始地址将所述可读寄存器中的数据装载到所述CPU模拟器上。
9.一种现场数据的保存装置,其特征在于,包括:
中断单元,用于当嵌入式设备发生异常时,触发软中断;
读写单元,用于读取所述嵌入式设备发生异常时的现场数据,将所述现场数据保存到非易失性文件系统中,所述现场数据包括所述嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据;
存储单元,用于将所述现场数据的信息写入异常数据描述文件中,将所述异常数据描述文件保存到所述非易失性文件系统中,所述现场数据的信息包括:所述现场数据的数据类型、所述现场数据对应地址空间的起始地址、所述现场数据的数据长度以及所述嵌入式设备发生异常的类型。
10.根据权利要求9所述的现场数据的保存装置,其特征在于,所述装置还包括:
反馈单元,用于向用户反馈所述嵌入式设备发生异常,以提示所述用户所述嵌入式设备需要重启。
11.根据权利要求10所述的现场数据的保存装置,其特征在于,所述装置还包括:
导出单元,用于在所述用户重启所述嵌入式设备之后,将所述非易失性文件系统中保存的所述现场数据和所述异常数据描述文件导出。
12.根据权利要求9所述的现场数据的保存装置,其特征在于,所述装置还包括:
压缩单元,用于将读取到的现场数据进行压缩。
13.一种现场数据的恢复装置,其特征在于,包括:
现场数据装载单元,用于根据异常数据描述文件将现场数据装载到中央处理单元CPU模拟器上,其中,所述现场数据为嵌入式设备发生异常时保存的数据,所述异常数据描述文件中写入有现场数据的信息,所述现场数据的信息包括:所述现场数据的数据类型、所述现场数据对应地址空间的起始地址、所述现场数据的数据长度以及所述嵌入式设备发生异常的类型;
符号表装载单元,用于将所述嵌入式设备的软件版本对应的符号表装载到所述CPU模拟器中;
异常分析单元,用于基于所述CPU模拟器上装载的符号表和所述现场数据对所述嵌入式设备发生的异常进行分析。
14.根据权利要求13所述现场数据的恢复装置,其特征在于,所述现场数据包括:所述嵌入式设备的内存中的数据、中央处理单元CPU的通用寄存器以及协处理器的寄存器中的数据;
所述现场数据装载单元包括:
第一装载模块,用于按照所述嵌入式设备的内存中的数据对应地址空间的起始地址将所述内存中的数据装载到所述CPU模拟器上;
CPU恢复模块,用于根据所述CPU的通用寄存器以及协处理器的寄存器中的数据对所述CPU模拟器进行设置。
15.根据权利要求14所述现场数据的恢复装置,其特征在于,所述现场数据还包括:所述嵌入式设备的可读寄存器中的数据;
所述现场数据装载单元还包括:第二装载模块,用于按照所述嵌入式设备的可读寄存器中的数据对应地址空间的起始地址将所述可读寄存器中的数据装载到所述CPU模拟器上。
CN201110455767.XA 2011-12-30 2011-12-30 一种现场数据的保存方法和恢复方法以及相关装置 Active CN103186461B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110455767.XA CN103186461B (zh) 2011-12-30 2011-12-30 一种现场数据的保存方法和恢复方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110455767.XA CN103186461B (zh) 2011-12-30 2011-12-30 一种现场数据的保存方法和恢复方法以及相关装置

Publications (2)

Publication Number Publication Date
CN103186461A true CN103186461A (zh) 2013-07-03
CN103186461B CN103186461B (zh) 2016-07-06

Family

ID=48677637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110455767.XA Active CN103186461B (zh) 2011-12-30 2011-12-30 一种现场数据的保存方法和恢复方法以及相关装置

Country Status (1)

Country Link
CN (1) CN103186461B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102174A (zh) * 2014-06-30 2014-10-15 北京七星华创电子股份有限公司 一种半导体设备软件重启后状态恢复的方法
CN105183576A (zh) * 2015-09-21 2015-12-23 上海斐讯数据通信技术有限公司 一种用于嵌入式olt崩溃后收集异常信息的方法和系统
CN105404551A (zh) * 2015-12-11 2016-03-16 Tcl移动通信科技(宁波)有限公司 移动终端的应用前后台切换处理方法、系统及移动终端
CN105760241A (zh) * 2014-12-18 2016-07-13 联想(北京)有限公司 一种内存数据导出方法和系统
CN106682162A (zh) * 2016-12-26 2017-05-17 浙江宇视科技有限公司 日志管理方法及装置
CN107066508A (zh) * 2017-01-18 2017-08-18 新华三技术有限公司 信息快照方法、设备及cpu
CN107220175A (zh) * 2017-05-08 2017-09-29 百富计算机技术(深圳)有限公司 应用程序死循环定位方法、装置、计算机设备和存储介质
CN107391358A (zh) * 2016-05-17 2017-11-24 大唐移动通信设备有限公司 一种异常数据处理方法和系统
WO2018010600A1 (zh) * 2016-07-11 2018-01-18 中兴通讯股份有限公司 异常处理方法及装置和计算机存储介质
CN108073507A (zh) * 2016-11-17 2018-05-25 联芯科技有限公司 一种内核崩溃现场数据的处理方法及装置
CN108549591A (zh) * 2018-03-02 2018-09-18 烽火通信科技股份有限公司 一种嵌入式系统的黑匣子装置及其实现方法
CN109062718A (zh) * 2018-07-12 2018-12-21 联想(北京)有限公司 一种服务器及数据处理方法
CN109271206A (zh) * 2018-08-24 2019-01-25 晶晨半导体(上海)股份有限公司 一种异常现场的内存压缩和保存方法
CN110825601A (zh) * 2019-10-29 2020-02-21 厦门亿联网络技术股份有限公司 一种嵌入式设备异常场景下的现场保存方法及装置
CN111462870A (zh) * 2020-05-14 2020-07-28 沈阳先进医疗设备技术孵化中心有限公司 数据处理系统及方法
CN111737158A (zh) * 2020-08-25 2020-10-02 开立生物医疗科技(武汉)有限公司 一种异常断言的处理方法、装置、电子设备及存储介质
CN113485967A (zh) * 2021-07-05 2021-10-08 珠海格力电器股份有限公司 一种示教器的数据处理方法、装置、存储介质及示教器
CN116488820A (zh) * 2022-09-07 2023-07-25 厦门市兴百邦科技有限公司 一种基于数据获取分析的电子数据保全方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010049817A1 (en) * 2000-05-31 2001-12-06 Yugo Kashiwagi System developing method, storage medium, information processing apparatus, information terminal apparatus, information processing system, and information processing method
CN1400529A (zh) * 2001-07-30 2003-03-05 华为技术有限公司 一种实时嵌入系统的故障定位方法
CN1632760A (zh) * 2003-12-24 2005-06-29 华为技术有限公司 一种对控制系统异常状态信息进行保存的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010049817A1 (en) * 2000-05-31 2001-12-06 Yugo Kashiwagi System developing method, storage medium, information processing apparatus, information terminal apparatus, information processing system, and information processing method
CN1400529A (zh) * 2001-07-30 2003-03-05 华为技术有限公司 一种实时嵌入系统的故障定位方法
CN1632760A (zh) * 2003-12-24 2005-06-29 华为技术有限公司 一种对控制系统异常状态信息进行保存的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
郭荣佐等: "《嵌入式系统原理》", 31 October 2008, article "软件仿真器", pages: 68-69 *
郭荣佐等: "《嵌入式系统原理》", 31 October 2008, 北京航空航天大学出版社 *

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102174B (zh) * 2014-06-30 2016-09-07 北京七星华创电子股份有限公司 一种半导体设备软件重启后状态恢复的方法
CN104102174A (zh) * 2014-06-30 2014-10-15 北京七星华创电子股份有限公司 一种半导体设备软件重启后状态恢复的方法
CN105760241B (zh) * 2014-12-18 2019-07-26 联想(北京)有限公司 一种内存数据导出方法和系统
CN105760241A (zh) * 2014-12-18 2016-07-13 联想(北京)有限公司 一种内存数据导出方法和系统
CN105183576A (zh) * 2015-09-21 2015-12-23 上海斐讯数据通信技术有限公司 一种用于嵌入式olt崩溃后收集异常信息的方法和系统
CN105183576B (zh) * 2015-09-21 2018-02-13 上海斐讯数据通信技术有限公司 一种用于嵌入式olt崩溃后收集异常信息的方法和系统
CN105404551A (zh) * 2015-12-11 2016-03-16 Tcl移动通信科技(宁波)有限公司 移动终端的应用前后台切换处理方法、系统及移动终端
CN107391358B (zh) * 2016-05-17 2020-08-28 大唐移动通信设备有限公司 一种异常数据处理方法和系统
CN107391358A (zh) * 2016-05-17 2017-11-24 大唐移动通信设备有限公司 一种异常数据处理方法和系统
WO2018010600A1 (zh) * 2016-07-11 2018-01-18 中兴通讯股份有限公司 异常处理方法及装置和计算机存储介质
CN108073507A (zh) * 2016-11-17 2018-05-25 联芯科技有限公司 一种内核崩溃现场数据的处理方法及装置
CN106682162A (zh) * 2016-12-26 2017-05-17 浙江宇视科技有限公司 日志管理方法及装置
CN107066508A (zh) * 2017-01-18 2017-08-18 新华三技术有限公司 信息快照方法、设备及cpu
CN107220175A (zh) * 2017-05-08 2017-09-29 百富计算机技术(深圳)有限公司 应用程序死循环定位方法、装置、计算机设备和存储介质
CN107220175B (zh) * 2017-05-08 2020-01-21 百富计算机技术(深圳)有限公司 应用程序死循环定位方法、装置、计算机设备和存储介质
CN108549591A (zh) * 2018-03-02 2018-09-18 烽火通信科技股份有限公司 一种嵌入式系统的黑匣子装置及其实现方法
CN108549591B (zh) * 2018-03-02 2021-06-15 烽火通信科技股份有限公司 一种嵌入式系统的黑匣子装置及其实现方法
CN109062718A (zh) * 2018-07-12 2018-12-21 联想(北京)有限公司 一种服务器及数据处理方法
CN109271206A (zh) * 2018-08-24 2019-01-25 晶晨半导体(上海)股份有限公司 一种异常现场的内存压缩和保存方法
CN109271206B (zh) * 2018-08-24 2022-01-21 晶晨半导体(上海)股份有限公司 一种异常现场的内存压缩和保存方法
CN110825601A (zh) * 2019-10-29 2020-02-21 厦门亿联网络技术股份有限公司 一种嵌入式设备异常场景下的现场保存方法及装置
CN111462870A (zh) * 2020-05-14 2020-07-28 沈阳先进医疗设备技术孵化中心有限公司 数据处理系统及方法
CN111737158A (zh) * 2020-08-25 2020-10-02 开立生物医疗科技(武汉)有限公司 一种异常断言的处理方法、装置、电子设备及存储介质
CN111737158B (zh) * 2020-08-25 2020-12-18 开立生物医疗科技(武汉)有限公司 一种异常断言的处理方法、装置、电子设备及存储介质
CN113485967A (zh) * 2021-07-05 2021-10-08 珠海格力电器股份有限公司 一种示教器的数据处理方法、装置、存储介质及示教器
CN116488820A (zh) * 2022-09-07 2023-07-25 厦门市兴百邦科技有限公司 一种基于数据获取分析的电子数据保全方法
CN116488820B (zh) * 2022-09-07 2024-01-30 厦门市兴百邦科技有限公司 一种基于数据获取分析的电子数据保全方法

Also Published As

Publication number Publication date
CN103186461B (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN103186461B (zh) 一种现场数据的保存方法和恢复方法以及相关装置
Long et al. Automatic runtime error repair and containment via recovery shepherding
Groce et al. Randomized differential testing as a prelude to formal verification
Lu et al. A study of linux file system evolution
US7823006B2 (en) Analyzing problem signatures
US9262283B2 (en) Method for reading kernel log upon kernel panic in operating system
US8769504B2 (en) Method and apparatus for dynamically instrumenting a program
US20210064512A1 (en) Selective memory tracing of program execution
US20070250820A1 (en) Instruction level execution analysis for debugging software
US20190129774A1 (en) Firmware event tracking for nand-based storage devices, and methods and instruction sets for performing the same
US20120331449A1 (en) Device, method and computer program product for evaluating a debugger script
US20080127117A1 (en) Method and apparatus for instrumentation in a multiprocessing environment
CN107278297B (zh) 用于软件测试的计算设备、方法以及介质
US20140019929A1 (en) Partial Instruction-by-instruction checking on acceleration platforms
CN102346235A (zh) 一种面向硬件设备功能的自动测试系统及方法
US9336100B2 (en) Efficient debugging of memory miscompare failures in post-silicon validation
US20080270842A1 (en) Computer operating system handling of severe hardware errors
US10853224B2 (en) Indexing and searching a time-travel trace for arbitrary length/arbitrary alignment values
US9183122B2 (en) Automated program testing to facilitate recreation of test failure
CN102270166A (zh) 基于模拟器的处理器故障注入及跟踪方法及模拟器
CN103559121A (zh) 基于日志注入的驱动配置调试方法
CN110287123A (zh) 一种绕过ios系统调试检测的方法及装置
Mohan et al. Crashmonkey and ACE: Systematically testing file-system crash consistency
CN113632067A (zh) 利用跟踪代码的记录执行来仿真非跟踪代码
US8819641B1 (en) Program state reversing software development tool

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170508

Address after: Nanping Street 400060 Chongqing Nan'an District Nancheng Road No. 199 left attached to the floor 403

Patentee after: Keen (Chongqing) Microelectronics Technology Co.,Ltd.

Address before: 400065 Chongqing Nan'an District huangjuezhen pass Fort Park No. 1

Patentee before: CHONGQING CYIT COMMUNICATION TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181101

Address after: 201203 Building 1, exhibition hall, 2288 lane, 2288 Chong, road, Zhangjiang hi tech park, Shanghai

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 400060 Nanping Road 199, Nanping Street, Nan'an District, Chongqing, 403

Patentee before: Keen (Chongqing) Microelectronics Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190327

Address after: 361006 Xiamen Free Trade Pilot Area, Xiamen, Fujian Province, Unit X, 8th Floor, Unit 05, Building D, Xiamen International Shipping Center, 97 Xiangyu Road, Xiamen Section

Patentee after: Xinxin Finance Leasing (Xiamen) Co.,Ltd.

Address before: 201203 Building 1, exhibition hall, 2288 lane, 2288 Chong, road, Zhangjiang hi tech park, Shanghai

Patentee before: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

TR01 Transfer of patent right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20130703

Assignee: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Assignor: Xinxin Finance Leasing (Xiamen) Co.,Ltd.

Contract record no.: X2021110000009

Denomination of invention: The invention relates to a storage method and a recovery method of field data and a related device

Granted publication date: 20160706

License type: Exclusive License

Record date: 20210317

EE01 Entry into force of recordation of patent licensing contract
TR01 Transfer of patent right

Effective date of registration: 20221025

Address after: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 361006 Xiamen Free Trade Pilot Area, Xiamen, Fujian Province, Unit X, 8th Floor, Unit 05, Building D, Xiamen International Shipping Center, 97 Xiangyu Road, Xiamen Section

Patentee before: Xinxin Finance Leasing (Xiamen) Co.,Ltd.

TR01 Transfer of patent right