多媒体计算机诊断系统的制作方法

文档序号:6406997阅读:233来源:国知局
专利名称:多媒体计算机诊断系统的制作方法
该申请涉及已转让的美国专利NO.4,794,519和NO5,081,574及有待批准的序列号为NO071425,150071761,534和071829,201的专利申请。这些专利和申请都是关于优选的高速数字信号处理机组成的计算机系统及其各种成份的。
本发明总的来说涉及一项关于数字信号处理、排错或故障分析方法和系统,它尤其适用于高速、多任务信号处理机的环境,如多媒体系统。
执行故障隔离、或所谓的“排错”是普通计算机系统技术领域中的一个众所周知的处理技术。但是对于硬性,实时的数字信号处理任务来说,会遇到一些特殊问题。如处理实时数字数据流,这是多媒体环境中很平常的任务。调制体调器,传真机、密致盘重放、声音功能、语音识别、语音合成、动画影象及各种压缩程序、傅立叶变换、伺服系统等等都属于信号处理机任务。它们在执行中的算法和逻辑故障很多是在瞬间发生的,那么发现和改正这一类故障则成为一种新的挑战。
在市场上可以见到各个厂家生产的多种数字信号处理机。这些处理机系统在对一般编程系统进行排错方面都具有一些常见的标准开发特性这些开发特性包括可以逐步跟踪执行某一程序以获得结果序列或数据序列及各种非实时性函数,如隔离逻辑故障例程;这些特性还包括在标识条件下停止执行程序等。以上这些特性都具有一个根本的局限性,即它们不能够对各种实时信号处理任务进行寻址。实时信号处理任务数据和信号是瞬时的,而且这种实时任务还随时会受到噪音及其它故障的影响,现在的数字信号处理机的排错程序所采用的技术是借鉴于传统计算机和微码开发技术,它并没有提供一种观察数字信号处理机执行某一给定任务时实际操作的方法,而且这种系统中也没有存储和再生造成某一错误条件的原因的方法,以致于无法严重追踪运行过程中的任务指令。例如讲话处理、来自麦克风的数据是模拟信号。首先要把它送入模-数转换器,按照某种采样频率比如8000次/秒进行数字化;然后再按照某种讲话信号处理算法在数字信号处理机中进行处理。这种程序不会停下来让以前的排错技术如逐步执行或在某处停止执行来对其排错。因为如果程序一旦停止执行,就不能进行下一步的处理而讲话信号却要不断地到来,另外,信号处理机任务执行码相当复杂,其结果都是瞬时的数字数据采样,只有当其以某种图形方式表示时,人们才能理解其函义,例如,一个简单的正弦波,如果以一串数字表示就很难诊断和分析,而多种多波形不停地相互作用,其结果以各种各样的数字串表示,那么人们就不可能理解。在某一信号处理任务执行时,甚至想指出是一个故障还是程序设计流都是很困难的。常规的错误分析和诊断工具显然是不能满足要求了,便用常规的诊断系统,我们可以使程序停止在任一代表某个正弦波的采样点的数字上,但是程序停止在任一个数字或采样点上并不能指出问题所在,很多这样的采样点可能被聚集或存储起来,并生成一张表来代表这些数值,假设每秒到来8000个采样数据,那么每4毫秒要有32个采样点,在这4毫秒中都不能保证会发现某个错误采样,那么更何况要发现一秒钟内产生的错误呢?如果在一秒中会发生错误,就要表示出8000个采样点,研究一张有8000个数值的表,并发现表中出现奇数个数值这样的错误并非不可能,但是仅就耗时和准确程度这两方面来说,实现起来就很困难,更何况还未考虑探测出发和取值函数会陷入错误条件呢。在发现某个问题前就要对其它各因素进行检测和排错,在发现问题的过程中还会存在困难。
外推到多媒体系统中复杂的多任务,实时环境中异步或随时发生的故障,查找起来其困难程度将更一步加大。
由于先有技术中存在着这些困难和缺点,所以,本发明的目的是提供一个改进的、硬性的实时多、处理任务的诊断方法和系统,它可以不带延时处理地进行实时操作,因为操作的延误会使任务的固定性和实时性变坏,它还可以将获取的数据从图形方式显示和绘制出来,以便于在同一时期对错误条件进行分析和确认。
本发明的另一个目的是提供一种灵活的装置,把预定的数值插入到正在执行中的硬性的实时信号处理任务的操作中,而不中断或改变其操作速度和状态。
上述的目的,及尚未特别列出的其它方面在本发明的优选实例中可以见到。在优选实例中,开发人员或程序员可以利用诊断系统在执行某个信号处理任务流程中间的任一点,生成可执行的分支指令。该分支指令对某一任务的内部的操作和执行进行分支,以执行内存中用于诊断的指令。这些指令包括在某个排序或循环缓冲区获取指令的瞬时寄存器值,这些值用于驱动图形显示器绘图或打印输出,这很象是在某一给定任务的任一个逻辑执行点放置一个物理检测器,再将检测到的结果显示在一个示波器上,不过该系统所用的是通用多媒体计算机系统的显示屏幕,它带有绘图程序和计算机的各种资源,可以对来自于采样流中的复杂数值和数字序列进行图形显示。上述这些功能一个示波器显然是提供不了的。另外,该系统还可以将予定的检测数据值或采样值按顺序放入存储器内,在执行某个分支时,把它们插入到指定寄存器中,并重定向原寄存器,使系统在执行某一硬性,实时任务的过程中,不改变其实时操作而生成模拟条件。有几个检测指令在分支和执行过程中,会占用一些数字信号数理机的资源,所以在调用诊断函数之前,要做个判别,即调用是否会引起延迟或者引起使处理机错过任务执行的最后界限的程序超限条件。如果存在这样的情况,系统会请求用户或诊断者关闭各种任务,释放信号处理机资源,以保证诊断任务的执行,这就确保了检测结果硬性的实时的限制条件下在其生成过程中,或生成间隔内,以图形方式显示给用户。这是在识别,定位,及再生成错误条件方面的一个巨大帮助。
下面将参照优选实例以图解方式来介绍该发明。


