CN107291554A - 硬件资源动态分配的实现方法及装置 - Google Patents
硬件资源动态分配的实现方法及装置 Download PDFInfo
- Publication number
- CN107291554A CN107291554A CN201710531769.XA CN201710531769A CN107291554A CN 107291554 A CN107291554 A CN 107291554A CN 201710531769 A CN201710531769 A CN 201710531769A CN 107291554 A CN107291554 A CN 107291554A
- Authority
- CN
- China
- Prior art keywords
- hardware resource
- application
- hardware
- application function
- instruction
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明适用于通信领域,提供了一种硬件资源动态分配的实现方法及装置,所述方法包括:收到应用指令时,根据所述应用指令创建至少一应用功能对象;创建所述应用功能对象关联的至少一硬件功能对象;根据所述硬件功能对象为所述应用功能对象分配硬件资源,由所述硬件资源执行所述应用指令。本发明实施例的方法及装置可提高嵌入式系统的实时性。
Description
此申请是申请日为2013年12月18日、中国申请号为201310699757.X发明名称为“硬件资源动态分配的实现方法及装置”的发明申请的分案申请。
技术领域
本发明属于通信领域,尤其涉及一种硬件资源动态分配的实现方法及装置。
背景技术
目前流行的工业用计算机设计方案中一类为嵌入式操作系统,它是从运行在个人电脑上的操作统向下移植到嵌入式系统中,形成的嵌入式操作系统,如微软公司的WindowsCE及其新版本本WEC、SUN公司JAVA操作系统、朗讯科技公司的Inferno、嵌入式Linux等,这类系统经过个人电脑或高性能的计算机等产品的长期运行考验,技术日趋成熟,其相关的标准和软件开发方式被用户普遍接受,同时积累了丰富的开发工具和应用软件资源,但是实时性较低。另一类为实时操作系统,如WindRiver公司的VxWorks,ISI的pSOS、QNX系统软件公司的QNX,这类产品的操作统的结构和实现上都针对所面向的应用领域,对实时性高可靠性进行了精巧的设计,而且提供了独立而备系统开发和测试工具,较多应用在军用产品和工业控制等领域,但这种系统代码量比较大,实时性还不够强。嵌入式操作系统或实时操作系统存在以下缺点:
﹒成本高:大多需要昂贵的版权使用费;
﹒代码庞大:最少也需要几百KB以上的内存空间,在小内存的应用种无法使用;
﹒实时性低:就算是实时操作系统,都需要执行任务的调度,内存管理所需要花费的时间绝对比裸机统多,在实时性要求较高的应用中无法实现某些特定的功能。
﹒使用难度较大:都需要一定操作系统开发经验,要比较深刻的了解系统的实现机制方能实现驱动应用的代码编写。
发明内容
本发明实施例的目的在于提供一种硬件资源动态分配的实现方法及装置,旨在解决现有的嵌入式系统实时性低的问题。
本发明实施例是这样实现的,一种硬件资源动态分配的实现方法,所述方法包括:
收到应用指令时,根据所述应用指令创建至少一应用功能对象;
创建所述应用功能对象关联的至少一硬件功能对象;
根据所述硬件功能对象为所述应用功能对象分配硬件资源,由所述硬件资源执行所述应用指令。
进一步地,在执行所述根据应用指令创建至少一应用功能对象之前,还包括:
判断是否支持所述应用指令,是则执行所述根据应用指令创建至少一应用功能对象,否则返回失败。
进一步地,在执行所述硬件资源执行应用指令之后,还包括:
释放所述硬件资源。
进一步地,所述根据硬件功能对象为应用功能对象分配硬件资源包括:
检索设备管理器中空闲的硬件资源;
初始化所述检索到的空闲的硬件资源,完成硬件资源的分配。
进一步地,所述根据硬件功能对象为应用功能对象分配硬件资源还包括:
当所述应用功能对象有多个,通过设备管理器对所述多个应用功能对象分配对应的硬件资源。
本发明还提出一种硬件资源动态分配的装置,所述装置包括:
第一创建模块,用于收到应用指令时,根据所述应用指令创建至少一应用功能对象;
第二创建模块,创建所述应用功能对象关联的至少一硬件功能对象;
分配模块,用于根据所述硬件功能对象为所述应用功能对象分配硬件资源,由所述硬件资源执行所述应用指令。
进一步地,所述装置还包括:
判断模块,用于判断是否支持所述应用指令,是则执行所述根据应用指令创建至少一应用功能对象,否则返回失败。
进一步地,所述装置还包括:
释放模块,用于释放所述硬件资源。
进一步地,所述分配模块包括:
检索单元,用于检索设备管理器中空闲的硬件资源;
初始化单元,用于初始化所述检索到的空闲的硬件资源,完成硬件资源的分配。
进一步地,所述分配模块还包括:
选择单元,用于当所述应用功能对象有多个,通过设备管理器对所述多个应用功能对象分配对应的硬件资源。
在本发明实施例中,通过结构体管理系统中所存在的硬件资源,并通过设备数据结构中的标志位,标明该硬件资源是否己经被占用,通过使用类的概念管理具体硬件资源的需要实现的具体功能;通过使用结构体构建一个设备管理器,用设备管理器,维护系统中所有存在的硬件资源。与现有技术相比,本发明提出的技术方案中,具有以下几点优势:
1.灵活性高:可以实动态的自由分配硬件资源,并能在程序模块中,任意增加需要的应用功能模块,而不需要修改与设备相关的代码。
3.实时性高:不需要操作系统的支撑,自主完成硬件资源的分配,代码执行效率高,实时性大在提高。
4.成本低:由于不需要操作系统的支撑,代码需要的空间小,需要保存代码的FLASH容量要求不高。
5.使用难度较小:无需要像操作系统一样,需要熟悉复杂的系统模型,只要略加修改就能应用到裸机系统中。
附图说明
图1是本发明实施例一提供的硬件资源动态分配的实现方法的流程图;
图2是本发明实施例一提供的硬件资源动态分配的实现方法中的结构体框架图;
图3是本发明实施例二提供的硬件资源动态分配的实现装置的结构图;
图4是本发明实施例二提供的硬件资源动态分配的实现装置中分配模块的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
发明实施例一提出一种硬件资源动态分配的实现方法。如图1所示,本发明实施例一的方法包括:
步骤S1、收到应用指令时,判断是否支持应用指令,是则执行步骤S2,否则返回失败。
步骤S2、根据应用指令创建至少一应用功能对象,如图2所示之实现UART与SPI之间的数据交互功能对象5、实现CAN和UART之间数据交互功能对象6以及实现CAN与SPI之间数据交互功能对象7。本发明实施例一首先执行全局初使化代码,实例化一个USB类对象对于从PC或别的设备平台接收指令发送相应数据,然后再进入主体循环等待PC端上层应用的指令,并根据相应的指令实例化一个或多个应用功能对象。
步骤S3、创建所述应用功能对象关联的至少一硬件功能对象,如图2所示之USB接收和发送数据子对象11、CAN接收和发送数据子对象12、UART接收和发送数据子对象13、SPI接收和发送数据子对象14、定时计数据器功能子对象15。
步骤S4、根据所述硬件功能对象为所述应用功能对象分配硬件资源,由所述硬件资源执行所述应用指令。硬件资源如图2所示之USB控制器21、定时计数器122、定时计数器223、异步串行通信接口124、异步串行通信接口225、CAN BUS控制器126、CAN BUS控制器227、SPI控制器128和SPI控制器229。具体硬件功能对象与哪一个实体的硬件资源相应需要看应用功能模块构建后所分配的硬件资源(如UART接收和发送数据子对象13需要分配异步串行通信接口124、异步串行通信接口225,需要知道该硬件资源是否被占用)。当调用程序功能模块构建对象工厂构建应用功能模块时,会调用alloc_dev函数,检索未用的硬件资源,并将硬件资源的类型和ID传递给应用功能模块,再传递到应用功能对象相关联的硬件功能对象,初使化上述硬件资源相关的寄存器和数据结构,完成硬件资源的分配。
步骤S5、释放所述硬件资源。在应用功能对象析构的时候,再调用相关联的硬件功能对象进行硬件资源的释放(包括中断关闭,时钟关闭等一系列与该硬件相关的资源),然后调用程序功能模块构建工厂中的free_dev功能函数完成设备管理器的资源释放(即将设备中alloc_states标志清除)。这样当每一个应用功能对象构建的时候分配硬件资源,在应用功能对象释放的时候,释放对硬件资源的占用。当有两个以上的应用功能对象需要共用同种类型的硬件资源的时候(比如UART与SPI之间的数据交互功能对象5、实现CAN和UART之间数据交互功能对象6都需要使用UART控制器)就可以根据设备管与器完成对异步串行通信接口124、异步串行通信接口225进行分配。如果还有一个应用功能模块还需用到UART资源,那么在调用alloc_dev函数的时候就会失败,表示资源己占用,只有当之前占用硬件资源的某一应用功能对象释放了与之相对应的硬件资源后这个新的应用功能模块才能重新分配到硬件资源。
其中,相关的代码部分如下:
在本发明实施例一中,通过结构体管理系统中所存在的硬件资源,通过使用类的概念管理具体硬件资源的需要实现的具体功能;通过使用结构体构建一个设备管理器,用设备管理器,维护系统中所有存在的硬件资源。实现动态的自由分配硬件资源,并能在程序模块中,任意增加需要的应用功能模块,而不需要修改与设备相关的代码。且不需要操作系统的支撑,自主完成硬件资源的分配,代码执行效率高,实时性大大提高。由于不需要操作系统的支撑,代码需要的空间小,需要保存代码的FLASH容量要求不高。本发明实施例一无需要象操作系统一样,需要熟悉复杂的系统模型,只要略加修改就能应用到裸机系统中。
实施例二
本发明实施例二提供一种硬件资源动态分配的装置。如图3所示,本发明的装置可包括判断模块10、第一创建模块20、第二创建模块30、分配模块40和释放模块50。判断模块10用于收到应用指令时,判断是否支持所述应用指令,是则由第一创建模块20执行根据应用指令创建至少一应用功能对象,否则返回失败。第一创建模块20,用于根据所述应用指令创建至少一应用功能对象。如图2所示之实现UART与SPI之间的数据交互功能对象5、实现CAN和UART之间数据交互功能对象6以及实现CAN与SPI之间数据交互功能对象7。本发明实施例一首先执行全局初使化代码,实例化一个USB类对象对于从PC或别的设备平台接收指令发送相应数据,然后再进入主体循环等待PC端上层应用的指令,并根据相应的指令实例化一个或多个应用功能对象。
第二创建模块30,创建所述应用功能对象关联的至少一硬件功能对象;如图2所示之USB接收和发送数据子对象11、CAN接收和发送数据子对象12、UART接收和发送数据子对象13、SPI接收和发送数据子对象14、定时计数据器功能子对象15。
分配模块40,用于根据所述硬件功能对象为所述应用功能对象分配硬件资源,由所述硬件资源执行所述应用指令。硬件资源如图2所示之USB控制器21、定时计数器122、定时计数器223、异步串行通信接口124、异步串行通信接口225、CAN BUS控制器126、CANBUS控制器227、SPI控制器128和SPI控制器229。具体硬件功能对象与哪一个实体的硬件资源相应需要看应用功能模块构建后所分配的硬件资源(如UART接收和发送数据子对象13需要分配异步串行通信接口124、异步串行通信接口225,需要知道该硬件资源是否被占用)。
释放模块50,用于释放所述硬件资源。
如图4所示,分配模块40进一步包括检索单元41、初始化单元42和选择单元43。检索单元41用于检索设备管理器中空闲的硬件资源;当调构建应用功能模块时;初始化单元42,用于初始化所述检索到的空闲的硬件资源,完成硬件资源的分配。选择单元43,用于当所述应用功能对象有多个,通过设备管理器对所述多个应用功能对象分配对应的硬件资源。
在本发明实施例二的装置,通过结构体管理系统中所存在的硬件资源,通过使用类的概念管理具体硬件资源的需要实现的具体功能;通过使用结构体构建一个设备管理器,用设备管理器,维护系统中所有存在的硬件资源。实现动态的自由分配硬件资源,并能在程序模块中,任意增加需要的应用功能模块,而不需要修改与设备相关的代码。且不需要操作系统的支撑,自主完成硬件资源的分配,代码执行效率高,实时性大大提高。由于不需要操作系统的支撑,代码需要的空间小,需要保存代码的FLASH容量要求不高。本发明实施例一无需要象操作系统一样,需要熟悉复杂的系统模型,只要略加修改就能应用到裸机系统中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种硬件资源动态分配的实现方法,其特征在于,所述方法包括:
收到应用指令时,根据所述应用指令创建至少一应用功能对象;
创建所述应用功能对象关联的至少一硬件功能对象;
根据所述硬件功能对象为所述应用功能对象分配硬件资源,由所述硬件资源执行所述应用指令。
2.如权利要求1所述的方法,其特征在于,在执行所述根据应用指令创建至少一应用功能对象之前,还包括:
判断是否支持所述应用指令,是则执行所述根据应用指令创建至少一应用功能对象,否则返回失败。
3.如权利要求1所述的方法,其特征在于,在执行所述硬件资源执行应用指令之后,还包括:
释放所述硬件资源。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述根据硬件功能对象为应用功能对象分配硬件资源包括:
检索设备管理器中空闲的硬件资源;
初始化所述检索到的空闲的硬件资源,完成硬件资源的分配。
5.如权利要求1至3中任一项所述的方法,其特征在于,所述根据硬件功能对象为应用功能对象分配硬件资源还包括:
当所述应用功能对象有多个,通过设备管理器对所述多个应用功能对象分配对应的硬件资源。
6.一种硬件资源动态分配的装置,其特征在于,所述装置包括:
第一创建模块,用于收到应用指令时,根据所述应用指令创建至少一应用功能对象;
第二创建模块,创建所述应用功能对象关联的至少一硬件功能对象;
分配模块,用于根据所述硬件功能对象为所述应用功能对象分配硬件资源,由所述硬件资源执行所述应用指令。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断是否支持所述应用指令,是则执行所述根据应用指令创建至少一应用功能对象,否则返回失败。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
释放模块,用于释放所述硬件资源。
9.如权利要求6至9中任一项所述的装置,其特征在于,所述分配模块包括:
检索单元,用于检索设备管理器中空闲的硬件资源;
初始化单元,用于初始化所述检索到的空闲的硬件资源,完成硬件资源的分配。
10.如权利要求6至9中任一项所述的装置,其特征在于,所述分配模块还包括:
选择单元,用于当所述应用功能对象有多个,通过设备管理器对所述多个应用功能对象分配对应的硬件资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710531769.XA CN107291554A (zh) | 2013-12-18 | 2013-12-18 | 硬件资源动态分配的实现方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710531769.XA CN107291554A (zh) | 2013-12-18 | 2013-12-18 | 硬件资源动态分配的实现方法及装置 |
CN201310699757.XA CN103617091B (zh) | 2013-12-18 | 2013-12-18 | 硬件资源动态分配的实现方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310699757.XA Division CN103617091B (zh) | 2013-12-18 | 2013-12-18 | 硬件资源动态分配的实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107291554A true CN107291554A (zh) | 2017-10-24 |
Family
ID=50167794
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310699757.XA Active CN103617091B (zh) | 2013-12-18 | 2013-12-18 | 硬件资源动态分配的实现方法及装置 |
CN201710531769.XA Pending CN107291554A (zh) | 2013-12-18 | 2013-12-18 | 硬件资源动态分配的实现方法及装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310699757.XA Active CN103617091B (zh) | 2013-12-18 | 2013-12-18 | 硬件资源动态分配的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN103617091B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015180111A1 (zh) * | 2014-05-29 | 2015-12-03 | 华为技术有限公司 | 一种管理系统资源的方法、装置及设备 |
CN109460296B (zh) * | 2018-10-23 | 2019-12-27 | 中科驭数(北京)科技有限公司 | 一种处理器的资源分配方法、装置和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802365A (en) * | 1995-05-05 | 1998-09-01 | Apple Computer, Inc. | Dynamic device matching using driver candidate lists |
US20050187921A1 (en) * | 2004-02-20 | 2005-08-25 | Microsoft Corporation | Uniform resource discovery |
US20080320501A1 (en) * | 2007-06-25 | 2008-12-25 | Microsoft Corporation | Aggregate personal computer system |
CN102129373A (zh) * | 2011-03-09 | 2011-07-20 | 湖南超视物联智能网络科技有限公司 | 一种基于物联网终端设备驱动程序软件设计框架的方法 |
CN102246180A (zh) * | 2008-12-15 | 2011-11-16 | 国际商业机器公司 | 用于模仿用户的方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100468346C (zh) * | 2007-03-30 | 2009-03-11 | 腾讯科技(深圳)有限公司 | 一种绘图资源的管理方法及系统 |
CN103136035B (zh) * | 2011-11-30 | 2015-11-25 | 国际商业机器公司 | 用于混合线程模式的程序的线程管理的方法和装置 |
-
2013
- 2013-12-18 CN CN201310699757.XA patent/CN103617091B/zh active Active
- 2013-12-18 CN CN201710531769.XA patent/CN107291554A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802365A (en) * | 1995-05-05 | 1998-09-01 | Apple Computer, Inc. | Dynamic device matching using driver candidate lists |
US20050187921A1 (en) * | 2004-02-20 | 2005-08-25 | Microsoft Corporation | Uniform resource discovery |
US20080320501A1 (en) * | 2007-06-25 | 2008-12-25 | Microsoft Corporation | Aggregate personal computer system |
CN102246180A (zh) * | 2008-12-15 | 2011-11-16 | 国际商业机器公司 | 用于模仿用户的方法和系统 |
CN102129373A (zh) * | 2011-03-09 | 2011-07-20 | 湖南超视物联智能网络科技有限公司 | 一种基于物联网终端设备驱动程序软件设计框架的方法 |
Non-Patent Citations (1)
Title |
---|
ISOAL: "BF52x USB应用程序开发介绍", 《HTTPS://WENKU.BAIDU.COM/VIEW/B93DEE0402020740BE1E9B20》 * |
Also Published As
Publication number | Publication date |
---|---|
CN103617091A (zh) | 2014-03-05 |
CN103617091B (zh) | 2017-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7480773B1 (en) | Virtual machine use and optimization of hardware configurations | |
CN100474240C (zh) | 用于在虚拟机环境中实现操作系统的系统和方法 | |
KR101057452B1 (ko) | 스마트카드 임베디드 조작 시스템 및 작업처리 방법 | |
CN102611723A (zh) | 一种基于虚拟化技术构建高性能计算应用服务的方法 | |
CN108415772B (zh) | 一种基于容器的资源调整方法、装置和介质 | |
CN104067260A (zh) | 动态构建用于承担用户工作量的一组计算节点 | |
CN101128807A (zh) | 用于扩充中断控制器和合成中断来源的系统和方法 | |
KR20140061545A (ko) | 통신 디바이스의 하드웨어 자원들을 관리하기 위한 가상화 관리 방법 및 관련 장치 | |
CN107678752A (zh) | 一种面向异构集群的任务处理方法及装置 | |
KR20210105378A (ko) | 프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체 | |
CN103414767A (zh) | 将应用软件部署在云计算平台上的方法和装置 | |
KR102499705B1 (ko) | 네트워크 서비스 검출 방법 및 이를 위한 장치 | |
CN103617091B (zh) | 硬件资源动态分配的实现方法及装置 | |
CN104123183A (zh) | 集群作业调度方法和装置 | |
CN114610440A (zh) | 模拟机系统的运行环境构建方法及系统 | |
Boob et al. | Automated instantiation of heterogeneous fast flow CPU/GPU parallel pattern applications in clouds | |
CN102929693B (zh) | 整机柜服务器的性能评测方法及装置 | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
CN105095112A (zh) | 控制缓存刷盘方法、装置及非易失性计算机可读存储介质 | |
CN103902320A (zh) | 虚拟机安装系统及方法 | |
CN105159784A (zh) | 一种虚拟服务器的部署方法及系统 | |
Lloyd et al. | Dynamic scaling for service oriented applications: implications of virtual machine placement on IaaS clouds | |
CN105208111A (zh) | 一种信息处理的方法及物理机 | |
CN104991826A (zh) | 一种虚拟机部署方法及装置 | |
Zhang et al. | Gang scheduling extensions for I/O intensive workloads |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171024 |