本公开涉及芯片,尤其涉及一种时钟的设置方法及装置、电子设备和存储介质。
背景技术:
1、片上系统(system on chip,soc)中的时钟设计十分复杂,一个时钟节点的输出有可能作为另一个或几个时钟节点的输入,从而形成一种类似树状结构的时钟树。soc上的某个硬件设备想要正常工作,通常必须先配置其工作时钟,例如以太网控制器的媒体独立接口(meida independent interface,mii)总线时钟、串口控制器的波特率时钟等等,通常硬件设备时钟配置的工作一般是由硬件设备的驱动程序来完成。
2、在微内核系统中对soc时钟树的管理主要采用以下方案:在板级支持包(boardsupport package,bsp)相关的启动代码中,根据系统中硬件设备的具体需求,预先将所有时钟一次性初始化完成,再将硬件设备的输入时钟频率保存起来以备硬件设备驱动程序使用,硬件设备驱动程序一般不再改变其输入时钟的频率,硬件设备驱动程序通常无法修改输入时钟频率。
技术实现思路
1、本公开提供了一种时钟的设置方法及装置、电子设备和存储介质。
2、根据本公开的第一方面,提供了一种时钟的设置方法,其中,包括:
3、响应于设备驱动进程发送的时钟设置请求,获取所述时钟设置请求中的目标时钟节点的时钟节点id及时钟控制参数;
4、根据所述时钟节点id从时钟库中查找对应的目标时钟节点id其中,所述时钟库中记录有所有时钟节点构建的时钟树,以及每个时钟节点对应的预设操作函数;
5、调用所述目标时钟节点id对应的预设操作函数,并基于所述预设操作函数及所述时钟控制参数进行所述目标时钟节点的设置。
6、可选的,所述时钟库的生成方法包括:
7、获取链表数据结构,所述链表数据结构用于描述各设备节点之间的传输关系,其中,一个设备节点对应一个时钟节点;
8、从所述链表数据结构中获取各设备节点之间的传输关系,并根据所述传输关系确定所述时钟节点之间的父子关系;
9、确定每个时钟节点所支持的预设操作函数,并建立所述预设操作函数与所述时钟节点之间的对应关系;
10、根据已建立的所述预设操作函数与所述时钟节点之间的对应关系生成时钟库。
11、可选的,在确定每个时钟节点所支持的预设操作函数之前,所述方法还包括:
12、在预设抽象数据结构中注册所述预设操作函数;其中,所述预设抽象数据结构为所述时钟库中维护的用于描述时钟节点的数据结构。
13、可选的,所述调用所述目标时钟节点id对应的预设操作函数包括:
14、调用时钟驱动,由所述时钟驱动根据所述时钟节点id,从所述时钟库中调用所述预设操作函数。
15、可选的,在根据已建立的所述预设操作函数与所述时钟节点之间的对应关系生成时钟库之后,所述方法还包括:
16、输出对所述时钟节点进行初始化设置的提示信息;
17、响应于所述提示信息的确认指令,对所述时钟节点进行初始化设置。
18、可选的,所述时钟控制参数包括打开时钟、关闭时钟、设置时钟频率、获取时钟频率、查询时钟是否已打开、获取可设置的与期望时钟频率最接近的频率中的至少一种。
19、根据本公开的第二方面,提供了一种时钟的设置装置,包括:
20、获取单元,用于响应于设备驱动进程发送的时钟设置请求,获取所述时钟设置请求中的目标时钟节点的时钟节点id及时钟控制参数;
21、查找单元,用于根据所述时钟节点id从时钟库中查找对应的目标时钟节点id其中,所述时钟库中记录有所有时钟节点构建的时钟树,以及每个时钟节点对应的预设操作函数;
22、调用单元,用于调用所述目标时钟节点id对应的预设操作函数;
23、设置单元,用于基于所述预设操作函数及所述时钟控制参数进行所述目标时钟节点的设置。
24、可选的,所述装置还包括生成单元,所述生成单元包括:
25、第一获取模块,用于在所述查找模块根据所述时钟id从时钟库中查找对应的目标时钟节点id之前,获取链表数据结构,所述链表数据结构用于描述各设备节点之间的传输关系,其中,一个设备节点对应一个时钟节点;
26、第二获取模块,用于从所述链表数据结构中获取各设备节点之间的传输关系,并根据所述传输关系确定所述时钟节点之间的父子关系;
27、确定模块,用于确定每个时钟节点所支持的预设操作函数,并建立所述预设操作函数与所述时钟节点之间的对应关系;
28、生成模块,用于根据已建立的所述预设操作函数与所述时钟节点之间的对应关系生成时钟库。
29、可选的,所述装置还包括:
30、注册单元,在确定每个时钟节点所支持的预设操作函数之前,在预设抽象数据结构中注册所述预设操作函数;其中,所述预设抽象数据结构为所述时钟库中维护的用于描述时钟节点的数据结构。
31、可选的,所述调用单元,还用于调用时钟驱动,由所述时钟驱动根据所述时钟节点id,从所述时钟库中调用所述预设操作函数。
32、可选的,所述装置还包括:
33、输出单元,用于在所述生成单元根据已建立的所述预设操作函数与所述时钟节点之间的对应关系生成时钟库之后,输出对所述时钟节点进行初始化设置的提示信息;
34、初始化单元,用于响应于所述提示信息的确认指令,对所述时钟节点进行初始化设置。
35、可选的,所述时钟控制参数包括打开时钟、关闭时钟、设置时钟频率、获取时钟频率、查询时钟是否已打开、获取可设置的与期望时钟频率最接近的频率中的至少一种。
36、根据本公开的第三方面,提供了一种电子设备,包括:
37、至少一个处理器;以及
38、与所述至少一个处理器通信连接的存储器;其中,
39、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的方法。
40、根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述第一方面所述的方法。
41、根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前述第一方面所述的方法。
42、本公开提供一种时钟的设置方法及装置、电子设备和存储介质,响应于设备驱动进程发送的时钟设置请求,获取所述时钟设置请求中的目标时钟节点的时钟节点id及时钟控制参数;根据所述时钟节点id从时钟库中查找对应的目标时钟节点id,并调用所述目标时钟节点id关联的预设操作函数,其中,所述时钟库中记录有所有时钟节点构建的时钟树,以及每个时钟节点关联的预设操作函数;基于所述预设操作函数及所述时钟控制参数完成时钟设置。与相关技术相比,本公开实施例在获取到时钟控制的参数后,通过预设操作函数完成对应的时钟节点的时钟设置;可以实现对时钟树的管理,同时实现硬件驱动进程对时钟控制参数的自定义设置及修改。
43、应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。
1.一种时钟的设置方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述时钟库的生成方法包括:
3.根据权利要求2所述的方法,其特征在于,在确定每个时钟节点所支持的预设操作函数之前,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述调用所述目标时钟节点id对应的预设操作函数包括:
5.根据权利要求2所述的方法,其特征在于,在根据已建立的所述预设操作函数与所述时钟节点之间的对应关系生成时钟库之后,所述方法还包括:
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述时钟控制参数包括打开时钟、关闭时钟、设置时钟频率、获取时钟频率、查询时钟是否已打开、获取可设置的与期望时钟频率最接近的频率中的至少一种。
7.一种时钟的设置装置,其特征在于,包括:
8.一种电子设备,其特征在于,包括:
9.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-6中任一项所述的方法。