系统信息输出方法和电子设备的制作方法
【专利摘要】本发明公开了一种系统信息输出方法和电子设备。该系统信息输出方法应用于电子设备,所述电子设备包括通信处理器和应用处理器。所述方法包括:在第一存储器中存储由所述通信处理器产生的第一系统信息;在输出由所述应用处理器产生的第二系统信息时,从所述第一存储器中读取所述第一系统信息;以及与所述第二系统信息一起输出所述第一系统信息。因此,在本发明中,可以在无需连接USB线或串口线的情况下,保存并输出通信处理器的日志信息,同时在测试过程中,也不会产生阻止电子设备进入休眠状态的问题,使得用户能够方便地查看和分析电子设备中的通信处理器在各种系统状态下的日志信息。
【专利说明】系统信息输出方法和电子设备
【技术领域】
[0001]本发明涉及计算机【技术领域】,更具体地,本发明涉及一种系统信息输出方法和电子设备。
【背景技术】
[0002]近年来,诸如台式计算机、笔记本计算机、平板电脑(PAD)、移动电话、多媒体播放器、个人数字助理(PDA)之类的电子设备越发普及。出于功耗考虑,现有的电子设备通常采用双处理器(CPU)架构。在采用这种架构的电子设备平台上,用于运行应用程序的应用处理器(AP)和用于运行通信协议的通信处理器(CP)(又称为基带处理器(BP))协同工作。
[0003]在双CPU架构电子设备的研究和开发过程中,为了调试并解决各种可能存在的系统问题,尤其是休眠唤醒等与电源管理相关的问题,需要记录两个CPU在各种系统状态下的交互过程。也就是说,用户此时既需要查看AP的日志(log)信息,也需要同时查看CP的日志信息。
[0004]在现有技术中,用于查看AP的日志信息的技术比较成熟,比如可以采用Linux内核(kernel)中的dmesg命令来简便地查看AP的日志信息;但是由于双CPU架构的限制,所以查看CP的日志信息就不太方便。目前,主要有两种用于查看CP的日志信息的解决方案。
[0005]在第一种解决方案中,可以通过将电子设备与通用串行总线(USB)线进行连接并且利用某种跟踪工具来实时输出CP的日志信息。然而,这个解决方案缺点在于,因为将电子设备的USB接口与USB线连接将阻止电子设备进入休眠状态,所以无法调试该电子设备中的休眠唤醒等电源管理问题。另外,由于在CP初始化阶段中USB模块尚未完成初始化,所以也不能正常输出关于这个阶段的日志信息。
[0006]在第二种解决方案中,可以通过将电子设备与串口线进行连接并且通过诸如控制台(console)之类的调试工具来实时输出CP的日志信息。然而,这个解决方案缺点在于,必须首先将电子设备的串口与串口线连接并初始化电子设备的串口,而在大多数情况下,电子设备(尤其是生产线版本的电子设备)在出厂时都没有焊接用于调试的串口线,所以一般用户难以通过电子设备的串口输出CP的日志信息。
[0007]因此,需要一种新型的系统信息输出方法和电子设备来解决上述问题。
【发明内容】
[0008]为了解决上述技术问题,根据本发明的一个方面,提供了一种系统信息输出方法,所述方法应用于电子设备,所述电子设备包括通信处理器和应用处理器,其特征在于,所述方法包括:在第一存储器中存储由所述通信处理器产生的第一系统信息;在输出由所述应用处理器产生的第二系统信息时,从所述第一存储器中读取所述第一系统信息;以及与所述第二系统信息一起输出所述第一系统信息。
[0009]此外,根据本发明的另一方面,提供了一种电子设备,所述电子设备包括通信处理器和应用处理器,其特征在于,所述装置还包括:第一存储器,用于存储由所述通信处理器产生的第一系统信息,其中,所述应用处理器在输出由自身产生的第二系统信息时,从所述第一存储器中读取所述第一系统信息,并且与所述第二系统信息一起输出所述第一系统信肩、O
[0010]与现有技术相比,采用根据本发明的系统信息输出方法和电子设备,可以当通信处理器在运行时记录由它产生的第一系统信息,并且在应用处理器输出由自身产生的第二系统信息的时候输出该第一系统信息。因此,在本发明中,可以在无需连接USB线或串口线的情况下,保存并输出通信处理器的日志信息,同时在测试过程中,也不会产生阻止电子设备进入休眠状态的问题,使得用户能够方便地查看和分析电子设备中的通信处理器在各种系统状态下的日志信息。
[0011]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【专利附图】
【附图说明】
[0012]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0013]图1图示了根据本发明的系统信息输出方法。
[0014]图2图示了根据本发明的电子设备。
[0015]图3图示了根据本发明实施例的系统信息输出方法。
[0016]图4图不了根据本发明实施例的电子设备。
[0017]图5图示了根据本发明实施例的作为环形缓冲区的第一存储器。
[0018]图6图示了根据本发明实施例的系统信息输出结果。
【具体实施方式】
[0019]将参照附图详细描述根据本发明的各个实施例。这里,需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。
[0020]在下文中,将参考图1和图2来描述根据本发明的系统信息输出方法和电子设备。
[0021]图1图示了根据本发明的系统信息输出方法,而图2图示了根据本发明的电子设备。
[0022]图1所图示的系统信息输出方法应用于图2所图示的电子设备100,所述电子设备100包括通信处理器110和应用处理器120。另外,该电子设备还包括:第一存储器130。具体地,如图1所图示的,所述方法包括:
[0023]在步骤SllO中,在第一存储器中存储由所述通信处理器产生的第一系统信息;
[0024]在步骤S120中,在输出由所述应用处理器产生的第二系统信息时,从所述第一存储器中读取所述第一系统信息;以及
[0025]在步骤S130中,与所述第二系统信息一起输出所述第一系统信息。
[0026]由此可见,采用根据本发明的系统信息输出方法和电子设备,可以当通信处理器在运行时记录由它产生的第一系统信息,并且在应用处理器输出由自身产生的第二系统信息的时候输出该第一系统信息。因此,在本发明中,可以在无需连接USB线或串口线的情况下,保存并输出通信处理器的日志信息,同时在测试过程中,也不会产生阻止电子设备进入休眠状态的问题,使得用户能够方便地查看和分析电子设备中的通信处理器在各种系统状态下的日志信息。
[0027]在下文中,将参考图3到图6来描述根据本发明实施例的系统信息输出方法和电子设备。在本发明的实施例中,将具有双CPU架构的移动电话作为电子设备的示例来进行说明。用户通常可以通过该移动电话来拨打/接听电话、发送短信息(SMS)、多媒体短信息(MMS)、浏览因特网(Internet)或利用即时通信工具进行在线聊天等操作。
[0028]需要说明的是,尽管此处通过将根据本发明的系统信息输出方法和电子设备应用于移动电话来说明本发明,但是,本领域技术人员能够理解的是,本发明不限于此。而是,还可以将本发明应用于其他的电子设备,例如,台式计算机、笔记本计算机、平板电脑、多媒体播放器、或个人数字助理等。
[0029]图3图示了根据本发明实施例的系统信息输出方法,而图4图示了根据本发明实施例的电子设备。
[0030]图3所图示的根据本发明实施例的系统信息输出方法可以应用于图4所图示的电子设备100。与图1中相似地,该电子设备100包括:通信处理器110、应用处理器120、和第一存储器130。此外,该电子设备100进一步包括:第二存储器140,用于存储由应用处理器120产生的第二系统信息。
[0031]如图3所图示的,根据本发明实施例的系统信息输出方法包括:
[0032]在步骤S310中,在第一存储器中存储由所述通信处理器产生的第一系统信息。
[0033]具体地,当诸如研发人员或者测试人员之类的用户想要对电子设备(例如,移动电话)中的通信处理器110进行调试时,用户利用预定的测试环境来搭建测试平台,并且接通电子设备100的电源,使得通信处理器110和应用处理器120进行操作。
[0034]这时,在根据本发明实施例的电子设备100中,通信处理器110开始运行,以便向应用处理器120提供通信通路,并且实现各种制式的语音通信和数据通信的通信功能。由于执行的处理相对简单,因而,该通信处理器110 —般采用相对低性能的处理器,诸如ARM公司的ARM7、ARM11和CortexR系列处理器等。在通信处理器110的运行过程中,它将自身在诸如正常运行、休眠、唤醒之类的各种系统状态下产生的各种第一系统信息(例如,日志信息)存储到第一存储器130中,以用于稍后向用户输出。
[0035]在此,该第一存储器130应该是通信处理器110和应用处理器120都能够访问的存储器。例如,该第一存储器130可以是通信处理器110和应用处理器120之间的共享内存,以便该通信处理器110向该第一存储器130中写入自身产生的第一系统信息,并在随后的步骤中,由应用处理器120来从该第一存储器130中读取通信处理器110产生的第一系统信息,并且将向用户输出该信息,以用于电子设备的整体调试。
[0036]图5图示了根据本发明实施例的作为环形缓冲区的第一存储器130。
[0037]优选地,如图5所图示的,该第一存储器130可以是通信处理器110和应用处理器120之间的共享内存的环形缓冲区。环形缓冲区是生产者和消费者模型中常用的数据结构。在该数据结构中,将产生数据的模块(此处的模块是广义的,可以是类、函数、线程、进程等)(例如,产生第一系统信息的通信处理器110)形象地称为生产者;而将处理数据的模块称为消费者(例如,读取并输出第一系统信息的应用处理器120)。利用写指针,生产者将数据写入(write in)数组的尾端,而利用读指针,消费者从数组的另一端读出(read out)并移走数据,当达到数组的尾部时,生产者绕回到数组的头部。与传统的队列缓冲区相比,环形缓冲区可以省略对于缓冲区元素所用存储空间的分配和释放过程,从而提高了数据存储效率。
[0038]在步骤S320中,在第二存储器中存储由所述应用处理器产生的第二系统信息。
[0039]具体地,在通信处理器110运行的同时,应用处理器120也开始运行,以完成如音视频播放、文档阅读与处理等功能。由于执行的处理较为复杂,因而,该应用处理器120 —般采用相对高性能的处理器,诸如ARM公司的Cortex A系列处理器等。与通信处理器110相似地,在运行过程中,应用处理器120也将自身在各种系统状态下产生的各种第二系统信息(例如,日志信息)存储到第二存储器140中,以用于稍后的调试操作。
[0040]该第二存储器140可以是仅仅应用处理器120能够访问的存储器、或者可以是通信处理器Iio和应用处理器120都能够访问的存储器(例如,通信处理器110和应用处理器120之间的共享内存、和/或环形缓冲区)。
[0041]由于通信处理器110实际上并不需要访问该第二存储器140,所以在此将该第二存储器140优选地选取为仅仅应用处理器120能够访问的存储器,以避免过多地占用通信处理器110和应用处理器120之间的共享内存、和/或环形缓冲区的存储空间。
[0042]在步骤S330中,在输出由所述应用处理器产生的第二系统信息时,从所述第一存储器中读取所述第一系统信息。
[0043]具体地,当用户希望读取并分析通信处理器110和应用处理器120分别产生的第一系统信息和第二系统信息时,用户向应用处理器120发送系统信息输出指令,该系统信息输出指令用于指令应用处理器120输出第一系统信息和第二系统信息。例如,该用户可以采用Linux kernel中的dmesg命令来向AP发送系统信息输出指令。
[0044]接下来,在第一示例中,在根据本发明实施例的电子设备100中,应用处理器120获取该系统信息输出指令,检查此时在应用处理器120与通信处理器110之间共享的第一存储器130中是否存在由通信处理器110产生的第一系统信息。如果在第一存储器130中存在第一系统信息,则该应用处理器120可以从第一存储器130中读取所述第一系统信息。
[0045]在步骤S340中,与所述第二系统信息一起输出所述第一系统信息。
[0046]具体地,在该应用处理器120从第一存储器130中读取到所述第一系统信息之后,该应用处理器120首先输出从第一存储器120中读取的所有第一系统信息。
[0047]然后,在所有的第一系统信息输出完毕之后,该应用处理器120可以进一步检查在第二存储器140中是否存在由应用处理器120自身产生的第二系统信息。如果在第二存储器140中存在第二系统信息,则该应用处理器120可以进一步从第二存储器140中读取第二系统信息,并然后输出所读取的所有第二系统信息。
[0048]需要说明的是,尽管此处通过首先输出所有的第一系统信息并然后输出所有的第二系统信息来说明本发明,但是,本领域技术人员能够理解的是,本发明不限于此。
[0049]在第二示例中,在步骤S330中,应用处理器120在获取到该系统信息输出指令并且检查在第一存储器130中是否存在由通信处理器110产生的第一系统信息之后,该应用处理器120还同时地或者依次地检测在第二存储器140中是否存在由应用处理器120自身产生的第二系统信息。
[0050]如果在第一存储器130中存在第一系统信息并且在第二存储器140中存在第二系统信息,则该应用处理器120可以进一步确定所述第一系统信息和所述第二系统信息产生的时间,并且按照时间顺序来从所述第一存储器130中读取第一系统信息并从所述第二存储器140中读取第二系统信息,以便在步骤S340中,按照时间顺序来依次输出这些信息。
[0051]图6图示了根据本发明实施例的系统信息输出结果。
[0052]在图6中,附图标记610和630指示出应用处理器120获得的由它自身产生的第二系统信息,附图标记620指示出应用处理器120获得的由通信处理器110产生的第一系统信息。附图标记640指示出各种系统信息的重要级别,其中,从级别I到级别7,系统信息的重要性依次递减,例如从重要警告到普通信息。附图标记650指示出该条系统信息是在电子设备开机之后多少秒钟时产生的,该秒数值是在电子设备100处于正常工作状态中计数得到的,即在电子设备100休眠之后暂停计数并且在电子设备100被重新唤醒之后恢复计数。附图标记660指示出该系统信息的具体内容。
[0053]因此,可以看出,图6图示出了上述第二示例中的情况,S卩,应用处理器120按照第一系统信息和第二系统信息产生的时间顺序,依次地输出从所述第一存储器130中读取的所有所述第一系统信息和从所述第二存储器140中读取的所有所述第二系统信息。
[0054]此外,优选地,可以在步骤S310中,将该第一系统信息进一步保存在非易失性存储器中,使得即使电子设备100断电时,也可以很好地保存通信处理器110和应用处理器120的系统信息,以便对该电子设备100进行离线分析。
[0055]由此可见,采用根据本发明实施例的系统信息输出方法和电子设备,可以在通信处理器运行时将它所产生的日志信息记录到通信处理器与应用处理器之间的共享内存的环形缓冲区中,并且在应用处理器输出日志信息的时候,该应用处理器首先检查在共享内存中是否存在通信处理器的日志信息,如果存在,则首先输出共享内存中的这些信息,然后再正常输出自身所产生的日志信息。这样,通信处理器和应用处理器的日志信息就可以穿插交替地进行显示,使得能够更加直观地反映两个处理器之间的交互过程。
[0056]因此,在本发明中,即使在不连接USB线(因而,不会影响电子设备进入休眠状态)或串口线的情况下,通信处理器的日志信息也不会丢失,而是可以正常输出到应用处理器的日志信息缓冲区中,并且节约了由于连接USB线和/或串口线所产生的测试成本。
[0057]此外,在将上述方法与应用处理器将日志信息保存到闪存的机制进行结合之后,可以与应用处理器的日志信息一并地保存通信处理器的日志信息。这样,即使电子设备产生断电重启的事件时,所有处理器的日志信息也不会丢失,从而使得用户能够方便地对于电子设备中的通信处理器与应用处理器在各种系统状态下的交互过程进行各种离线调试和分析。
[0058]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助于软件加必需的硬件平台的方式来实现,当然也可以全部通过软件、或硬件来实施。基于这样的理解,本发明的技术方案对【背景技术】做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁盘、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。[0059]在上面详细描述了本发明的各个实施例。然而,本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例进行各种修改,组合或子组合,并且这样的修改应落入本发明的范围内。
【权利要求】
1.一种系统信息输出方法,所述方法应用于电子设备,所述电子设备包括通信处理器和应用处理器,其特征在于,所述方法包括: 在第一存储器中存储由所述通信处理器产生的第一系统信息; 在输出由所述应用处理器产生的第二系统信息时,从所述第一存储器中读取所述第一系统信息;以及 与所述第二系统信息一起输出所述第一系统信息。
2.根据权利要求1的方法,其特征在于,所述第一存储器是所述通信处理器和所述应用处理器之间的共享内存。
3.根据权利要求1的方法,其特征在于,所述第一存储器是所述通信处理器和所述应用处理器之间的共享内存的环形缓冲区。
4.根据权利要求1的方法,其特征在于,所述方法还包括: 在第二存储器中存储由所述应用处理器产生的第二系统信息。
5.根据权利要求4的方法,其特征在于,所述在输出由所述应用处理器产生的第二系统信息时、从所述第一存储器中读取所述第一系统信息的步骤包括: 获取系统信息输出指令,所述系统信息输出指令用于指令输出所述第一系统信息和所述第二系统信息; 检查所述第一存储器中是否存在所述第一系统信息;以及 如果存在,则从所述第一存储器中读取所述第一系统信息。`
6.根据权利要求5的方法,其特征在于,所述在输出由所述应用处理器产生的第二系统信息时、从所述第一存储器中读取所述第一系统信息的步骤还包括: 检查所述第二存储器中是否存在所述第二系统信息;以及 如果存在,则从所述第二存储器中读取所述第二系统信息。
7.根据权利要求6的方法,其特征在于,所述与所述第二系统信息一起输出所述第一系统信息的步骤包括: 首先输出从所述第一存储器中读取的所有所述第一系统信息;以及 然后输出从所述第二存储器中读取的所有所述第二系统信息。
8.根据权利要求6的方法,其特征在于,所述与所述第二系统信息一起输出所述第一系统信息的步骤包括: 按照所述第一系统信息和所述第二系统信息产生的时间顺序,输出从所述第一存储器中读取的所有所述第一系统信息和从所述第二存储器中读取的所有所述第二系统信息。
9.一种电子设备,所述电子设备包括通信处理器和应用处理器,其特征在于,所述装置还包括: 第一存储器,用于存储由所述通信处理器产生的第一系统信息, 其中,所述应用处理器在输出由自身产生的第二系统信息时,从所述第一存储器中读取所述第一系统信息,并且与所述第二系统信息一起输出所述第一系统信息。
10.根据权利要求9的装置,其特征在于,所述第一存储器是所述通信处理器和所述应用处理器之间的共享内存。
11.根据权利要求9的装置,其特征在于,所述第一存储器是所述通信处理器和所述应用处理器之间的共享内存的环形缓冲区。
12.根据权利要求9的装置,其特征在于,所述装置还包括: 第二存储器,用于存储由所述应用处理器产生的第二系统信息。
13.根据权利要求12的装置,其特征在于, 所述应用处理器获取用于指令输出所述第一系统信息和所述第二系统信息的系统信息输出指令,检查所述第一存储器中是否存在所述第一系统信息,并且如果存在,则从所述第一存储器中读取所述第一系统信息。
14.根据权利要求13的装置,其特征在于, 所述应用处理器还用于检查所述第二存储器中是否存在所述第二系统信息,并且如果存在,则从所述第二存储器中读取所述第二系统信息。
15.根据权利要求14的装置,其特征在于, 所述应用处理器首先输出从所述第一存储器中读取的所有所述第一系统信息,并然后输出从所述第二存储器中读取的所有所述第二系统信息。
16.根据权利要求14的装置,其特征在于, 所述应用处理器按照所述第一系统信息和所述第二系统信息产生的时间顺序,输出从所述第一存储器中读取的所有所述第一系统信息和从所述第二存储器中读取的所有所述第二系统信息。`
【文档编号】G06F13/38GK103514131SQ201210226635
【公开日】2014年1月15日 申请日期:2012年6月29日 优先权日:2012年6月29日
【发明者】杨建起, 宋祎斐, 朱少峰, 李涛 申请人:联想(北京)有限公司