CN102566996B - 一种实现多任务管理输入输出资源的方法及系统 - Google Patents

一种实现多任务管理输入输出资源的方法及系统 Download PDF

Info

Publication number
CN102566996B
CN102566996B CN201010596407.7A CN201010596407A CN102566996B CN 102566996 B CN102566996 B CN 102566996B CN 201010596407 A CN201010596407 A CN 201010596407A CN 102566996 B CN102566996 B CN 102566996B
Authority
CN
China
Prior art keywords
resource
input
output
node
library
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201010596407.7A
Other languages
English (en)
Other versions
CN102566996A (zh
Inventor
蔡宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201010596407.7A priority Critical patent/CN102566996B/zh
Priority to PCT/CN2011/074956 priority patent/WO2012083640A1/zh
Publication of CN102566996A publication Critical patent/CN102566996A/zh
Application granted granted Critical
Publication of CN102566996B publication Critical patent/CN102566996B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本发明披露了一种实现多任务管理输入输出资源的方法及系统,其中方法包括:隔离层在初始化时,初始化处理用于管理所述输入输出资源的资源池和资源配置库,根据资源驱动层的资源注册请求将要管理的资源注册到资源池中;应用层根据通过所述隔离层从资源池探测获取的输入输出资源向隔离层下发资源配置请求;隔离层根据所述资源配置请求将相应的输入输出资源配置到资源配置库中。通过本发明能够集中、统一地管理GPIO资源,避免因底层对GPIO资源的更改而使上层所有针对其应用也随之改动,从而极大程度地满足跨产品的快速移植和开发的发展需要。

Description

一种实现多任务管理输入输出资源的方法及系统
技术领域
本发明涉及电子产品的操作系统管理硬件资源的方法,尤其涉及实现多任务系统管理通用输入/输出(GPIO,General Purpose Input Output)接口资源的方法、系统及装置。
背景技术
目前基于多任务操作系统开发的电子产品中可开放使用的GPIO资源越来越多,且产品中可通过这些GPIO资源进行控制或检测的对象也越来越丰富。
以往的电子产品中采用传统的方式直接操作GPIO资源,会带来大量离散的代码,且其操作也是极受产品功能约束的;并且,不同程序员的编程习惯和技术水平也各有不同;诸如此类因素会带来一些问题,例如:一个底层对GPIO资源的更改,可能会导致上层所有针对它的应用也要随着改动;一个GPIO资源的删除可能会导致相应的非法地址操作;多个程序并发地操作同一个GPIO资源,可能会造成系统的I/O接口资源冲突等。
目前的产品,尤其是嵌入式的终端产品都极力倡导模块化地快速开发,显然那些需依赖具体产品功能的程序模块是无法满足跨产品的快速移植和开发的需要的。
结合以上情况,就极具产品特色的GPIO资源来说,非常有必要提出一种能够屏蔽具体的产品功能的统一而有效的管理方法,从而妥善地解决上述问题。
在电子产品技术的发展进程中,也能见到一些产品,会在具硬件资源的物理层和使用该硬件资源的应用层之间增加一个中间层(或称隔离层),通过该中间层实现应用层对物理层硬件资源的操作,也即避免应用层中各应用程序直接操作物理层硬件资源而导致硬件资源的冲突甚至系统的崩溃等。但是,这只是利用中间层来实现应用层与物理层硬件资源隔离的技术方案,目前尚无见有利用中间层来实现对物理层硬件资源统一管理的技术方案。
发明内容
本发明所要解决的技术问题是提供一种实现多任务管理输入输出资源的方法及系统,能够隔离具体的产品功能而统一有效地管理I/O接口资源。
为了解决上述技术问题,本发明提供了一种实现多任务管理输入输出资源的方法,除了涉及应用层和资源驱动层外,还涉及预先加载的隔离层,该方法包括:
隔离层在初始化时,初始化处理用于管理所述输入输出资源的资源池和资源配置库,根据资源驱动层的资源注册请求将要管理的资源注册到资源池中;
应用层根据通过所述隔离层从资源池探测获取的输入输出资源向隔离层下发资源配置请求;
隔离层根据所述资源配置请求将相应的输入输出资源配置到资源配置库中。
进一步地,隔离层在所述初始化时还包括:启动定期扫描配置在资源配置库中的输入输出资源。
进一步地,
资源池是一个能够动态更改的链表数据结构,该链表中的每一节点用于记录每一输入输出的资源属性信息和指向前后输入输出资源节点的指针,资源属性信息包括资源的名称、物理地址、输入输出方向以及有效电平中的一种或多种。
进一步地,资源属性信息还包括针对特定的资源指定需要执行的函数,包括指定以下函数中的一个或多个:
初始化函数,用于对特定的资源在初始化时执行操作;
写状态函数,用于对特定的资源在写状态时执行多个写动作序列;
读状态函数,用于对特定的资源在读状态时执行多个读动作序列。
进一步地,资源配置库包括输入资源配置库和输出资源配置库,输入资源配置库和输出资源配置库均是一个能够动态更改的二维链表数据结构,包括主节点和子节点,主节点包含一链表节点和一个子链表头;其中:
主节点,对于输出资源配置库是一个用来区分动作集的动作标识码;对于输入资源配置库是一个输入资源的物理地址;
链表节点,用来指向与本主节点相邻的前后主节点;
子链表头,作为输出资源配置库用于指向主节点下动作集子链表的起始子节点和结束子节点;作为输入资源配置库用于指向主节点下事件集子链表的起始子节点和结束子节点;
子节点包含子链表节点,用于指向与本子节点相邻的前后子节点。
进一步地,隔离层初始化处理用于管理输入输出资源的资源池和资源配置库,根据资源驱动层的资源注册请求将要管理的资源注册到资源池中,具体包括:
清空资源池及输入资源配置库、输出资源配置库,创建与应用层和资源驱动层的链接通道;
使能链接通道,通过资源注册接口将资源驱动层请求注册的资源及其属性注册到资源池。
进一步地,应用层根据从隔离层的资源池请求获取的接口资源向隔离层下发资源配置请求,具体包括:
应用层通过资源探索接口向隔离层发出资源探索请求,在资源探索接口中传递要探索的输入输出资源的名称信息;
隔离层依据所述名称信息从资源池查获到相应的输入输出资源的物理地址,通过资源探索接口返回给应用层;
应用层根据物理地址向隔离层请求一空闲的动作标识,用动作标识向隔离层请求配置输出资源配置库的主节点,并通过资源配置接口下发资源配置请求及其动作配置属性;或者,以物理地址为标识向隔离层请求配置输入资源配置库的主节点,并通过资源配置接口下发资源配置请求及其事件配置属性。
进一步地,
应用层下发的所述动作配置属性包括动作集动作数目和动作模式,动作模式包括“置有效”、“置无效”、“延时置有效”、“延时置无效”和“闪烁”中的一种或多种;
应用层下发的事件配置属性包括输入状态和事件上报方式,输入状态用于表示事件触发的逻辑状态,包括“持续无效”、“持续有效”、“变化”、“无效变有效”以及“有效变无效”中的一种或多种;事件上报方式用于指明事件触发时上报应用层的方式,包括主动上报和被动上报中的任意一种。
进一步地,
应用层下发的动作配置属性还包括扩展参数和动作集重复次数中的一种或多种,其中包括当动作模式为“延时置有效”或“延时置无效”时的延时时间扩展参数,当所述动作模式为所述“闪烁”时的周期、占空比和闪烁次数三个扩展参数;
应用层下发的所述事件配置属性还包括保持时间、主动上报方式、主动上报参数以及消息体中的一种或多种;其中,
保持时间表示逻辑状态为“持续无效”或“持续有效”时的持续时间;
主动上报方式表示事件触发后主动上报给应用层的方式,包括直接函数调用或链接通道方式;
主动上报参数指定主动上报方式下上报的参数;
消息体用于对主动上报方式下上报的事件进行分类,使应用层更详细地知悉上报的事件。
进一步地,隔离层根据资源配置请求将相应的输入输出资源配置到资源配置库中,具体包括:
隔离层检查资源配置接口传递的资源配置属性;
若判断配置的是输入输出资源的主节点,则在确认要配置的资源无冲突后,分配一主节点,将资源配置属性作为该主节点配置填充,初始化链表节点和子链表头;然后打开写保护锁,将配置的主节点加入输入资源配置库或输出资源配置库的链表尾端,释放写保护锁;
或者,若判断配置的不是主节点,则依据资源配置属性中的物理地址在输入资源配置库中或依据动作标识在输出资源配置库中查找相应的主节点,并在查获的主节点下检查配置的资源无冲突;分配子节点,将事件配置属性或动作配置属性作为子节点配置填充,初始化子链表节点;打开写保护锁,将配置的子节点加入主节点下相应的子链表尾端,释放写保护锁。
进一步地,隔离层启动的定期扫描,具体包括:
根据从输入资源配置库中获取的事件配置属性,定期扫描输入资源配置库中配置的每一主节点下的每一子节点,通过与资源驱动层之间的资源操作接口读取相应输入端口的输入状态,若根据事件配置属性确定输入状态为事件触发状态,则按事件配置属性规定的事件上报模式上报输入端口触发的事件;
或者,根据从输出资源配置库中获取的动作配置属性,定期扫描输出资源配置库中配置的每一主节点下的每一子节点,根据动作配置属性确定该子节点的动作可执行,则依据对应的输出资源当前应输出的逻辑状态并结合动作配置属性中定义的有效电平计算实际输出电平,然后通过与资源驱动层之间的资源操作接口来改变相应输出端口的输出状态。
为了解决上述技术问题,本发明提供了一种实现多任务管理输入输出资源的系统,除了包括应用层模块和资源驱动层模块外,还包括预先加载的隔离层模块;其中:
资源驱动层模块,用于记录物理层中输入输出资源及其属性,通过资源注册接口向隔离层发出资源注册请求;
隔离层模块,用于在初始化时根据资源注册请求将要管理的输入输出资源及其属性注册到一资源池中;根据应用层模块的请求从资源池查获输入输出资源,并返回给应用层模块;将应用层模块所需的输入输出资源配置到资源配置库中;
应用层模块,用于将通过隔离层模块从资源池探测获取的输入输出资源及其配置属性向隔离层模块下发资源配置请求。
进一步地,
隔离层模块在初始化时还启动定期扫描配置在资源配置库中的输入输出资源。
进一步地,
资源池是一个能够动态更改的链表数据结构,该链表中的每一节点用于记录每一输入输出的资源属性信息和指向相邻的前后输入输出资源节点的指针,资源属性信息包括资源的名称、物理地址、输入输出方向以及有效电平中的一种或多种。
进一步地,资源配置库包括输入资源配置库和输出资源配置库,输入资源配置库和输出资源配置库均是一个能够动态更改的二维链表数据结构,包括主节点和子节点,主节点包含一链表节点和一个子链表头;其中:
主节点,对于输出资源配置库是一个用来区分动作集的动作标识码;对于输入资源配置库是一个输入资源的物理地址;
链表节点,用来指向与本主节点相邻的前后主节点;
子链表头,作为输出资源配置库用于指向主节点下动作集子链表的起始子节点和结束子节点;作为输入资源配置库用于指向主节点下事件集子链表的起始子节点和结束子节点;
子节点包含子链表节点,用于指向与本子节点相邻的前后子节点。
进一步地,隔离层模块进一步包括依次相连的如下模块:
管理初始化模块,用于在初始化时清空资源池、输入资源配置库和输出资源配置库,根据资源注册请求将资源注册到所述资源池中;根据应用层模块的资源探测请求将查获的资源返回给应用层模块;
资源配置模块,用于根据资源配置请求,将应用层模块下发的输出资源及其动作配置属性配置到输出资源配置库中,或将应用层模块下发的输入资源及其事件配置属性配置到输入资源配置库中;
资源操作模块,用于根据从输入资源配置库中获取的事件配置属性,扫描输入资源配置库中配置的每一主节点下的子节点,通过与资源驱动层模块的资源操作接口读取输入端口的输入状态,将确定为事件触发状态上报给应用层模块;或者,根据从输出资源配置库中获取的动作配置属性,定期扫描输出资源配置库中配置的每一主节点下的子节点;依据输出资源当前应输出的逻辑状态并结合有效电平计算实际输出电平,通过资源操作接口来改变相应输出端口的输出状态。
本发明利用在与产品相关的GPIO资源驱动层和使用GPIO资源的应用层之间增加的一个隔离层,将应用层对GPIO资源的所有操作转化成抽象化的逻辑操作,并根据对GPIO资源池中的GPIO资源数据的操作结果将该逻辑操作转化为驱动层对物理层中GPIO资源具体的实际操作,能够集中、统一地管理GPIO资源,避免因底层对GPIO资源的更改而使上层所有针对其应用也随之改动;并且避免因删除GPIO资源导致的非法地址操作,同时还可避免多个应用程序并发地操作同一个GPIO资源造成的资源冲突等,从而极大程度地满足跨产品的快速移植和开发的发展需要。
附图说明
图1是本发明的实现多任务管理GPIO资源的系统实施例的结构示意示意图;
图2是本发明的GPIO资源池的双向链表结构示意图;
图3是本发明的GPIO资源配置的二维双向链表结构示意图;
图4是本发明的隔离层进行初始化流程图;
图5是本发明的隔离层与BSP层交互注册GPIO资源的流程图;
图6是本发明的隔离层进行GPIO资源配置的流程图;
图7是隔离层扫描输出资源的流程图;
图8是隔离层扫描输入资源的流程图;
图9是本发明的GPIO资源管理方法实施例对输出资源的应用实例;
图10本发明的GPIO资源管理方法实施例对键输入的应用实例。
具体实施方式
以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。以下例举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。
如图1所示,表示了本发明的实现多任务管理GPIO资源的系统实施例的结构,包括逻辑层中依次连接的应用层模块、隔离层模块及BSP层模块(即GPIO资源驱动层,Board Support Package板级支持包),其中:
BSP层模块,用于记录物理层中GPIO资源及其属性,通过资源注册接口向隔离层发出资源注册请求;
隔离层模块,用于根据BSP层模块的资源注册请求将GPIO资源及其属性注册到资源池中;根据应用层模块的请求将从资源池查询的GPIO资源返回给应用层模块,和/或将应用层模块所需的GPIO资源配置到资源配置库中;
应用层模块,用于与隔离层模块交互,将从资源池探测获取的GPIO资源及其配置属性向隔离层模块下发资源配置请求。
资源池和资源配置库之间是通过资源的物理地址联系的。隔离层模块根据应用层模块的资源配置请求,将GPIO资源的物理地址和资源的配置属性写入资源配置库。
隔离层模块根据资源属性和资源配置属性,请求BSP层模块扫描GPIO资源,更新相应的输出资源的动作状态,或向应用层上报相应的输入资源触发的事件;
BSP层模块根据隔离层模块的请求,对物理层相应的输出或输入端口进行操作。
隔离层模块通过扫描资源配置库中的主节点找到相应资源的物理地址,根据该物理地址从资源池中查获相应的GPIO资源属性,并根据资源配置库中记录的资源配置属性,通过BSP层模块提供的资源操作接口请求BSP层模块扫描GPIO资源。
上述隔离层模块的存在,使得与产品密切相关的BSP层模块和使用GPIO资源的应用层模块中的软件二者之间形成了一个隔离层,故二者不再被捆绑在一起,甚至BSP层模块可注册一些虚拟的GPIO资源来实现产品开发程序的仿真。
本发明为隔离层提供了一个与应用层交互的统一接口,用该接口解析入参中的命令类型,然后根据命令类型来解析对应的下行数据;根据命令类型和下行数据执行应用层请求的操作,最后将操作的结果和需要反馈的数据封装成统一的结构反馈到应用层。
本发明利用在逻辑层中与具体产品相关的BSP层模块与使用GPIO资源的应用层模块(包括用户态应用程序和内核态程序)之间建立的隔离层模块,屏蔽应用层模块使用GPIO资源的产品特殊性,将应用层模块对GPIO资源的所有操作都转化成抽象化的逻辑操作,根据对资源池中资源数据的操作对GPIO资源进行管理,并获取对GPIO资源统一的实际操作,通过BSP层模块提供的资源操作接口实现对物理层GPIO端口的硬件操作。
图1所示的隔离层模块包括依次连接管理初始化模块、资源配置模块以及资源操作模块,其中:
管理初始化模块,用于初始化处理管理GPIO资源的资源池和资源配置库,根据BSP层模块的资源注册请求将需要管理的GPIO资源注册到该资源池中;根据应用层模块的资源探测请求将查获的GPIO资源返回给应用层模块;
资源配置模块,用于根据应用层模块的配置请求,将应用层模块下发的GPIO资源配置属性配置到资源配置库中;
资源操作模块,用于根据从资源配置库中获取的资源配置属性,通过与BSP层模块的资源操作接口定期扫描资源配置库中GPIO资源配置属性,更新输出资源的动作状态,或上报输入资源触发的事件。
管理初始化模块构建的资源池是一个可动态更改的链表数据结构,如图2所示,其中每一节点记录每一GPIO资源的名称、物理地址和其它属性信息以及指向与本节点相邻的前后GPIO资源节点的指针(指向前一资源节点的指针为“Prev”,指向后一资源节点的指针为“Next”)。
当然,本发明对资源池除了上述链表数据结构外,也可以采用树状数据结构或其它图示数据结构的形式构成。只是前者对于本发明来说结构更简洁且足以实现对GPIO资源的记载功能,因而它是优选的数据结构。
BSP层在GPIO资源属性描述表中表述和记录了GPIO资源;通过执行一资源注册请求接口函数请求注册GPIO资源,该接口函数传递了GPIO资源属性信息,如表1中所示。
表1
管理初始化模块构建的资源配置库是一个可动态更改的二维链表数据结构,如图3所示。资源配置模块通过这样两个相同的数据结构分别用于输入资源配置和输出资源配置。
图3所示的链表结构包括主节点和子节点,主节点对于输出资源配置库是一个用来区分动作集的标识码(即动作ID),对于输入资源配置库则是一个GPIO资源的物理地址;每一主节点还包含一个链表节点和一个子链表头,其中链表节点用来指向与本主节点相邻的前后主节点,子链表头作为输出型主节点下的动作集或输入型主节点下的事件集的起始子节点和结束子节点的指针,引出动作集或事件集;子节点包含子链表节点,该子链表节点用来指向与本子节点相邻的前后子节点。
对于输出资源配置库其主节点的形成,是先由隔离层模块根据应用层模块的请求分配给应用层模块一空闲的动作ID,再由应用层模块将分配的该动作ID作为主节点配置到上述输出资源配置库中。由于每一主节点是可以释放的,所以相应的标识码(动作ID)是可以被回收再利用的。
对于输出型主节点,动作集由一个或多个动作构成,且多个动作之间有严格的顺序约束关系,只有在前一个动作全部完成之后下一个动作才具备执行的条件。当所有的动作全部执行完成之后,主节点的动作集才算完成。为了实现一些复杂动作(例如跑马灯),可给一个主节点的动作集定义可重复属性,当动作集全部完成后会根据配置的动作集重复次数来重载动作集配置到该主节点中。
当然,本发明对资源配置库除了上述二维链表数据结构外,也可以采用树状数据结构或其它图示数据结构的形式构成。只是前者对于本发明来说结构更简洁且足以实现对GPIO资源配置的记载功能,因而它是优选的数据结构。
“动作”是指对输出资源的驱动,它需要配置的内容如表2所示。
表2
以上5种动作模式及其组合并结合动作集,可以涵盖所有输出型的动作。
对于输入资源配置库其主节点的形成,是由应用层模块通过GPIO资源的名称向隔离层模块探测获取到物理地址,然后请求隔离层模块将此物理地址作为主节点配置到输入资源配置库中。
对于输入型主节点,事件集由一个或多个事件构成,且多个事件之间没有依赖关系,每次扫描时都会根据由相应的物理地址表示的输入端口当前的输入状态和记录的前一状态等数据来判断一事件是否被触发。
“事件”是指符合约定条件的输入状态,它需要配置的内容如表3所示。
表3
本发明针对上述系统实施例,相应地还提供了实现多任务管理GPIO资源的方法实施例,包括:
在产品系统中预先加载一隔离层,由该隔离层初始化处理用于管理资源的资源池和资源配置库,根据BSP层的资源注册请求将需要管理的GPIO资源注册到资源池中;
应用层从隔离层的资源池探索获取到需要的GPIO资源,根据获取的GPIO资源向隔离层下发资源配置请求;
隔离层根据应用层下发的资源配置请求将应用层所需的GPIO资源配置到资源配置库中。
上述方法还包括:
隔离层在初始化时还启动对GPIO资源的定期扫描;在定期扫描时根据从资源池获取的资源属性,通过与BSP层的资源操作接口定期扫描资源配置库中GPIO资源配置属性,更新输出资源的动作状态,或上报输入资源触发的事件。
图4具体表示出隔离层初始化处理资源池和资源配置库以及注册GPIO资源的流程,包括如下步骤:
210:清空资源池及资源配置库,创建与BSP层、应用层的链接通道;
220:使能创建的链接通道,通过资源注册接口将BSP层请求注册的GPIO资源及其属性注册到资源池;
230:启动对GPIO资源的定期扫描操作。
图5具体表示了隔离层与BSP层进行交互注册GPIO资源的流程,包括如下步骤:
310:BSP层通过资源注册接口请求隔离层注册记录的GPIO资源及其属性;
在此,资源注册接口是BSP层提供的一个函数,在该函数中传递的GPIO资源及其属性的参数如表1所示,譬如包括:GPIO资源的标准名称“io_name”、物理地址“io_addr”、I/O方向“io_dir、有效电平“valid_level”;此外,还可以针对要注册的GPIO资源指定一些需要特别执行的函数的指针,譬如指定表1中三个函数中的一个或多个函数的指针。
320:隔离层检查并确认BSP层请求注册的GPIO资源无资源冲突;
隔离层要在资源池中检查并确认BSP层请求注册的GPIO资源没有资源名称冲突和资源物理地址的冲突。以保证在资源池中作为标识注册的资源名称和资源物理地址都是唯一的,不可重复的。
330:创建GPIO资源节点,填充节点内容,初始化设置资源池写保护锁;
将BSP层请求注册的GPIO资源作为节点内容填充。
隔离层要创建图2中所示的资源池的GPIO资源节点,将GPIO资源属性作为节点内容填充,并为向资源池写入数据初始化设置一个写保护锁;每当要进行数据注册或更改时打开该写保护锁,以防有其它写入操作而造成资源冲突,在数据注册或更改完毕时释放该写保护锁。
340:打开资源池写保护锁,将填充的资源节点添加到资源池链表的尾端,然后释放资源池写保护锁;
350:隔离层通过GPIO资源注册接口应答BSP模块GPIO资源注册成功。
隔离层可通过前述的函数返回一个注册成功标志给BSP层。
当隔离层根据应用层的资源探索请求在资源库中查询并返回相应的GPIO资源后,应用层会根据获取到的GPIO资源及其属性向隔离层提出资源配置请求。
图6具体表示出隔离层根据应用层的资源配置请求进行GPIO资源配置的流程,包括如下步骤:
401:收到来自I/O控制通道的用户态的资源配置请求,或收到来自来自函数接口调用的内核态的资源配置请求;
用户态的配置请求和内核态的配置请求均可通过相应的资源配置函数提供,在该函数中会传递的配置属性参数,对于输出动作配置譬如包括如下参数的一种或多种:资源物理地址“io_addr”、动作ID、闪烁输出方式“blink”、闪烁周期“blink.cycle”、闪烁占空比“blink.duty_cycle”、闪烁次数“blink.times”;对于输入事件配置譬如包括如下参数的一种或多种:资源物理地址“io_addr”、事件对应的输入状态“io_state”、保持状态“keep_valid”、保持需要持续的时间“keep_time”、事件上报方式“report_mode”、事件主动上报的方式“call_back/netlink”,采用事件主动上报方式时上报的参数及事件消息体“message”及其传递的信息。
402:检查资源配置请求中传递的GPIO资源配置属性;
403:判断配置的是否为资源主节点,是则执行步骤404,否则执行步骤407;
依据配置请求中传递的资源的物理地址或动作ID判断配置的是资源主节点。
404:检查配置的资源无冲突,分配资源主节点;
依据资源的物理地址或动作ID查询资源配置库是否已有相应的资源主节点存在,若有则判断配置的资源有冲突。
405:填充主节点配置,初始化链表节点和子链表头;
将配置请求中传递的资源配置属性作为主节点配置填充。对于输出资源配置则填充动作ID及资源属性,对于输入资源配置则填充物理地址及资源属性。
406:打开写保护锁,将配置的主节点加入资源配置链表尾端,释放写保护锁;结束资源配置;
407:查找资源主节点,检查配置的资源无冲突,分配子节点;
依据配置请求中传递的资源的物理地址或动作ID在资源配置库中查找相应的资源主节点,并在该主节点下检查配置的资源是否有冲突。
408:填充子节点配置,初始化子链表节点;
将配置请求中传递的资源配置属性参数作为子节点配置填充。对于输出资源配置动作集子节点,对于输入资源配置事件集子节点。
409:打开写保护锁,将配置的子节点加入主节点下的子节点链表尾端,释放写保护锁;结束资源配置。
加入的子节点可能会是多个,对于输出资源配置,需严格按照顺序将多个动作的子节点一一加入资源配置链表。
图7表示了隔离层定期扫描输出资源配置库中配置的输出资源的流程,包括如下步骤:
5101:取输出资源配置库中下一主节点;
5102:判断是否存在该主节点,是则执行步骤5103,否则结束扫描流程;
在隔离层初始化时启动对输出资源配置库中的输出资源扫描,由于此时该库中尚未配置主节点进来,故在此情况下可及时结束扫描流程。
5103:判断该主节点是否激活(使能),是则执行下一步骤,否则返回步骤5101执行;
5104:取该主节点下一个子节点;
5105:判断是否存在该子节点,是则执行下一步骤,否则执行步骤5111;
5106:判断该子节点动作是否可执行,是则执行下一步骤,否则返回步骤5101执行;
动作集中的每一个动作都是有严格的先后顺序的,如果前一个动作还没有执行完,则后面所有动作只能等待。
5107:根据该子节点的动作属性执行该子节点的原子操作;
“原子操作”是指一个互斥的动作,它通常由“获取互斥锁”、“执行动作”和“释放互斥锁”三个动作组成。因此,这里的原子操作是指:打开读写锁,根据动作属性更新输出资源的输出状态,然后关闭读写锁。
根据动作属性更新输出资源的输出状态是指:根据该输出资源当前应输出的逻辑状态,结合其动作属性中定义的有效电平计算实际输出电平,然后调用资源操作接口来改变相应输出端口的输出状态。
5108:判断该子节点操作是否全部完成,是则执行下一步骤,否则执行步骤5110;
由于每一子节点的操作可能不止一个,根据子节点动作配置属性判断该子节点操作是否全部完成。
5109:置子节点动作完成标志,返回步骤5104执行;
5110:更新该子节点状态,返回步骤5101执行;
子节点状态包括记录剩余的原子操作次数以及最新的输出状态等。
通常,一个子节点下可以有一个或多个子动作,譬如一个指示灯的“点亮”、“熄灭”及“闪烁”就可以用三个子节点来表示相应的动作。其中,两个子节点各表示“点亮”和“熄灭”的一个动作,而第三个子节点则表示“闪烁”中符合闪烁周期及其占空比时间的“点亮”、“熄灭”两个子动作。
子节点状态所包括的原子操作次数即表示子动作数目。
5111:判断主节点动作是否需重复,是则执行下一步骤,否则执行步骤5113;
如果子节点不存在,说明到了主节点动作队列的尾端,即该主节点的动作集中的所有动作已全部执行了一遍,因此需要检查是否需要重复此动作集。
5112:主节点配置重载,返回步骤5101执行;
5113:将该主节点冻结(禁能),返回步骤5101执行。
该主节点的动作集中的所有动作已全部完成,下一次扫描时不必再检测它,所以将它冻结,即置为无效状态。
图8表示了隔离层定期扫描输入资源配置库中配置的输出资源的流程,包括如下步骤:
5201:取输入资源配置库中下一主节点;
5202:判断是否存在该主节点,是则执行下一步骤,否则结束流程;
在隔离层初始化时启动对输入资源配置库中的输入资源扫描,由于此时该库中尚未配置主节点进来,故在此情况下可及时结束流程。
5203:判断该主节点是否激活,是则执行下一步骤,否则返回步骤5201执行;
5204:读取该主节点下相应输入资源的输入状态;
通过调用资源操作接口来读取相应输入端口的输入状态。
5205:判断该输入状态是否改变,是则执行下一步骤,否则执行步骤5207;
5206:激活该主节点下所有子节点;
5207:取该主节点下一个子节点;
5208:判断是否存在该子节点,是则执行下一步骤,否则返回步骤5201执行;
5209:判断是否满足事件触发条件,是则执行下一步骤,否则返回步骤5207执行;
根据当前读取的输入资源的输入状态,结合记录的其前一输入状态及其它事件属性,判断是否满足事件触发条件。
5210:冻结该子节点;
读取的输入资源的输入状态符合事件触发条件,需上报给应用层;然后禁能该子节点。冻结子节点主要是为了避免同一个事件被重复上报,例如同一个按键可能会配置两个事件,即事件1“按下并保持n秒”、事件2“按下并保持n+1秒”;当事件1满足触发条件时,事件2并不满足触发条件,因此需要等到下一个扫描流程来检测该事件2。而在下一个扫描流程到来时,假设此时的按键输入状态没有变化,说明前一个“按下”事件操作在继续保持过程中,如果该事件1没有被冻结,那么在此扫描流程中将会被再报告一次,而它实际上是属于事件2“按下”操作的。事件1只有在该按键下一个不同的“按下”操作中才能被重新激活,即图8的步骤5205和5206所表示的:在检测到输入状态发生变化时需要重新激活改主节点下的所有子节点。
5211:判断是否需要主动上报子事件,是则执行下一步骤,否则返回步骤5207执行;
根据输入事件配置属性可判断是采用主动上报还是被动根据应用层上报命令上报,若为后者,则可暂不上报,听从到应用层发出上报指令后再上报。
5212:通过输入配置属性指定的通道主动上报该事件,返回步骤5207执行。
输入配置属性中指定的通道包括用户态的I/O控制链接通道和核心态的回调函数。
上述流程与输出配置扫描流程不同的是,由于输入资源的事件之间是没有依赖关系的,所以每次扫描只需遍历主节点的所有子节点即可。
本发明通过提供上述方法实施例及其具体操作的流程便可实现对GPIO资源的统一管理及操作。以下通过两个具体应用实例来说明和解释上述各流程是如何应用的。
图9表示了采用本发明的GPIO资源管理方法实施例对输出资源(一个指示灯)的应用实例的流程,包括如下步骤:
610:应用层通过资源探测接口向隔离层查询输出资源名称;
隔离层譬如从资源池中查询名称为“system run”的指示灯的输出资源。
620:隔离层根据从资源池中查获的该输出资源名称返回该输出资源的物理地址;
隔离层譬如将该输出资源的物理地址“io_addr”向应用层返回。
630:应用层针对该输出资源向隔离层申请一个空闲的动作ID,并向隔离层下发资源配置请求请求及动作配置属性;
应用层譬如针对隔离层返回的物理地址“io_addr”向隔离层申请到一动作ID后,向隔离层下发资源配置请求及动作配置属性,包括:物理地址“io_addr”、动作ID、闪烁输出方式“mode_blink”、闪烁周期“blink.cycle=1000ms”、闪烁占空比“blink.duty_cycle=50%”以及闪烁次数“blink.times=-1(闪烁次数为负,表示不停地闪烁)。
640:隔离层根据该动作ID在输出资源配置库中找到相应的输出资源主节点,根据主节点上记录的物理地址从资源池中找到相应的输出资源;将根据动作配置属性创建的子节点挂到主节点下子节点链表的尾端;
650:隔离层使能该动作ID,接受I/O扫描;
隔离层使能该动作ID即前述过的激活输出资源配置库中输出主节点。
660:在I/O扫描中根据该输出资源当前应该输出的逻辑状态,结合资源属性中定义的有效电平计算实际输出电平,然后调用写操作接口来改变相应输出端口的输出状态。
执行了上述流程后,应用层配置的名为“system run”的指示灯便以周期为1s而不停地闪烁。
图10表示了采用本发明的GPIO资源管理方法实施例对输入资源(一个键)的应用实例的流程,包括如下步骤:
701:应用层通过资源探测接口向隔离层查询输入资源名称;
应用层譬如查询隔离层是否有名为“load”的键资源。
702:隔离层根据从资源池中查获的该输入资源名称返回其物理地址;
隔离层譬如返回该键资源的物理地址“io_addr”。
703:应用层向隔离层请求配置以该物理地址为标识的输入主节点;
704:隔离层若查询输入资源配置库不含该输入主节点,则将该物理地址配置为输入资源配置库中输入主节点,并返回配置成功标志;否则返回该主节点已存在标志;
705:应用层下发事件配置属性;
应用层下发的事件配置属性譬如包括:键触发事件对应的输入状态“io_state”、键保持事件“keep_valid”、键保持事件需要持续的时间“keep_time=5s”、主动上报方式“report_mode=active”上报方式、主动上报方式的通道“call_back/netlink”及其需要的参数(monitor和netlink结构)以及事件消息体“message=‘restore’”。
706:隔离层根据物理地址在输入资源配置库中找到输入主节点,并根据该物理地址从资源池找到相应的输入资源,将根据事件配置属性创建的事件子节点挂到该主节点下的子节点链表尾端;
707:隔离层使能(激活)该主节点,接受I/O扫描;
708:在I/O扫描中根据当前输入资源的输入状态并结合前一输入状态,判断处于事件触发状态且事件保持达到输入属性规定的事件持续时间
709:根据输入配置属性规定的主动上报方式反馈反映事件保持的消息体信息;
隔离层譬如通过回调函数call_back向核心态应用层返回事件消息体message=‘restore’字符串。
710:冻结保持事件,直至出现事件释放后将其重新激活。
执行了上述流程后,应用层配置的名为“load”的键便可被隔离层扫描到键触发、键保持及键释放等状态,应用层得到事件上报后便可做出处理相应的键处理。
显然,如果有多个键,则工作方式是类似的,隔离层可以通过一个键扫描线程来实现对多个键的事件扫描及上报。

Claims (12)

1.一种实现多任务管理输入输出资源的方法,涉及应用层和资源驱动层,其特征在于,还涉及预先加载的隔离层,该方法包括:
所述隔离层在初始化时,初始化处理用于管理所述输入输出资源的资源池和资源配置库,根据所述资源驱动层的资源注册请求将要管理的所述资源注册到所述资源池中;
所述应用层根据通过所述隔离层从所述资源池探测获取的输入输出资源向所述隔离层下发资源配置请求;
所述隔离层根据所述资源配置请求将相应的输入输出资源配置到所述资源配置库中;
所述资源池是一个能够动态更改的链表数据结构,该链表中的每一节点用于记录每一输入输出的资源属性信息和指向相邻的前后输入输出资源节点的指针,所述资源属性信息包括资源的名称、物理地址、输入输出方向以及有效电平中的一种或多种;
所述资源配置库包括输入资源配置库和输出资源配置库,所述输入资源配置库和输出资源配置库均是一个能够动态更改的二维链表数据结构,包括主节点和子节点,所述主节点包含一链表节点和一个子链表头;其中:
所述主节点,对于输出资源配置库是一个用来区分动作集的动作标识码;对于输入资源配置库是一个输入资源的物理地址;
所述链表节点,用来指向与本主节点相邻的前后主节点;
所述子链表头,作为输出资源配置库用于指向主节点下动作集子链表的起始子节点和结束子节点;作为输入资源配置库用于指向主节点下事件集子链表的起始子节点和结束子节点;
所述子节点包含子链表节点,用于指向与本子节点相邻的前后子节点。
2.按照权利要求1所述的方法,其特征在于,所述隔离层在所述初始化时还包括:启动定期扫描配置在所述资源配置库中的所述输入输出资源。
3.按照权利要求1所述的方法,其特征在于,所述资源属性信息还包括针对特定的资源指定需要执行的函数,包括指定以下函数中的一个或多个:
初始化函数,用于对所述特定的资源在所述初始化时执行操作;
写状态函数,用于对所述特定的资源在写状态时执行多个写动作序列;
读状态函数,用于对所述特定的资源在读状态时执行多个读动作序列。
4.按照权利要求1所述的方法,其特征在于,所述隔离层初始化处理用于管理所述输入输出资源的资源池和资源配置库,根据所述资源驱动层的资源注册请求将要管理的所述资源注册到资源池中,具体包括:
清空所述资源池及所述输入资源配置库、所述输出资源配置库,创建与所述应用层和资源驱动层的链接通道;
使能所述链接通道,通过资源注册接口将所述资源驱动层请求注册的所述资源及其属性注册到所述资源池。
5.按照权利要求1所述的方法,其特征在于,所述应用层根据通过所述隔离层从所述资源池探测获取的输入输出资源向所述隔离层下发资源配置请求,具体包括:
所述应用层通过资源探索接口向所述隔离层发出资源探索请求,在所述资源探索接口中传递要探索的输入输出资源的名称信息;
所述隔离层依据所述名称信息从所述资源池查获到相应的输入输出资源的物理地址,通过资源探索接口返回给所述应用层;
所述应用层根据所述物理地址向所述隔离层请求一空闲的动作标识,用所述动作标识向所述隔离层请求配置输出资源配置库的主节点,并通过资源配置接口下发所述资源配置请求及其动作配置属性;或者,以所述物理地址为标识向所述隔离层请求配置输入资源配置库的主节点,并通过资源配置接口下发所述资源配置请求及其事件配置属性。
6.按照权利要求5所述的方法,其特征在于,
所述应用层下发的所述动作配置属性包括动作集动作数目和动作模式,所述动作模式包括“置有效”、“置无效”、“延时置有效”、“延时置无效”和“闪烁”中的一种或多种;
应用层下发的所述事件配置属性包括输入状态和事件上报方式,输入状态用于表示事件触发的逻辑状态,包括“持续无效”、“持续有效”、“变化”、“无效变有效”以及“有效变无效”中的一种或多种;事件上报方式用于指明事件触发时上报应用层的方式,包括主动上报和被动上报中的任意一种。
7.按照权利要求6所述的方法,其特征在于,
应用层下发的所述动作配置属性还包括扩展参数和动作集重复次数中的一种或多种,其中包括当所述动作模式为“延时置有效”或“延时置无效”时的延时时间扩展参数,当动作模式为“闪烁”时的周期、占空比和闪烁次数三个扩展参数;
应用层下发的所述事件配置属性还包括保持时间、主动上报参数以及消息体中的一种或多种;其中,
所述保持时间表示所述逻辑状态为所述“持续无效”或“持续有效”时的持续时间;
所述主动上报方式表示事件触发后主动上报给所述应用层的方式,包括直接函数调用或链接通道方式;
所述主动上报参数指定主动上报方式下上报的参数;
所述消息体用于对主动上报方式下上报的事件进行分类,使所述应用层更详细地知悉所述上报的事件。
8.按照权利要求6或7所述的方法,其特征在于,所述隔离层根据所述资源配置请求将相应的输入输出资源配置到资源配置库中,具体包括:
所述隔离层检查资源配置接口传递的资源配置属性;
若判断配置的是所述输入、输出资源配置库的主节点,则在确认要配置的资源无冲突后,分配一主节点,将所述资源配置属性作为该主节点配置填充,初始化所述链表节点和所述子链表头;然后打开写保护锁,将配置的主节点加入输入资源配置库或输出资源配置库的链表尾端,释放所述写保护锁;
或者,若判断配置的不是所述主节点,则依据所述资源配置属性中的所述物理地址在所述输入资源配置库中或依据所述动作标识在所述输出资源配置库中查找相应的主节点,并在查获的主节点下检查配置的资源无冲突;分配子节点,将所述事件配置属性或所述动作配置属性作为子节点配置填充,初始化所述子链表节点;打开写保护锁,将配置的子节点加入所述主节点下相应的子链表尾端,释放所述写保护锁。
9.按照权利要求8所述的方法,其特征在于,所述隔离层启动的所述定期扫描,具体包括:
根据从所述输入资源配置库中获取的所述事件配置属性,定期扫描输入资源配置库中配置的每一主节点下的每一子节点,通过与所述资源驱动层之间的资源操作接口读取相应输入端口的输入状态,若根据所述事件配置属性确定所述输入状态为事件触发状态,则按所述事件配置属性规定的事件上报方式上报所述输入端口触发的事件;
或者,根据从所述输出资源配置库中获取的所述动作配置属性,定期扫描输出资源配置库中配置的每一主节点下的每一子节点,根据所述动作配置属性确定该子节点的动作可执行,则依据对应的输出资源当前应输出的逻辑状态并结合所述动作配置属性中定义的有效电平计算实际输出电平,然后通过与所述资源驱动层之间的资源操作接口来改变相应输出端口的输出状态。
10.一种实现多任务管理输入输出资源的系统,包括应用层模块和资源驱动层模块,其特征在于,还包括预先加载的隔离层模块;其中:
资源驱动层模块,用于记录物理层中输入输出资源及其属性,通过资源注册接口向隔离层发出资源注册请求;
隔离层模块,用于在初始化时根据所述资源注册请求将要管理的输入输出资源及其属性注册到一资源池中;根据应用层模块的请求从所述资源池查获输入输出资源,并返回给应用层模块;将应用层模块所需的输入输出资源配置到资源配置库中;
应用层模块,用于将通过所述隔离层模块从所述资源池探测获取的输入输出资源及其配置属性向所述隔离层模块下发资源配置请求;
所述资源池是一个能够动态更改的链表数据结构,该链表中的每一节点用于记录每一输入输出的资源属性信息和指向相邻的前后输入输出资源节点的指针,所述资源属性信息包括资源的名称、物理地址、输入输出方向以及有效电平中的一种或多种;
所述资源配置库包括输入资源配置库和输出资源配置库,所述输入资源配置库和输出资源配置库均是一个能够动态更改的二维链表数据结构,包括主节点和子节点,所述主节点包含一链表节点和一个子链表头;其中:
所述主节点,对于输出资源配置库是一个用来区分动作集的动作标识码;对于输入资源配置库是一个输入资源的物理地址;
所述链表节点,用来指向与本主节点相邻的前后主节点;
所述子链表头,作为输出资源配置库用于指向主节点下动作集子链表的起始子节点和结束子节点;作为输入资源配置库用于指向主节点下事件集子链表的起始子节点和结束子节点;
所述子节点包含子链表节点,用于指向与本子节点相邻的前后子节点。
11.按照权利要求10所述的系统,其特征在于,
所述隔离层模块在所述初始化时还启动定期扫描配置在所述资源配置库中的所述输入输出资源。
12.按照权利要求10或11所述的系统,其特征在于,所述隔离层模块进一步包括依次相连的如下模块:
管理初始化模块,用于在初始化时清空所述资源池、所述输入资源配置库和所述输出资源配置库,根据所述资源注册请求将所述资源注册到所述资源池中;根据所述应用层模块的资源探测请求将查获的所述资源返回给所述应用层模块;
资源配置模块,用于根据所述资源配置请求,将所述应用层模块下发的输出资源及其动作配置属性配置到所述输出资源配置库中,或将所述应用层模块下发的输入资源及其事件配置属性配置到所述输入资源配置库中;
资源操作模块,用于根据从所述输入资源配置库中获取的所述事件配置属性,扫描输入资源配置库中配置的每一主节点下的子节点,通过与所述资源驱动层模块的资源操作接口读取输入端口的输入状态,将确定为事件触发状态上报给所述应用层模块;或者,根据从所述输出资源配置库中获取的所述动作配置属性,定期扫描输出资源配置库中配置的每一主节点下的子节点;依据输出资源当前应输出的逻辑状态并结合有效电平计算实际输出电平,通过所述资源操作接口来改变相应输出端口的输出状态。
CN201010596407.7A 2010-12-20 2010-12-20 一种实现多任务管理输入输出资源的方法及系统 Active CN102566996B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010596407.7A CN102566996B (zh) 2010-12-20 2010-12-20 一种实现多任务管理输入输出资源的方法及系统
PCT/CN2011/074956 WO2012083640A1 (zh) 2010-12-20 2011-05-31 一种实现多任务管理输入输出资源的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010596407.7A CN102566996B (zh) 2010-12-20 2010-12-20 一种实现多任务管理输入输出资源的方法及系统

Publications (2)

Publication Number Publication Date
CN102566996A CN102566996A (zh) 2012-07-11
CN102566996B true CN102566996B (zh) 2015-04-01

Family

ID=46313091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010596407.7A Active CN102566996B (zh) 2010-12-20 2010-12-20 一种实现多任务管理输入输出资源的方法及系统

Country Status (2)

Country Link
CN (1) CN102566996B (zh)
WO (1) WO2012083640A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111968252A (zh) * 2020-09-15 2020-11-20 广东农工商职业技术学院(农业部华南农垦干部培训中心) 一种ar课程教学资源管理方法及系统
CN114924806B (zh) * 2022-04-07 2024-03-26 南京慧尔视软件科技有限公司 一种配置信息的动态同步方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1858699A (zh) * 2005-10-10 2006-11-08 华为技术有限公司 电子信息系统的软件子系统
CN1984007A (zh) * 2006-05-30 2007-06-20 北京邮电大学 基于光网络资源按需分配的光子网格中间件及其控制方法
CN101639814A (zh) * 2009-08-31 2010-02-03 中国科学院计算技术研究所 面向多核平台和网络化操作系统的输入输出系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128372A1 (en) * 2002-12-16 2004-07-01 Amit Mukherjee Architecture for managing computer resources
CN1282921C (zh) * 2004-11-24 2006-11-01 华南理工大学 一种嵌入式操作系统的驱动程序加固方法
CN101488093A (zh) * 2009-03-11 2009-07-22 华为技术有限公司 一种嵌入式计算机系统及其硬件配置方法
CN101819526B (zh) * 2009-09-18 2013-08-28 华为技术有限公司 调用底层软件的方法、装置和嵌入式系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1858699A (zh) * 2005-10-10 2006-11-08 华为技术有限公司 电子信息系统的软件子系统
CN1984007A (zh) * 2006-05-30 2007-06-20 北京邮电大学 基于光网络资源按需分配的光子网格中间件及其控制方法
CN101639814A (zh) * 2009-08-31 2010-02-03 中国科学院计算技术研究所 面向多核平台和网络化操作系统的输入输出系统及方法

Also Published As

Publication number Publication date
WO2012083640A1 (zh) 2012-06-28
CN102566996A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
US10067757B2 (en) Dynamic update of an application in compilation and deployment with hot-swapping
DE69402852T2 (de) Objektorientiertes host-system
CN109144533B (zh) 一种应用程序的更新及加载的方法、系统及计算机装置
US8006246B2 (en) Apparatus for forcibly terminating thread blocked on input/output operation and method for the same
JPH09503875A (ja) オブジェクト指向オペレーティング・システム
JP2013546106A (ja) 分散型コンピューティングアーキテクチャ
CN103902634B (zh) 利用Adapter实现View组件与数据库字段自动绑定的方法
US10423390B1 (en) Systems and methods for generating code for models having messaging semantics
CN110362301B (zh) 一种终端应用行为反射的处理方法
US8468528B2 (en) Method for selective flushing logs within multiple queues concurrently
CN102262555B (zh) 加载java三方库的不同版本的方法和装置
US20240220399A1 (en) In-vehicle operating system, debugging system and method, electronic device, and storage medium
CN102566996B (zh) 一种实现多任务管理输入输出资源的方法及系统
CN109800061B (zh) 一种嵌入式软件多实例虚拟化方法
CN113342554B (zh) Io多路复用方法、介质、设备和操作系统
Andert Object frameworks in the Taligent OS
CN104778087B (zh) 一种信息处理方法以及信息处理装置
US7739690B2 (en) Meta-container for model-based distributed applications
CN110347448B (zh) 一种构造终端应用行为的运行时模型的方法
CN111722845B (zh) 以stm32单片机为主控的嵌入式gui框架
US9418175B2 (en) Enumeration of a concurrent data structure
López Martínez et al. Scheduling configuration of real-time component-based applications
Hagge et al. Applying the handler-based execution model to IEC 61499 basic and composite function blocks
CN110018813A (zh) 一种Toast设计方法、存储介质、电子设备及系统
CN113110928B (zh) 多线程启动方法及多线程启动系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant