掌桥专利:专业的专利平台
掌桥专利
首页

一种接口调试方法、装置、电子设备及可读存储介质

文献发布时间:2023-06-19 09:54:18


一种接口调试方法、装置、电子设备及可读存储介质

技术领域

本申请涉及应用程序技术领域,特别涉及一种接口调试方法、接口调试装置、电子设备及计算机可读存储介质。

背景技术

SPI(Serial Peripheral Interface,串行外设接口)是一种接口总线,通常用于与闪存、传感器、实时时钟(RTCs)、模数转换器等进行通信。串行外围接口总线用于在主设备和从设备之间提供全双工同步串行通信。在进行嵌入式开发时,经常需要对SPI接口进行调试,例如对安卓(Android)驱动进行SPI接口调试。相关技术一般在调试前修改内核代码,同时修改应用层用于对驱动进行调用的应用程序,既需要修改kernel和应用程序后才能够进行接口调试。而修改kernel和应用程序操作繁琐,所需时间长,接口调试的效率较低。

因此,相关技术存在的操作繁琐,所需时间长,效率较低的问题,是本领域技术人员需要解决的技术问题。

发明内容

有鉴于此,本申请的目的在于提供一种接口调试方法、接口调试装置、电子设备及计算机可读存储介质,减少了接口调试过程所需的时间,提高了接口调试的调试效率。

为解决上述技术问题,本申请提供了一种接口调试方法,包括:

获取目标脚本;

利用所述目标脚本确定目标端口,并在所述目标端口可用的情况下,确定所述目标端口的端口含义;

基于所述端口含义,利用所述目标端口进行接口调试。

可选地,在利用所述目标脚本确定目标端口之后,还包括:

利用所述目标脚本对所述目标端口进行输入输出状态设置测试,判断所述目标端口的输入输出状态是否可设置;

若所述输入输出状态可设置,则确定所述目标端口可用;

若所述输入输出状态不可设置,则确定所述目标端口不可用。

可选地,在利用所述目标脚本确定目标端口之后,还包括:

在所述目标端口为输出状态的情况下,对所述目标端口进行零一输出测试,判断所述目标端口是否输出可控;

若所述目标端口输出可控,则确定所述目标端口可用;

若所述目标端口输出不可控,则确定所述目标端口不可用。

可选地,所述确定所述目标端口的端口含义,包括:

利用所述目标脚本中的端口设置信息确定所述目标端口对应的所述端口含义。

可选地,所述确定所述目标端口的端口含义,包括:

获取各个所述目标端口对应的端口号;

利用所述端口号,按照预设顺序确定所述目标端口对应的所述端口含义。

可选地,所述利用所述目标脚本确定目标端口,包括:

获取所述目标脚本对应的脚本规则;

基于所述脚本规则,利用所述目标脚本确定所述目标端口。

可选地,所述利用所述目标端口进行接口调试,包括:

设置所述目标端口对应的工作模式;

依据所述工作模式对应的规则,利用所述目标端口进行接口调试。

本申请还提供了一种接口调试装置,包括:

脚本获取模块,用于获取目标脚本;

端口含义确定模块,用于利用所述目标脚本确定目标端口,并在所述目标端口可用的情况下,确定所述目标端口的端口含义;

调试模块,用于基于所述端口含义,利用所述目标端口进行接口调试。

本申请还提供了一种电子设备,包括存储器和处理器,其中:

所述存储器,用于保存计算机程序;

所述处理器,用于执行所述计算机程序,以实现上述的接口调试方法。

本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的接口调试方法。

本申请提供的接口调试方法,获取目标脚本;利用目标脚本确定目标端口,并在目标端口可用的情况下,确定目标端口的端口含义;基于端口含义,利用目标端口进行接口调试。

可见,该方法通过目标脚本完成接口调试前必须的设置,目标脚本内记录有目标端口,目标端口用于组成被调试的接口。在目标端口确定可用的情况下,则可以利用目标端口组成接口,各个端口上传输的信号具有不同的含义,因此可以确定目标端口对应的端口含义,即确定目标端口传输信号的具体含义。基于端口含义,可以利用目标端口进行接口调试。由于目标脚本与内核以及调用驱动的应用程序相互独立,因此其可移植性强,且修改简单,修改所需时间短,通过部署和运行目标脚本即可完成接口调试的准备工作,减少了准备工作所需的时间,进而减少了整个接口调试过程所需的时间,提高了接口调试的调试效率,解决了相关技术存在的操作繁琐,所需时间长,效率较低的问题。