图1A、1B、1C以图形方式描述了在分支检测指令插入之前插入之后,和分支指令执行过程中,数字信号处法机中的几个假想任务执行指令的高序列。
图2描述一个判别数字信号处理机资源是否被压在运行的任务和并发的诊断函数负荷占用的受推荐的处理方法。
图3以图解方式描述了一些操作的逻辑流程的一部分。这些操作包括调用和执行一个硬性的实时诊断任务,以获取一系列硬性的实时数据信号处理采样,或者将其插入到处理流中。
图4描述了在优选实例中获取数据采样的流程。
图5描述了在优选实例中定位获取函数的方法。
图6以图解方式描述了在优选实例中实际数据采样获取过程的操作流程。
图7以图解方式描述了停止或启动一个操作流程,该操作是将予选的数据采样插入到某个硬性的实时任务的执行过程中。
图8以图解方式描述了本发明的优选实例中,将予选采样插入到某个信号处理任务的执行中的流程。
图9描述了在优选实例中,中止采样插入的操作流程。
图10以图解方式描述了,当要求将信号采样插入到压在执行任务中时,分支指令在处理过程中所要采样的操作步骤。
图11以图解方式描述了一套完整的,数字信号处理过的,多媒体计算机系统的环境的概貌。它包括一台主机,用于数据输入/输出的键盘和显示器,一个内部处理机间的通讯系统或控制系统,及其本身所带的,可供发明的优选实例练习、使用的指令和数据存储区。
图12A描述了一个例子,它是一系列取自一个带异常点的正弦波的数据值。
图12B描述了在图11所示的多媒体计算机系统的显示器上以图形方式显示图12A所示的数值的结果。
首先,图11所示的可以是一个多媒体计算机系统的通用例子,它有一个主机,里面的处理器可以是典型的Lntel80386,一个显示器,键盘和典型的系统存储器。主机通过系统中一个DMA总线控制器如071761,534号申请中所指的总线控制器与数字信号处理机(DSP)与系统相连。由于无论是数字信号处理机(DSP),主系统处理器,还是DMA控制器都可以从各个厂家买到,所以这个优选实例并不限于图11所示的配置。
为了完成诊断分析,该发明可以完成硬性的,实时数字信号采样的检测操作,以及在操作中任一点进行硬性的实时数字信号采样的插入操作,和以图形方式显示的结果的操作,在优选实例中,执行过程中的数字信号处理机任务可以被修改,以便在其执行流程中加入一条或多条分支指令。这些分支指令可以在任务执行过程中分支出一些辅助指令,这些指令包括获取选定的寄存器值或采样值,并返回到被分支的源指令执行序列中,或者分支到诊断代码,这不是获取采样条件,而是将它们写入所述定义的寄存器中,以便其插入到执行处理流程中。
图1A描述了一个假想的数字信号处理机中的程序序列,程序中有几条指令,编号假设为100-103,它们包括将来自前面某步操作的采样值赋给假想的寄存器R2,寄存器R2中的值采以某个寄存器R5中的值,将相乘的结果赋予寄存器R3,最后将R2的值和R3的值和和存起来,这是个假想的程序,不过它也是信号处理机任务中常见的处理指令序列。
图1B描述的指令序列与图1A相同,只不过指令102换成一个指令存储器的新地址,这里任意给定为600。
图1C描述了假想的,以指令的600开始的分支代码,指令600实际上是在图1B中的被那条分支指令替换掉的指令102。程序一旦执行分支代码,它就要重新定位到所指定的指令,执行600,然后是601,602-625,完成一系列操作,如将寄存器值保存到目的寄存器中,将所需数据保存到循环缓冲区,重新设置寄存器值,并返回到分支前的源DSP任务序列中的下一指令103。
从前面的描述中可见该发明的主要是用分支指令来替换要诊断的某一给定数字信号处理任务的一个或多个执行点,分支指令和诊断代码的“分支到”部分所做的工作是即要保证所要求的任务的正常执行行,还要对数字信号处理系统加载,因此,为了确保象图1A-1C的假想例子所述的检测和获取数据采值的结果不发生错误或超载,首先必须做一个判别,即已经激活的信号处理机任务再加载另外一个诊断任务是否会使信号处理机资源超载,而造成其本身引起的故障。另外,在数字信号处理机生成的硬性而且实时的结果要实时,并发地以图形方式显示出来,同时还要求能搜集数据采样。这一点对于发生错误时,识别和隔离错误条件极为方便。
图2描述了在调用一个新的信号处理任务时,检测系统不致超载的通用处理流程。信号处理任务可以是插入检测器并执行能获取寄存器值的分支指令的诊断任务。
流程从框1开始,由用户或诊断员从用户系统输入系统工作所需的带宽。以插入检测器的诊断程序为例,即为系统可用的最大DSP资源,或每秒可执行几百万条指令(MIPS)。系统在框2将这些值加起来,在框3再将所有被激活的任务,包括用户新调用诊断任务所占用的资源与现有的最大DSP资源进行比较,如果超出了DSP系统资源的最大值,那么如框4所示,该任务不被加载,在框5中,系统提示用户对运行于DSP系统中的任务进行选择或删除,使之释放在调用诊断任务之前所占用的资源,如果所有用户任务加上诊断函数的总和没有超过现有系统能力或DSP本身的速度,那么和框3中所做的DMA带宽检测相对应,系统将提示用户或者删去某些任务,或者做进一步检测,看所有被激活的用户任务所需的存储空间的总和是否超过DSP系统所有的最大空间,如果所有这些检测都顺利通过,那么一个新的任务将被DSP的信号操作系统加载。一个新的任务就被调用了。该过程到框9结束。
图3和与之相关的图4-10对优选的实例的诊断任务的整个流程作了描述,首先从图3的框10开始。在图3的框10中,用户在调用诊断任务做初始的数据输入时要求图11主系统中的诊断任务已经被加载,并正在运行,即“运行”指示器设置为1。还要求“被处理的数据块”初始值为0,DSP系统中没有要用于画图的数据块,“激活运行模式”状态等于0,这相当于是对还没有调用过诊断任务而正要调用这一任务的启动条件的规定。这一规定要从一开始贯穿到整个诊断系统的全过程。
框11和12是对系统运行指示器进行检测,如果顺利通过检测则进入框13,判别激活运行模式是否设置为ON,如果框11中运行指示器没有设置为“ON”,则诊断程序从框12中退出停止执行,如果框13中的激活运行模式检测成功,则进入框14。被处理的数据块数(这一块可以包含任意定义数目的采样或数据位等)在此刻要小于存储于顺序或循环缓冲区中的DSP数据块数,并且要大于0,以用于显示或分析。如果该检测结果为指出还有DSP数据块可以使用,则进入框15,开始将下一个采样绘制到主机显示屏上,然后,在框16递增“被处理块”的采样计数器,最后返回到主流程中框17的入口处,框门要判别目前是否有键盘输入,如果没有键盘输入信号,则返回到框13的入口,以便显示其它数据块,如果框17中有键盘输入,则要判别诊断员是否需要获取的数据或插入的数据。首先,从框18和框19开始做获取数据检测。判别键盘输入是否是停止绘图模式。如果是,框19关闭运行激活模式。如果输入是停止获取是停止获取数据,则进入框20,21,然后进入图5的操作(将在随后描述),最后返回到框13的入口继续处理,框22检测是否要做数据获取操作,如果是,则进入框23,设置获取条件,然后进入框23,设置获取条件,然后进入图4(随后将描述),最后也返回到框13的入口,以检测是否还有其它数据块。框24判别键盘是否输入了停止运行命令,如果不是,操作继续,返回到框13的入口,否则,在框29将运行状态设置为0,返回到框11的入口判别是否建立了任何新的运行条件,如果没有,则在框12退出。
如果在框13激活运行模式没有设置为ON,则程序转入框25判别是否有使激活运行模式和/或运行条件复位的键盘输入。如果有则在框26判别是否为启动绘图命令,在框28判别是否为停止执行命令。如果框26检测结果为启动绘图命令,则进入框27,将激活运行模式设置为1,并继续执行,返回到框11。否则,看框28的检测结果是否为停止执行,如果是,则进入框29,将运行状态设置为0,并使操作也返回到框11的入口。
图4以图解方式描述了在图3的框22和框23中,获取条件设置为ON时的操作流程。如果获取条件设置为ON,用户就要键入命令来执行诊断程序。所以,和图2中所做的常规检测一样,在框30中也要做个检测,判别是否有足够的DSP资源来满足所有任务的执行,如果发现资源不够,则进入框40,向用户发“资源不足”信息并提示用户在调用诊断程序以前关闭某些信号处理机任务。如果框30中的检测证明有足够的资源,则按顺序进入框31-39。首先根据在图2中用户输的指定参数为诊断函数分配DSP周期,然后,取到DSP指令存储器中的获取程序的首地址(框32),再将跟随分支指令的DSP指令放到获取程首地址,并保存寄存器。框34将DSP指令从分支指令要写入的位置移到存储区中分支后可能会第一个执行的指令的位置。框35,框36,框37是为DSP数据块、主系统数据采样计数器和块计数器设置初始状态0。框38将实际分支指令写到检测器时要放置的DSP指令地址上。这样当执行被检测的任务时,获取操作就会自己启动,详细描述见图6。当图6的获取操作结束后,就返回到存储器中DSP任务的下一条指令,如图1C中的629指令,即返回到放在最初分支指令所插入位置的下一条指令处。
图5描述了当获取条件已产生,但却要放弃用户通过输入所选择的,且经过图3的框20和框23所检测过的诊断获取规则时,能进行的处理。在图5中的看出中止所要的获取条件的流程。检测中止条件以后,进入框43,把从DSP任务顺序存储器中原位置上被删去的原始DSP指令从现在所在的存储区移回其原位置,并覆盖该位置的分支指令,禁止在该点再调用获取诊断程序。框44取消获取函数的DSP周期,框45重新将DSP数据块计数器和主机处理块计数器设置为0,并通过框42返回到用户任务。
图6描述了执行获取程序的具体步骤(上接图4框38)。在框46中,首先执行一个指令,将一个DSP指令从被检测的函数,或者从能要获取的数据在通常执行表中的位置移到内存区,所以开始准备执行获取程序。框47保存在一所选择的寄存器值,获取DSP在这一瞬间的状态,然后,在框48中还要将用户所要的结如保存在循环缓冲区内。框49递增缓冲区指针地址。框50递增数据采样计数器。框51检测数据采样计数器的值是否等于一个完整块的大小值(该值可以设置为任意大小)。如果是,则重置采样计数器,并将所获取的采样块送入主系统存储器,以便主系统进行绘图或做其它分析框54为现有的数据采样块加1。框55和框56恢复所选的寄存器值,并通过块39从诊断系统返回到下一个DSP任务指令。
图7以图解方式描述了诊断处理的流程。这一块作为图3中框18的入口,要对键盘输入进行检测,以判别输入的命令是放弃还是开始向数据采样处理流中插入DSP所要的任意数据。框57-框63本身解释已很明了,它首先检测用户输入的命令是放弃插入函数还是将插入函数设置为ON,如果是放弃插入函数,则执行图9中的处理,否则执行图8中的处理(两图随后将分别加以描述)图8描述了执行插入的处理流程,首先在框14中做检测,当调用插入诊断程序时,系统是否满足DSP的资源需求,如果不满足,则如图所示从框72和71中退出系统。如果有足够的资源能满足插入函数在硬性的实时环境下执行,且不致使任务起限,则顺序执行框65-框71。框65为用户所选的任意数据采样的插入分配DSP周期。框66存取插入程序在DSP指令存储区中的插入首地址。框67设置DSP指令以启动插入程序,从缓冲区中装入所要的寄存器在该缓冲区中用户装有所要的采样值。然后,在框68中把将要被插入过程覆盖的DSP代码装入到安全保护存储区,框69将用户选择的数据块写入DSP循环缓冲区,所提供插入的采样源。在框70中系统写一个DSP指令,跳到缓冲区中插入代码的第一条指令,开始执行插入过程,(图10中将详述)、执行结束后,进入框71,返回到DSP的通常任务中去。
图10描述了插入循环缓冲区中的采样值的操作流程。从框77达到框83,最后返回到下一个DSP指令。框77首先执行被移动的DSP指令,以便分支指令的插入,并执行插入程序。框78保存DSP寄存器内容,以便以后恢复插入前的状态。框79将循环缓冲区中由用户添入的要插入到执行流中的信号采样或数据装载到所希望的寄存器或储存器中。框80-框82所做的工作是递增循环缓冲区指针,以便存取下一个插入采样。如果需要时,可以从主存中读采样值。最后,当插入结束时,恢复原始寄存器,然后,通过框83返回到图8的框71。
图9描述了用户输入放弃插入命令时的操作过程。框73检测当前插入是否设置为ON。如果是,而且,用户命令又要放弃插入,则进入框75和框76。将存储器中DSP指令的初始内容写回到DSP指令表中,将该表中为DSP任务设置插入检测的分支指令覆盖掉,然后,取消插入函数的DSP周期,并通过框74返回到DSP任务操作中去。
可以将本文开头提到过的语言处理这一典型的数据信号处理任务做为本发明-诊断系统和方法的一个具体例子或操作说明。
在一个假说的语言处理任务中,语音识别或合成是可以进行的。典型地,对于数字语音信号分析,或者是通过数-模生成器将数据采样还原成语言,每秒就需要有8000字节的采样数据。在这样的环境下,很明显,普通的停止命令、或停止在某一给定地址、或停止在某个标识状态都不是一个可用的诊断工具,因为采样不断地到来。即使是采样不再到来而中断此系统,也不可能发现其操作状态。典型的数据处理要执行复杂的数据过滤、快速的傅立叶变换、还要执行主机的其它数字信号处理任务,所有这些都要同时进行,再加上提供识别或合成用的信号采样。所以,要想在某一任务执行过程中,任意中断数字信号处理机来准确判别当前的操作状态、并隔离瞬时的行为流实际上是不可能的。而只有在不中断流程的情况下获取信号流,并以可分析识别的形式显示出来才是可行的诊断方法。即使一个正弦波如果以图12A的数字串形式表示,诊断人员都是很难理解的。图12A只给出了一个有32个采样的简单序列,而这对于每秒产生8000字节采样时。鉴别数字串中的异样情况可能是不够的。但是利用该发明就可以在不使信号处理机超载的情况下获取这些采样,将采样完好地保存在一个循环缓冲区内。当要在主计算机系统的显示器上显示其图形正弦波时,可以再把数据块取出来。
对于诸如Lntel80386的这样的宿主系统图形显示程序和例程是众所周知且可以买到的。用户可以从中选择一个,把诊断检测器获得的采样做为该图形程序的输入,获取过程如上所述,再以模拟波形实时地将结果显示到计算机系统的显示器上,如图11所示。图12A中第六列第三行的异常数据在图12B中表现为正弦波的一个变形。由此,可看到该发明对于原较难理解的信号采样序列的获取和显示在便于理解、错误检测和分析等方面的效力和才能。
该发明的优选实例利用现有的多媒体计算机处理系统、显示器和数字信号处理机于一身,彼此协调工作。使用户可以按图形方式,以操作简便易于理解的方法对数字信号处理机进行诊断和排错,而且还不致使硬的实时多任务的系统的操作超限或变形。因此,专业技术人员很明显地可以看到该发明不仅要修改除获取和插入外的实际要调用的诊断程序,还要在信号处理任务执行程序中加入逻辑选择,而且要有提供假想错误点及在实际中找到错误点的工具,该发明在分析系统是否可能超载的技术上遵循了基本机制,而在许多方面脱离了基本机制。如果不发生超载,则可以在所要的信号处理机任务执行的某一部分插入一个或多个分支的指令,以检测瞬时产生的结果,或者插入任意一些所要的值以观察结果,所有这些工作都可以在实际时环境下以高速完成,并可同时利用图形进行观察,而且不需要任何附加的硬件,示波器,检测缓冲区,或生成器等。因此,该发明为在信号处理机排错应用方面的一个重大进步。
因此下面权利要求中所提到的只作为举出的例子而不是限制。
权利要求
1.在多媒体系统中,诊断任务执行故障的装置,多媒体系统由一个主机系统,一个显示器和一个处理任务的数字信号处理机组成。所述的诊断装置其特征为判别在所述的多媒体系统中,如果调用诊断任务是否会在被诊断的,所述的DSP任务执行过程中,造成所述的DSP处理超载的装置;每当启动一个诊断任务,且判定不存在处理超载时,存取和修改所述的任务的执行指令的装置,所述的修改包括在所述的DSP任务执行指令序列中插入分支指令,以使所述的任务执行转移到诊断任务的指令,然后执行所述的指令,并返回到所述的DSP任务,在所述的DSP任务执行时间结束之前完成任务执行。
2.权利要求1所述的诊断系统其特征为所述的任务在所述的DSP执行过程中获取系统生成的数学数据结果的装置和以图形方式显示所述的数据结果的装置;
3.权利要求1中所描述的诊断系统,其特征为当中断执行所述的诊断函数时,删除所定义的分支指令的装置。
4.权利要求2中所描述的诊断系统,其特征为当中断所述的诊断函数的执行时,删除所述的分支指令的装置。
5.权利要求1、2、3或4中描述的诊断系统,其特征为将所述的数字数据结果存入可存取的存储器队列,以供主系统存取和显示的装置。
6.权利要求2、或4所描述的诊断系统,其特性为所述的以图形方式显示结果的装置,包括所述的主计算机系统和显示装置,以及存取所述的数字数据结果并根据结果控制显示以便生成图形表示的装置。
7.权利要求1、2、3或4描述的诊断系统,其特征为在所述的DSP任务执行过程中,将任意值的数字数据结果装入所述的DSP设备中的装置;和用上述的DSP任务执行中的那个数字数据结果来代替所述的任务正常执行时生成的数字数据结果的装置。
8.权利要求5所描述的诊断系统其特征为在所述的DSP任务执行过程中,将任意值的数字数据结果装入所述的DSP设备中的装置;和用所述的DSP任务执行中的所述的数字数据结果来代替所述的任务正常执行时生成的所述的数字数据结果的装置。
9.权利要求6所描述的诊断系统,其特性为在所述的DSP任务执行过程中,将任意值的数字数据结果装入所述的DSP设备中的装置;和用所述的DSP任务执行中的所述的数字数据结果来代替所的任务正常执行时生成的所述的数字数据结果的装置。
全文摘要
本发明描述了在多任务,硬性的实时任务环境中,可进行故障隔离的多媒体计算机系统的诊断系统。通过被检测的任务执行指令中插入一个分支指令,以使任务执行转入诊断秩序的方法可以对硬性的实时多任务操作,尤其是独一无二的信号处理任务进行监测,而不会产生任务处理超载或者结果的延迟超载硬性的实时任务的界限。
文档编号G06F11/36GK1077037SQ9310101
公开日1993年10月6日 申请日期1993年2月5日 优先权日1992年3月6日
发明者威谦·乔治·克劳斯, 迈尔康姆·斯科特·维尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1