一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

参数调整方法及装置、系统启动方法、计算机设备与流程

2023-10-26 19:11:10 来源:中国专利 TAG:


1.本技术涉及半导体测试技术领域,特别是涉及一种参数调整方法、系统启动方法、参数调整装置、计算机设备、计算机可读存储介质和计算机程序产品。


背景技术:

2.操作系统启动过程中,通常包括初始化阶段。在初始化化阶段,对计算机器件进行初始化。
3.传统方法对操作系统进行调试时,首先在初始化阶段,通过默认值对计算机器件进行初始化。然后,再在可视化图形界面实现器件(如存储器)的参数值调整。使用该种方式,需重启系统才可使修改后的参数值生效,从而降低了系统调试的效率。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高操作系统调试效率的参数调整方法、系统启动方法、参数调整装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.一种参数调整方法,应用于操作系统调试,所述参数调整方法包括:
6.接收输入的参数调整指令,所述参数调整指令用于指示将目标对象的目标参数由默认值调整为目标值;
7.解析所述参数调整指令,以确定所述目标对象的所述目标参数以及所述目标值;
8.在所述操作系统启动过程中的初始化阶段,基于所述目标值对所述目标对象的所述目标参数进行初始化。
9.在其中一个实施例中,所述目标对象包括动态随机存取存储器。
10.在其中一个实施例中,所述目标参数包括速度、定时、功率、时钟频率中的至少一种。
11.在其中一个实施例中,所述目标对象包括中央处理器、输入输出控制器、芯片组、通用串行总线中的任意一种或多种。
12.在其中一个实施例中,所述接收输入的参数调整指令的步骤之前,所述参数调整方法还包括:
13.加载并配置通信端口;
14.在所述接收输入的参数调整指令的步骤中,通过配置好的所述通信端口接收输入的参数调整指令。
15.在其中一个实施例中,所述通信端口包括通用异步收发传输器端口、通用串行总线端口、串行外设端口、双向二线制同步串行总线端口中的任意一种。
16.一种系统启动方法,包括上述任一项所述的参数调整方法。
17.一种参数调整装置,应用于操作系统调试,所述参数调整装置包括:
18.接收模块,用于接收输入的参数调整指令,所述参数调整指令用于指示将目标对
象的目标参数由默认值调整为目标值;
19.解析模块,用于解析所述参数调整指令,以确定所述目标对象的所述目标参数以及所述目标值;
20.初始化模块,在所述操作系统启动过程中的初始化阶段,用于基于所述目标值对所述目标对象的所述目标参数进行初始化。
21.在其中一个实施例中,所述参数调整装置还包括配置模块,所述配置模块用于加载并配置通信端口;
22.所述接收模块用于通过配置好的通信端口接收输入的参数调整指令。
23.在其中一个实施例中,所述通信端口包括通用异步收发传输器端口、通用串行总线端口、串行外设端口、双向二线制同步串行总线端口中的任意一种。
24.在其中一个实施例中,所述目标对象包括动态随机存取存储器。
25.在其中一个实施例中,所述目标参数包括速度、定时、功率、时钟频率中的至少一种。
26.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的参数调整方法的步骤。
27.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的参数调整方法的步骤。
28.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一项所述的参数调整方法的步骤。
29.上述参数调整方法、系统启动方法、参数调整装置、计算机设备、计算机可读存储介质和计算机程序产品,在对目标对象进行初始化之前,接收并解析参数调整指令,从而获取目标对象的需要调整的目标参数及其目标值。因此,在对目标对象进行初始化之前,即可对其的目标参数的默认值进行修改。然后,在操作系统启动过程中的初始化阶段,可以直接使用修改后的参数值(目标值)取代默认值,对目标对象的目标参数进行初始化,使得修改后的参数值直接生效。
30.因此,使用本本技术实施例方法调整参数时,不需要再经过重启以使参数值生效,从而可以有效提高操作系统调试效率。
31.同时,本技术实施例方案,如果调整的参数有问题导致开机失败,但可以在重启之后又进入下一轮的参数设计阶段,直接换成新的参数值调试即可。
附图说明
32.为了更清楚地说明本技术实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1为一个实施例中参数调整方法的流程示意图;
34.图2为另一个实施例中参数调整方法的流程示意图;
35.图3为pei阶段的流程示意图;
36.图4为pei阶段的调度系统中的peim的流程示意图;
37.图5为一个实施例中参数调整装置的结构框图;
38.图6为另一个实施例中参数调整装置的结构框图;
39.图7为一个实施例中计算机设备的内部结构图。
40.附图标记说明:100-接收模块,200-解析模块,300-初始化模块,400-配置模块。
具体实施方式
41.为了便于理解本技术,下面将参照相关附图对本技术进行更全面的描述。附图中给出了本技术的实施例。但是,本技术可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本技术的公开内容更加透彻全面。
42.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
43.在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。
44.正如背景技术所言,传统方法对操作系统进行调试时,需重启系统才可使修改后的参数值生效,从而降低了系统调试的效率。
45.具体地,例如对于uefi(unified extensible firmware interface,统一可扩展固件接口)引导的uefi系统,其从加电到关机可分为7个阶段:sec(security phase,安全验证)、pei(pre-efi initialization,efi(可扩展固件接口)前期初始化)、dxe(driver execution environment,驱动执行环境)、bds(boot device selection,启动设备选择)、tsl(transient system load,操作系统加载前期)、rt(run time,运行时期)、al(after life,系统灾难恢复期)。其中,前三个阶段(即sec阶段、pei阶段、dxe阶段)是uefi初始化阶段。dxe阶段结束后uefi环境已经准备完毕。bds阶段和tsl阶段是操作系统加载器作为uefi应用程序运行的阶段。
46.传统方法对uefi系统调试的过程中,在pei阶段,通过默认值对内存进行初始化。然后,在bds阶段,通过可视化图形界面修改内存参数(如速度、定时、功率)的参数值。之后重启系统,通过修改后的参数值对内存进行初始化,以使得修改后的参数值生效。该方法由于需重启系统才可使修改后的参数值生效,从而降低了系统调试的效率。
47.基于此,本技术实施例提供了一种能够提高操作系统调试效率的参数调整方法、系统启动方法、参数调整装置、计算机设备、计算机可读存储介质和计算机程序产品。本技术实施例可以但并不限于应用于uefi系统的调试。
48.在一个实施例中,请参阅图1,提供了一种参数调整方法,应用于操作系统调试。这里,操作系统可以但并不限于为uefi系统。
49.参数调整方法,包括:
50.步骤s200,在操作系统启动过程中的初始化阶段,接收输入的参数调整指令,参数调整指令用于指示将目标对象的目标参数由默认值调整为目标值;
51.步骤s400,解析参数调整指令,以确定目标对象的目标参数以及目标值;
52.步骤s600,基于目标值对目标对象的目标参数进行初始化。
53.在步骤s200中,“目标对象”为计算机器件对象。目标对象可以具有多个可设置参数。“目标参数”为目标对象的需要进行调整的参数。
54.作为示例,目标对象可以包括动态随机存取存储器(dram)。dram可以作为计算机内存。此时,目标参数可以包括速度、定时、功率、时钟频率等中的至少一种。
55.具体地,可以在开机后进入dram初始化前,接收输入的相关参数调整指令,(这些指令可以是自由开发定义)。输入的相关参数调整指令例如可以包括“clock 2133”。“clock”可以表示dram的时钟频率,“2133”可以表示dram的时钟频率的目标值。
56.当然,目标对象并不限于为dram,例如其还可以包括中央处理器、输入输出控制器、芯片组、通用串行总线等中的任意一种或多种。
57.在步骤s400中,通过解析参数调整指令,可以确定用户意图。
58.具体地,例如,目标对象为dram时,系统在收到包括“clock 2133”的指令后,解析指令,可以确定用户意图是需要调整dram的时钟频率,且需要使得dram的时钟频率预定在2133mhz。
59.在步骤s600中,在解析完参数调整指令之后,目标对象可以开始做初始化。到设定目标参数的环节,可以直接使用调整后的目标值,对目标对象的目标参数进行初始化。
60.具体地,例如,目标对象为dram时,在解析完参数调整指令之后,dram可以开始做初始化。到设定clock的环节,就直接使用新设定的参数值2133,而不是默认的参数值。
61.在本实施例中,在对目标对象进行初始化之前,接收并解析参数调整指令,从而获取目标对象的需要调整的目标参数及其目标值。因此,在对目标对象进行初始化之前,即可对其的目标参数的默认值进行修改。然后,在操作系统启动过程中的初始化阶段,可以直接使用修改后的参数值(目标值)取代默认值,对目标对象的目标参数进行初始化,使得修改后的参数值直接生效。
62.因此,使用本实施例方法调整参数时,不需要再经过重启以使参数值生效,从而可以有效提高操作系统调试效率。
63.同时,目标对象(如dram)的目标参数(如速度、定时、功率、时钟频率等)的参数值的调整可能会引起目标对象(如dram)工作不正常,从而导致无法加载后面(如pei阶段后)的动作,例如可视化图形界面都有可能不能运行,从而导致开机失败。
64.传统的方案在可视化图形界面修正参数值后重启,如果参数值有问题而引起可视化图形界面无法运行,那么也就没有办法去重新换参数来拯救系统,也没有办法进行下一轮的参数设计调试了。目前唯一的做法就是重新烧写系统程式,刷机重新还原到原本的参数。
65.而本实施例方案,如果调整的参数有问题导致开机失败,但可以在重启之后又进入下一轮的参数设计阶段,直接换成新的参数值调试即可。
66.在一个实施例中,请参阅图2,在步骤s200之前,还包括:
67.步骤s100,加载并配置通信端口。
68.作为示例,通信端口可以包括通用异步收发传输器端口(uart端口)、通用串行总线端口(usb端口)、串行外设端口(spi端口)、双向二线制同步串行总线端口(i2c端口)中的任意一种。
69.此时,在步骤s200中,可以通过配置好的通信端口接收输入的参数调整指令。
70.作为示例,当目标对象为dram时,在pei阶段,dram执行初始化前的任意一阶段,可以新增uart(universal asynchronous receiver transmitter,通用异步收发传输器)端口以输入cmd,cmd主要为接受对dram的参数调整。
71.在本实施例中,可采用已经加载的通信端口进行参数调整指令的输入,从而提高参数输入的可操作性和便捷性。
72.在一个实施例中,提供一种参数调整方法,用于对dram的各个可修改的参数进行调试。
73.参数调整方法包括:
74.在pei阶段,dram执行初始化前的任意一阶段,加载并配置uart端口;
75.通过uart端口接收参数调整指令,参数调整指令用于将dram的目标参数由默认值调整为目标值,参数调整指令在开机后进入dram初始化前,通过uart端口输入;
76.解析参数调整指令,根据目标参数确定用户意图是需要调整dram的何种参数,根据目标值确定用户意图是将该参数值要调整至何值;
77.解析参数调整指令之后,dram开始做初始化,设定dram的目标参数的环节,直接使用新设定的目标值,对dram的目标参数进行初始化。
78.具体地,请参阅图3,pei阶段的执行流程,可以包括:
79.步骤s10,进入pei入口;
80.步骤s20,初始化ps(pei core service,pei核心服务);
81.步骤s30,调度系统中的peim(pei module,pei模块);
82.步骤s40,准备hob(handoff block,切换块)列表,利用dxe ipl(initial program loader,初始程序的装入程序)ppi(peim-to-peim interfaces,peim-to-peim接口)找到;
83.步骤s50,调用dxe ipl ppi的entry服务(即调用dxeloadcore)加载dxe;
84.步骤s60,进入dxe入口。
85.其中,请参阅图4,步骤s30包括:
86.步骤s31,调度cpu peim,提供cpu相关功能,例如cache(缓存)设置、主频设置等;
87.步骤s32,调度平台相关peim,例如初始化内存控制器、输入输出(i/o)控制器;
88.步骤s33,内存初始化peim。
89.本实施例具体可以在步骤s31与步骤s32之间加载并配置uart端口。然后进行通过uart端口,接收输入并解析参数调整指令,将dram的目标参数由默认值调整为目标值。然后再执行步骤s33,对内存(dram)进行初始化,从而在当次系统启动时,即可以利用修改后的参数值对使得dram的目标参数进行初始化(即不需要重启即可以利用修改后的参数值对dram的目标参数进行初始化),从而提高了系统调试的效率。
90.应该理解的是,虽然说明书附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,说明书附图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交
替地执行。
91.在一个实施例中,还提供一种系统启动方法,包括上述任一项参数调整方法。
92.具体地,这里的系统可以但不限于为uefi系统。操作系统启动过程具体地可以包括:
93.对计算机系统加电,进入sec阶段。进入pei阶段,为dxe准备执行环境,且在pei阶段执行接收输入的参数调整指令,参数调整指令用于指示将目标对象的目标参数由默认值调整为目标值;解析参数调整指令,以确定目标对象的目标参数以及目标值;在操作系统启动过程中的初始化阶段,基于目标值对目标对象的目标参数进行初始化。进入dxe阶段,阶段执行大部分系统初始化工作。进入dxe阶段时,内存已经可以被完全使用,因而此阶段可以进行大量的复杂工作。dxe阶段结束后uefi环境已经准备完毕。之后,进入bds阶段,执行启动策略。之后,进入tsl阶段,为操作系统加载器准备执行环境。之后,在rt阶段,进行操作系统运行。当系统硬件或操作系统出现严重错误不能继续正常运行时,固件会尝试修复错误,这时系统进入al阶段。
94.在一个实施例中,请参阅图5,提供一种参数调整装置,应用于操作系统调试。参数调整装置包括接收模块100、解析模块200以及初始化模块300。
95.接收模块100用于接收输入的参数调整指令,参数调整指令用于指示将目标对象的目标参数由默认值调整为目标值。
96.解析模块200用于解析参数调整指令,以确定目标对象的目标参数以及目标值。
97.初始化模块300用于基于目标值对目标对象的目标参数进行初始化。
98.在一个实施例中,目标对象包括动态随机存取存储器。
99.在一个实施例中,目标参数包括速度、定时、功率、时钟频率中的至少一种。
100.在一个实施例中,目标对象包括中央处理器、输入输出控制器、芯片组、通用串行总线中的任意一种或多种。
101.在一个实施例中,请参阅图6,参数调整装置还包括配置模块400。配置模块400用于加载并配置通信端口。接收模块100用于通过配置好的通信端口接收输入的参数调整指令。
102.在一个实施例中,通信端口包括通用异步收发传输器端口、通用串行总线端口、串行外设端口、双向二线制同步串行总线端口中的任意一种。
103.在一个实施例中,参数调整装置包括:配置模块400、接收模块100、解析模块200以及初始化模块300。
104.配置模块400,用于在pei阶段,dram执行初始化前的任意一阶段,加载并配置uart端口;
105.接收模块100,用于通过uart端口接收参数调整指令,参数调整指令用于将dram的目标参数由默认值调整为目标值,参数调整指令在开机后进入dram初始化前,通过uart端口输入;
106.解析模块200,用于解析参数调整指令,根据目标参数确定用户意图是需要调整dram的何种参数,根据目标值确定用户意图是将该参数值要调整至何值;
107.初始化模块300,用于解析参数调整指令之后,dram开始做初始化,设定dram的目标参数的环节,直接使用新设定的目标值,对dram的目标参数进行初始化。
108.关于参数调整装置的具体限定可以参见上文中对于参数调整方法的限定,在此不再赘述。上述参数调整装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
109.在一个实施例中,请参阅图7,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
110.接收输入的参数调整指令,参数调整指令用于指示将目标对象的目标参数由默认值调整为目标值;解析参数调整指令,以确定目标对象的目标参数以及目标值;在操作系统启动过程中的初始化阶段,基于目标值对目标对象的目标参数进行初始化。
111.在一个实施例中,目标对象包括动态随机存取存储器。
112.在一个实施例中,目标参数包括速度、定时、功率、时钟频率中的至少一种。
113.在一个实施例中,目标对象包括中央处理器、输入输出控制器、芯片组、通用串行总线中的任意一种或多种。
114.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
115.加载并配置通信端口。
116.在接收输入的参数调整指令的步骤中,通过配置好的通信端口接收输入的参数调整指令。
117.在一个实施例中,通信端口包括通用异步收发传输器端口、通用串行总线端口、串行外设端口、双向二线制同步串行总线端口中的任意一种。
118.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
119.在pei阶段,dram执行初始化前的任意一阶段,加载并配置uart端口;通过uart端口接收参数调整指令,参数调整指令用于将dram的目标参数由默认值调整为目标值,参数调整指令在开机后进入dram初始化前,通过uart端口输入;解析参数调整指令,根据目标参数确定用户意图是需要调整dram的何种参数,根据目标值确定用户意图是将该参数值要调整至何值;解析参数调整指令之后,dram开始做初始化,设定dram的目标参数的环节,直接使用新设定的目标值,对dram的目标参数进行初始化。
120.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
121.接收输入的参数调整指令,参数调整指令用于指示将目标对象的目标参数由默认值调整为目标值;解析参数调整指令,以确定目标对象的目标参数以及目标值;在操作系统启动过程中的初始化阶段,基于目标值对目标对象的目标参数进行初始化。
122.在一个实施例中,目标对象包括动态随机存取存储器。
123.在一个实施例中,目标参数包括速度、定时、功率、时钟频率中的至少一种。
124.在一个实施例中,目标对象包括中央处理器、输入输出控制器、芯片组、通用串行总线中的任意一种或多种。
125.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
126.加载并配置通信端口。
127.在接收输入的参数调整指令的步骤中,通过配置好的通信端口接收输入的参数调整指令。
128.在一个实施例中,通信端口包括通用异步收发传输器端口、通用串行总线端口、串行外设端口、双向二线制同步串行总线端口中的任意一种。
129.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
130.在pei阶段,dram执行初始化前的任意一阶段,加载并配置uart端口;通过uart端口接收参数调整指令,参数调整指令用于将dram的目标参数由默认值调整为目标值,参数调整指令在开机后进入dram初始化前,通过uart端口输入;解析参数调整指令,根据目标参数确定用户意图是需要调整dram的何种参数,根据目标值确定用户意图是将该参数值要调整至何值;解析参数调整指令之后,dram开始做初始化,设定dram的目标参数的环节,直接使用新设定的目标值,对dram的目标参数进行初始化。
131.在一个实施例中,还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现:接收输入的参数调整指令,参数调整指令用于指示将目标对象的目标参数由默认值调整为目标值;解析参数调整指令,以确定目标对象的目标参数以及目标值;在操作系统启动过程中的初始化阶段,基于目标值对目标对象的目标参数进行初始化。
132.在一个实施例中,目标对象包括动态随机存取存储器。
133.在一个实施例中,目标参数包括速度、定时、功率、时钟频率中的至少一种。
134.在一个实施例中,目标对象包括中央处理器、输入输出控制器、芯片组、通用串行总线中的任意一种或多种。
135.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
136.加载并配置通信端口。
137.在接收输入的参数调整指令的步骤中,通过配置好的通信端口接收输入的参数调整指令。
138.在一个实施例中,通信端口包括通用异步收发传输器端口、通用串行总线端口、串行外设端口、双向二线制同步串行总线端口中的任意一种。
139.在一个实施例中,还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
140.在pei阶段,dram执行初始化前的任意一阶段,加载并配置uart端口;通过uart端口接收参数调整指令,参数调整指令用于将dram的目标参数由默认值调整为目标值,参数调整指令在开机后进入dram初始化前,通过uart端口输入;解析参数调整指令,根据目标参数确定用户意图是需要调整dram的何种参数,根据目标值确定用户意图是将该参数值要调整至何值;解析参数调整指令之后,dram开始做初始化,设定dram的目标参数的环节,直接使用新设定的目标值,对dram的目标参数进行初始化。
141.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
142.在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
143.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
144.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表