此外,本申请还提供了一种接口调试装置、电子设备及计算机可读存储介质,同样具有上述有益效果。

附图说明

为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种接口调试方法流程图;

图2为本申请实施例提供的一种具体的SPI接口时序波形图;

图3为本申请实施例提供的一种接口调试装置的结构示意图;

图4为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例提供的一种接口调试方法流程图。该方法包括:

S101:获取目标脚本。

需要说明的是,本实施例中的部分或全部步骤可以由指定的电子设备执行,该指定的电子设备即为被进行接口调试的设备,具体为被进行SPI接口调试的设备。目标脚本用于指示完成SPI接口调试所需的准备工作,其具体形式本实施例不做限定,例如可以为shell脚本。SPI接口不同于I2C接口,其没有太多的时序要求,只要满足基本的SPI框架即可,所以可以利用目标脚本对SPI接口时序进行模拟。目标脚本的具体内容不做限定,由于SPI接口包括多个引脚,分别对应于具有不同含义的信号,因此目标脚本至少需要指定具体的端口并为其分配相应的含义,以便其组成SPI端口进行端口调试工作。目标脚本用于指示如何完成接口调试的准备工作,其可以在引用层运行,与调用系统驱动(例如Android驱动)的应用程序相互独立。因此在指定的电子设备上部署目标脚本并对其进行执行,并在执行后进行接口调试工作,即可快速完成接口调试,无需修改kernel以及调用系统驱动的应用程序。

本实施例并不限定获取目标脚本的具体方式,例如可以从其他电子设备处获取,或者可以接收输入的指令,在本地生成目标脚本,具体获取方式可以需要进行选择。

S102:利用目标脚本确定目标端口,并在目标端口可用的情况下,确定目标端口的端口含义。

SPI接口包括4个引脚,分别为MOSI(数据输出)、MISO(数据输入)、CLK(时钟)、CS(片选信号),因此可以理解的是,目标脚本中需要指定4个端口,分别对应于上述四个引脚。本实施例并不限定端口的具体类型,例如可以为gpio端口,即General Purpose InputOutput,通用输入/输出端口,通过对gpio端口的电平进行控制,可以利用电平高低变化模拟SPI接口时序。请参考图2,图2为本申请实施例提供的一种具体的SPI接口时序波形图。其中,SPI端口工作于Rising Edge Mode,即上升沿模式。其中SCLK信号即为时钟信号,SS信号即为片选信号,Sample input(示例输入)信号可以为数据输出信号,也可以为数据输入信号。

在利用目标脚本确定目标端口后,在确定目标端口可用的情况下明确各个目标端口对应的端口含义。本实施例并不限定利用目标脚本确定目标端口的具体方式,在一种可行的实施方式中,利用目标脚本确定目标端口的步骤可以包括:

步骤11:获取目标脚本对应的脚本规则。

步骤12:基于脚本规则,利用目标脚本确定目标端口。

由于目标脚本的具体形式不做限定,可以采用任意可识别的语言,因此在对目标脚本进行执行时,需要获取对应的脚本规则。脚本规则也可以称为解释器,其具体获取方法不做限定,例如可以读取目标脚本内对脚本文件规则的说明部分,例如为:

#!/system/bin/sh

该部分即为对目标脚本的运行环境进行的说明,其表明需要基于该脚本规则对目标脚本进行执行。在获取脚本规则后,基于该脚本规则对目标脚本指定的目标端口进行确定,例如可以检测目标脚本中对哪些端口进行了操作,则将这些端口确定为目标端口,或者可以检测目标脚本是否声明了那些端口为目标端口,若进行了声明,则按照声明确定该目标端口。

本实施例并不限定目标脚本在生成时如何确定其中的目标端口,例如可以查看硬件原理图确定gpio端口的硬件使用情况,并从未被使用的空闲gpio端口中确定目标端口。然而,空闲的gpio端口虽然未被硬件占用,但是某些软件在运行过程中可能会导致gpio端口不可用,因此在确定目标端口后,只有在确定目标端口可用的情况下,再确定目标端口的端口含义。

具体的,在一种可行的实施方式中,在利用目标脚本确定目标端口之后,还可以包括:

步骤21:利用目标脚本对目标端口进行输入输出状态设置测试,判断目标端口的输入输出状态是否可设置。

步骤22:若输入输出状态可设置,则确定目标端口可用。

步骤23:若输入输出状态不可设置,则确定目标端口不可用。

在本实施例中,通过判断gpio端口的输入输出状态是否可设置的方式,可以判断gpio端口是否可用。输入输出状态设置测试即为直接对目标端口的输入输出状态进行设置,通过判断设置是否成功来判断目标端口输入输出状态是否可设置。例如,若指定的电子设备采用高通平台,则可以利用adb指令进行输入输出状态设置测试,例如:

cd/sys/class/gpio

echo 88>export

echo"out">gpio88/direction

其中,echo 88>export说明对88号端口进行操作,操作的具体内容为将88号端口设置为输出状态。通过检测88号端口是否被设置为输出状态来判断目标端口的输入输出状态是否可设置。若可设置,则确定目标端口可用,若不可设置,则确定目标端口不可用。相应的,还可以将目标端口设置为输入状态,并检测是否被成功设置来判断输入输出状态是否可设置。

进一步,在另一种可行的实施方式中,在利用目标脚本确定目标端口之后,还可以包括:

步骤31:在目标端口为输出状态的情况下,对目标端口进行零一输出测试,判断目标端口是否输出可控。

步骤32:若目标端口输出可控,则确定目标端口可用。

步骤33:若目标端口输出不可控,则确定目标端口不可用。

由于目标端口可能初始即为输出状态,或者输入输出状态可设置但是无法输出可控的信号,因此可以在目标端口为输出状态的情况下,对目标端口进行零一输出测试。由于端口只能通过高低电平的方式输出信号,而零一输出测试用于检测目标端口是否能够受控的输入低电平信号或高电平信号,若目标端口能够通过零一输出测试,则可以确定目标端口的输出可控的。

具体的,可以采用如下测试指令进行零一输出测试:

echo 1>gpio88/value

echo 0>gpio88/value

其中,第一个测试指令用于命令88号端口输出1,第二个测试指令用于命令88号端口输出0。在进行零一测试后,可以采用如下指令获取零一输出测试的结果:

cat gpio88/value

上述指令可以用于获取88号端口的输出,在执行完第一个测试指令后执行上述指令,若返回值为1,则说明88号端口输出了1;在执行完第二个测试指令后执行上述指令,若返回值为0,则说明88号端口输出了0。若上述两次检测均成功,则说明零一输出测试通过,88号端口的输出是可控的,可以确定目标端口可用,若上述两次检测任意一次没有成功,则说明零一输出测试未通过,88号端口的输出不可控,可以确定目标端口不可用。

上述两种对目标端口是否可用的检测方式可以单独执行,或者优选的,可以合并执行。即先判断目标端口的输入输出状态是否可设置,若可设置,则将其设置为输出状态,进而进行零一输出测试。若零一输出测试通过,则可以确定目标端口可用。

在目标端口可用的情况下,可以确定目标端口的端口含义,以便利用目标端口组成接口,即SPI接口。本实施例并不限定确定端口含义的具体方式,由于目标端口的数量和SPI接口中引脚的数量相同,因此目标端口和各个引脚对应的端口含义一一对应即可,本实施例并不限定具体的端口含义确定方式。

具体的,在一种可行的实施方式中,确定目标端口的端口含义的步骤可以包括:

步骤41:利用目标脚本中的端口设置信息确定目标端口对应的端口含义。

在本实施例中,目标脚本中包括端口设置信息,端口设置信息用于对目标端口对应的信号进行说民,即对目标端口对应的端口含义进行确定。具体的,端口设置信息为目标端口和端口含义的对应关系,其具体形式和内容不做限定。例如当目标端口为1号、2号、3号和4号端口时,端口设置信息具体可以为:

即将1号端口对应的信号设置为CS信号,2号端口对应的信号设置为CLK信号,3号端口对应的信号设置为MISO信号,4号端口对应的信号设置为MOSI信号。在确定各个端口对应的信号具有的实际含义后,可以基于该实际含义进行信号传输,进而进行接口调试。利用上述端口信息确定方式可以按照实际需要对各个目标端口的端口含义进行设置。

在另一种可行的实施方式中,确定目标端口的端口含义的步骤可以包括:

步骤51:获取各个目标端口对应的端口号。

步骤52:利用端口号,按照预设顺序确定目标端口对应的端口含义。

由于各个端口的端口号为唯一标识信息,即每个端口仅具有一个确定的端口号,每个端口号仅能指定一个确定的端口,因此目标端口对应的端口号必然不同。在确定目标端口对应的四个端口号后,可以按照预设顺序对端口号进行排序,并按照排序结果确定各个目标端口对应的端口含义。预设顺序可以为从小到大,或者可以为从大到小。在对端口号排序后,根据其大小顺序依次确定各个目标端口的端口含义。该方式可以不用对各个目标端口的端口含义进行设置,在确定存在四个可用的目标端口后可以自动确定各个目标端口的端口含义。

