UART控制器配置方法和系统与流程

文档序号:23260909发布日期:2020-12-11 18:49阅读:193来源:国知局
本发明涉及计算机
技术领域
:,特别是涉及一种uart控制器配置方法、一种uart控制器配置系统、电子设备和存储介质。
背景技术
::uart(universalasynchronousreceiver/transmitter,通用异步收发传输),简称串口,可以将数据在串行通信与并行通信之间加以转换以进行数据传输,这些传输的数据也被称为uart数据。其中,uart控制器是控制uart数据的输入、输出的设备,在操作系统的内核中,uart控制器的多种属性需要进行初始化,然而目前较少针对uart控制器指定其属性,完成uart控制器的初始化方案。技术实现要素:鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种uart控制器配置方法和相应的一种uart控制器配置系统、电子设备、存储介质。为了解决上述问题,本发明实施例公开了一种uart控制器配置方法,包括:当初始化目标uart控制器时,获取所述目标uart控制器对应的目标设备标识;从acpi表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标uart控制器在所述acpi表中预先配置;基于所述目标配置信息配置所述目标uart控制器的属性,完成所述目标uart控制器的初始化。可选地,当初始化uart控制器时,获取所述目标uart控制器对应的设备标识之前,所述方法还包括:在acpi表的dsdt中,基于uart控制器的设备标识确定对应的配置信息;在所述配置信息中设置所述uart控制器的属性信息。可选地,在所述配置信息中设置所述uart控制器的属性信息,包括:在所述配置信息中确定dsd对象;在所述dsd对象中设置所述uart控制器的属性信息。可选地,在所述dsd对象中设置所述uart控制器的属性信息,包括:在所述dsd对象中设置所述uart控制器的时钟频率。可选地,所述从acpi表中调取与所述目标设备标识对应的目标配置信息,包括:从acpi表的dsdt中,将与所述目标设备标识匹配的所述设备标识对应的配置信息,作为目标配置信息。可选地,所述基于所述目标配置信息配置所述目标uart控制器的属性信息,包括:从所述目标配置信息的所述dsd对象中,获取目标属性信息;将所述目标uart控制器的属性,配置为所述目标属性信息。可选地,所述属性信息为时钟频率,所述将所述目标uart控制器的属性,配置为所述目标属性信息,包括:将所述目标uart控制器的时钟频率,配置为所述目标时钟频率。可选地,在基于所述目标配置信息配置所述目标uart控制器的属性之后,所述方法还包括:当初始化所述目标uart控制器失败时,调取固定属性信息;将所述目标uart控制器的属性,配置为所述固定属性信息。可选地,所述属性信息为时钟频率,所述将所述目标uart控制器的属性,配置为所述固定属性信息,包括:将所述目标uart控制器的时钟频率,配置为所述固定时钟频率。本发明实施例还公开了一种uart控制器配置系统,包括:设备标识获取模块,用于当初始化目标uart控制器时,获取所述目标uart控制器对应的目标设备标识;配置信息调取模块,用于从acpi表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标uart控制器在所述acpi表中预先配置;配置模块,用于基于所述目标配置信息配置所述目标uart控制器的属性,完成所述目标uart控制器的初始化。可选地,所述系统还包括:配置信息确定模块,用于在acpi表的dsdt中,基于uart控制器的设备标识确定对应的配置信息;属性设置模块,用于在所述配置信息中设置所述uart控制器的属性信息。可选地,所述配置信息确定模块,用于在所述配置信息中确定dsd对象;在所述dsd对象中设置所述uart控制器的属性信息。可选地,所述配置信息确定模块,用于在所述dsd对象中设置所述uart控制器的时钟频率。可选地,所述配置信息调取模块,用于从acpi表的dsdt中,将与所述目标设备标识匹配的所述设备标识对应的配置信息,作为目标配置信息。可选地,所述配置信息调取模块,用于从所述目标配置信息的所述dsd对象中,获取目标属性信息;将所述目标uart控制器的属性,配置为所述目标属性信息。可选地,所述配置模块,用于将所述目标uart控制器的时钟频率,配置为所述目标时钟频率。可选地,所述系统还包括:切换模块,用于当初始化所述目标uart控制器失败时,调取固定属性信息;将所述目标uart控制器的属性,配置为所述固定属性信息。可选地,所述切换模块,用于将所述目标uart控制器的时钟频率,配置为所述固定时钟频率。本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的uart控制器配置方法的步骤。本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的uart控制器配置方法的步骤。本发明实施例包括以下优点:在本发明实施例中,当初始化目标uart控制器时,获取目标uart控制器对应的目标设备标识,以从acpi表中调取与目标设备标识对应的目标配置信息,从而可以基于目标配置信息配置目标uart控制器的时钟频率,完成目标uart控制器的初始化。本发明实施例可以基于高级配置和电源管理接口acip表实现uart控制器的初始化,使得uart控制器可以根据指定的属性进行工作,保证了uart控制器的正常工作,且由于只需要在操作系统中已有的高级配置和电源管理接口acip表上预先配置uart控制器的配置信息然后初始化时调取即可,故而不会造成系统额外的负担,保证了系统流畅性。附图说明图1是本发明的一种uart控制器配置方法实施例的步骤流程图;图2是本发明的一种uart控制器配置系统实施例的结构框图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例的uart控制器配置方法和系统,在uart控制器初始化流程中,可以通过acpi表的dsdt中对应的dsd对象,来指定uart控制器的时钟频率,从而实现uart控制器的初始化,uart控制器可以开始正常运行。参照图1,示出了本发明的一种uart控制器配置方法实施例的步骤流程图,本发明实施例具体可以包括如下步骤:步骤101,当初始化目标uart控制器时,获取所述目标uart控制器对应的目标设备标识。在具体实现中,在启动设备时需要对设备进行初始化(注册),比如对uart控制器进行初始化,以使uart控制器能够开始正常运行。其中,设备标识是指的能够用于唯一识别设备的编码或者名称,例如uart控制器的设备标识可以为uart0。在本发明实施例中,进行初始化操作的uart控制器为目标uart控制器,在确定目标uart控制器时,将获取目标uart控制器对应的目标设备标识。步骤102,从acpi表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标uart控制器在所述acpi表中预先配置。其中,acpi(advancedconfigurationandpowermanagementinterface,高级配置和电源管理接口)是intel(i386,x86_64,ia64)等平台的标准固件规范,大部分操作系统需要从bios(basicinputoutputsystem,基本输入输出系统)得到的信息都可以从acpi得到。具体地,acpi的信息可以包括:配置信息、acpi相关设备、底层硬件、电源管理、设备热插拔,acpi由多个acpi表组成,这些acpi表存放在内存中,在需要时可以从内存中获取到所有的acpi表。在本发明实施例中,在acpi表中预先配置所有的uart控制器所分别对应的配置信息。具体地,配置信息可以包括时钟频率、寄存器基地址、寄存器结束地址、控制器包含的管脚数量等属性信息,且配置信息与uart控制器的设备标识绑定,因此在确定需要进行初始化的目标uart控制器时,可以根据目标uart控制器的目标设备标识,从acip表中获取与该目标设备标识对应的目标配置信息。步骤103,基于所述目标配置信息配置所述目标uart控制器的属性,完成所述目标uart控制器的初始化。其中,在获取到目标uart控制器对应的目标配置信息后,就可以基于目标配置信息,对目标uart控制器分配对应的属性,从而完成对于目标uart控制器的初始化。在本发明实施例中,当初始化目标uart控制器时,获取目标uart控制器对应的目标设备标识,以从acpi表中调取与目标设备标识对应的目标配置信息,从而可以基于目标配置信息配置目标uart控制器的时钟频率,完成目标uart控制器的初始化。本发明实施例可以基于高级配置和电源管理接口acip表实现uart控制器的初始化,使得uart控制器可以根据指定的属性进行工作,保证了uart控制器的正常工作,且由于只需要在操作系统中已有的高级配置和电源管理接口acip表上预先配置uart控制器的配置信息然后初始化时调取即可,故而不会造成系统额外的负担,保证了系统流畅性。在一示例性实施例中,在所述步骤101,当初始化uart控制器时,获取所述目标uart控制器对应的设备标识之前,所述方法还可以包括:在acpi表的dsdt中,基于uart控制器的设备标识确定对应的配置信息;在所述配置信息中设置所述uart控制器的属性信息。其中,在acpi表中有很多的表,其中dsdt(differentiatedsystemdescriptiontable,系统差异描述表)是其中一个最主要的acpi表,dsdt可以提供关于基本系统的执行和配置信息。因此,本发明实施例在acpi表的dsdt中,可以在各个uart控制器的设备标识所对应的配置信息中,预先设置由用户指定的属性信息。在上述示例中,在dsdt预先针对各个uart控制器配置了对应的配置信息,使得后续在初始化uart控制器时,可以基于acpi表中dsdt中的配置信息完成。在不同的平台,对于初始化启动uart控制器的属性信息可能是不同的,比如龙芯平台上,仅需要对属性信息中的时钟频率进行配置,即可实现对uart控制器的启动,在一示例性实施例中,在所述配置信息中设置所述uart控制器的属性信息,可以包括:在所述配置信息中确定dsd对象;在所述dsd对象中设置所述uart控制器的时钟频率。其中,在dsdt具有dsd对象(_dsd),基于dsd对象可以实现数据的传递。在本发明实施例中,在dsdt中各个uart控制器的配置信息的dsd对象中,设置该uart控制器对应的属性信息。在上述示例中,在dsdt的dsd对象预先针对各个uart控制器配置了对应的属性信息,使得后续在初始化uart控制器时,可以基于acpi表中dsdt中,dsd对象中的配置信息完成。在一示例性实施例中,在所述dsd对象中设置所述uart控制器的属性信息,包括:在所述dsd对象中设置所述uart控制器的时钟频率。具体地,uart控制器需要设置时钟频率,用于驱动uart总线传输的数据和速率。然而外部输入的时钟频率是固定的时钟频率,故而无法指定uart控制器所需要的时钟频率,将导致uart控制器无法正常运行。因此,本发明实施例可以在dsdt的dsd对象预先针对各个uart控制器配置了对应的时钟频率,从而可以在初始化时可以从dsd对象中获取到时钟频率,以对uart控制器进行初始化。在一个具体示例中,固件需要在dsdt中uart控制器对应的配置信息的_dsd中,指定时钟频率,从而作为内核配置uart控制器的指定时钟频率。具体地,一种dsdt中uart控制器的配置信息如下所示:在上述示例中,针对一个uart控制器(uart0),在配置信息中的_dsd中设置了时钟频率属性和对应的时钟频率:clock-frequency:0xxxxx。在一示例性实施例中,所述步骤102,从acpi表中调取与所述目标设备标识对应的目标配置信息,可以包括:从acpi表的dsdt中,将与所述目标设备标识匹配的所述设备标识对应的配置信息,作为目标配置信息。在本发明实施例中,在获取目标uart控制器的目标设备标识后,可以从acpi表的dsdt中调取相应的配置信息,作为该目标uart控制器的目标配置信息。在上述示例中,在需要初始化目标uart控制器,只需要基于目标设备标识,即可从dsdt中调取到相应的目标配置信息,数据调取方式简单,易于实现。在一示例性实施例中,所述步骤103,基于所述目标配置信息配置所述目标uart控制器的属性,可以包括:从所述目标配置信息的所述dsd对象中,获取目标属性信息;将所述目标uart控制器的属性,配置为所述目标目标属性信息。其中,在调取目标uart控制器的目标配置信息后,可以从目标配置信息中的dsd对象中,进一步获取到目标属性信息,然后对于目标uart控制器中的属性基于目标属性信息进行配置。在一示例性实施例中,所述属性信息为时钟频率,所述将所述目标uart控制器的属性,配置为所述目标属性信息,包括:将所述目标uart控制器的时钟频率,配置为所述目标时钟频率。具体地,内核中解析目标uart控制器对应的dsd对象,使用dsd对象中的目标时钟频率,具体为将clock-frequency(时钟频率属性)对应的时钟频率,设置为dsd对象中的目标时钟频率。例如:device_property_read_u32(&dev->dev,"clock-frequency",uart.port.uartclk)在一示例性实施例中,在所述步骤103,基于所述目标配置信息配置所述目标uart控制器的属性之后,所述方法还可以包括:当初始化所述目标uart控制器失败时,调取固定属性信息;将所述目标uart控制器的属性,配置为所述固定属性信息。在具体实现中,基于acpi表完成了对目标uart控制器的初始化后,就可以在系统中正常运行目标uart控制器。但是在实际中,可能由于软件或者硬件方面的原因,导致基于acpi表无法完成对目标uart控制器的初始化,初始化失败,则可以切换初始化方式,切换为基于调取固定的属性信息,对目标uart控制器的初始化。在一示例性实施例中,所述将所述目标uart控制器的属性,配置为所述固定属性信息,包括:将所述目标uart控制器的时钟频率,配置为所述固定时钟频率。例如,可以在8250串口驱动初始化代码中,将配置uart控制器的时钟频率设置为固定时钟频率1843200hz:uart.port.uartclk=1843200。应用本发明实施例,在基于acpi表初始化目标uart控制器失败时,将固定的时钟频率作为目标uart控制器的时钟频率,无需重启设备,提升了系统的健壮性。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。参照图2,示出了本发明的一种uart控制器配置系统实施例的结构框图,具体可以包括如下模块:设备标识获取模块202,用于当初始化目标uart控制器时,获取所述目标uart控制器对应的目标设备标识;配置信息调取模块202,用于从acpi表中调取与所述目标设备标识对应的目标配置信息;其中,所述目标配置信息为针对所述目标uart控制器在所述acpi表中预先配置;配置模块203,用于基于所述目标配置信息配置所述目标uart控制器的属性,完成所述目标uart控制器的初始化。在本发明的一个优选实施例中,所述系统还包括:配置信息确定模块,用于在acpi表的dsdt中,基于uart控制器的设备标识确定对应的配置信息;属性设置模块,用于在所述配置信息中设置所述uart控制器的属性信息。在本发明的一个优选实施例中,所述配置信息确定模块,用于在所述配置信息中确定dsd对象;在所述dsd对象中设置所述uart控制器的属性信息。在本发明的一个优选实施例中,所述配置信息确定模块,用于在所述dsd对象中设置所述uart控制器的时钟频率。在本发明的一个优选实施例中,所述配置信息调取模块202,用于从acpi表的dsdt中,将与所述目标设备标识匹配的所述设备标识对应的配置信息,作为目标配置信息。在本发明的一个优选实施例中,所述配置信息调取模块202,用于从所述目标配置信息的所述dsd对象中,获取目标属性信息;将所述目标uart控制器的属性,配置为所述目标属性信息。在本发明的一个优选实施例中,所述配置模块203,用于将所述目标uart控制器的时钟频率,配置为所述目标时钟频率。在本发明的一个优选实施例中,所述系统还包括:切换模块,用于当初始化所述目标uart控制器失败时,调取固定属性信息;将所述目标uart控制器的属性,配置为所述固定属性信息。在本发明的一个优选实施例中,所述切换模块,用于将所述目标uart控制器的时钟频率,配置为所述固定时钟频率。综上可知,在本发明实施例中,当初始化目标uart控制器时,获取目标uart控制器对应的目标设备标识,以从acpi表中调取与目标设备标识对应的目标配置信息,从而可以基于目标配置信息配置目标uart控制器的时钟频率,完成目标uart控制器的初始化。本发明实施例可以基于高级配置和电源管理接口acip表实现uart控制器的初始化,使得uart控制器可以根据指定的属性进行工作,保证了uart控制器的正常工作,且由于只需要在操作系统中已有的高级配置和电源管理接口acip表上预先配置uart控制器的配置信息然后初始化时调取即可,故而不会造成系统额外的负担,保证了系统流畅性。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上uart控制器配置方法实施例所述的步骤。本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上uart控制器配置方法实施例所述的步骤。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本发明所提供的一种uart控制器配置方法、一种uart控制器配置系统、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1