S103:基于端口含义,利用目标端口进行接口调试。

在确定端口含义后,即可完成接口调试前所必须的准备工作,可以根据端口含义对目标端口组成的接口进行接口调试。接口调试的具体过程和方式不做限定,可以参考相关技术,本实施例在此不做赘述。具体的,在一种实施方式中,利用目标端口进行接口调试的步骤可以包括:

步骤61:设置目标端口对应的工作模式。

步骤62:依据工作模式对应的规则,利用目标端口进行接口调试。

在本实施例中,目标端口组成的接口可以具有多种工作模式,不同工作模式下目标端口的工作状态不同,即不同工作模式对应的规则不同,调试的具体方式也可以不同。例如对于SPI接口而言,其共有四种工作模式,在进行接口调试时,可以选择最常用的模式0来实现SPI模拟时序。SPI接口是按位发送,模式0即为在时钟的上升沿读写数据。在进行接口调试前,可以先设置目标端口对应的工作模式,进而依据该工作模式对应的规则进行接口调试。在需要时,还可以分别对不同工作模式下的目标端口进行接口调试,保证对接口进行全面调试。

应用本申请实施例提供的接口调试方法,通过目标脚本完成接口调试前必须的设置,目标脚本内记录有目标端口,目标端口用于组成被调试的接口。在目标端口确定可用的情况下,则可以利用目标端口组成接口,各个端口上传输的信号具有不同的含义,因此可以确定目标端口对应的端口含义,即确定目标端口传输信号的具体含义。基于端口含义,可以利用目标端口进行接口调试。由于目标脚本与内核以及调用驱动的应用程序相互独立,因此其可移植性强,且修改简单,修改所需时间短,通过部署和运行目标脚本即可完成接口调试的准备工作,减少了准备工作所需的时间,进而减少了整个接口调试过程所需的时间,提高了接口调试的调试效率,解决了相关技术存在的操作繁琐,所需时间长,效率较低的问题。

下面对本申请实施例提供的接口调试装置进行介绍,下文描述的接口调试装置与上文描述的接口调试方法可相互对应参照。

请参考图3,图3为本申请实施例提供的一种接口调试装置的结构示意图,包括:

脚本获取模块110,用于获取目标脚本;

端口含义确定模块120,用于利用目标脚本确定目标端口,并在目标端口可用的情况下,确定目标端口的端口含义;

调试模块130,用于基于端口含义,利用目标端口进行接口调试。

可选地,还包括:

输入输出状态设置测试模块,用于利用目标脚本对目标端口进行输入输出状态设置测试,判断目标端口的输入输出状态是否可设置;

第一可用确定模块,用于若输入输出状态可设置,则确定目标端口可用;

第一不可用确定模块,用于若输入输出状态不可设置,则确定目标端口不可用。

可选地,还包括:

零一输出测试模块,用于在目标端口为输出状态的情况下,对目标端口进行零一输出测试,判断目标端口是否输出可控;

第二可用确定模块,用于若目标端口输出可控,则确定目标端口可用;

第二不可用确定模块,用于若目标端口输出不可控,则确定目标端口不可用。

可选地,端口含义确定模块120,包括:

第一确定单元,用于利用目标脚本中的端口设置信息确定目标端口对应的端口含义。

可选地,端口含义确定模块120,包括:

端口号获取单元,用于获取各个目标端口对应的端口号;

第二确定单元,用于利用端口号,按照预设顺序确定目标端口对应的端口含义。

可选地,端口含义确定模块120,包括:

脚本规则获取单元,用于获取目标脚本对应的脚本规则;

脚本信息解析单元,用于基于脚本规则,利用目标脚本确定目标端口。

可选地,调试模块130,包括:

工作模式设置单元,用于设置目标端口对应的工作模式;

调试单元,用于依据工作模式对应的规则,利用目标端口进行接口调试。

下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的接口调试方法可相互对应参照。

请参考图4,图4为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。

其中,处理器101用于控制电子设备100的整体操作,以完成上述的接口调试方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-OnlyMemory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。

多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。

电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的接口调试方法。

下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的接口调试方法可相互对应参照。

本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的接口调试方法的步骤。

该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种接口调试方法、装置、电子设备及可读存储介质
  • 设备调试方法、装置、电子设备和计算机可读存储介质
技术分类

06120112341263