CN116302402A - 嵌入式系统任务处理方法及装置 - Google Patents
嵌入式系统任务处理方法及装置 Download PDFInfo
- Publication number
- CN116302402A CN116302402A CN202310127973.0A CN202310127973A CN116302402A CN 116302402 A CN116302402 A CN 116302402A CN 202310127973 A CN202310127973 A CN 202310127973A CN 116302402 A CN116302402 A CN 116302402A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- queue
- task queue
- embedded system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 title claims abstract description 45
- 238000003672 processing method Methods 0.000 claims abstract description 33
- 238000004590 computer program Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 abstract description 12
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000000737 periodic effect Effects 0.000 description 8
- 238000005070 sampling Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005265 energy consumption Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种嵌入式系统任务处理方法及装置,涉及嵌入式技术领域。其中,该方法包括:在任务队列中存在任务的情况下,获取任务队列中的各任务;基于各任务在任务队列中的顺序,依次执行各任务;其中,任务在任务队列中的顺序,是基于任务的优先级确定的;任务是由定时器中断、IO中断或内部逻辑产生的。本发明提供的嵌入式系统任务处理方法及装置,基于各任务在任务队列中的顺序,依次执行各任务,采用串行方式执行,能直接避免共享数据的同步操作,无任务间数据同步操作,效率更高。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种嵌入式系统任务处理方法及装置。
背景技术
目前,嵌入式系统处理并发的多个任务主要可以通过两种方式实现。一种方式是引入操作系统,例如FreeRTOS或UCOS等,将每个任务划分为独立的任务线程,并通过操作系统调度任务线程,实现对并发的多个任务的处理。另一种是通过大循环的方式,例如最外层的while循环等,对并发的多个任务进行处理。
引入操作系统的方式,不适用于内存较小(例如内存容量为16K)的嵌入式系统,适用范围受限,并且操作系统对任务频繁进行调度,任务处理效率较低,数据处理的实时性较差。大循环的方式,数据同步操作和任务的切换频繁,任务处理效率较低,数据处理的实时性较差。
综上,现有技术存在任务处理效率较低,数据处理的实时性较差等不足。
发明内容
本发明提供一种嵌入式系统任务处理方法及装置,用以解决现有技术中任务处理效率较低的缺陷,实现高效地处理并发的多个任务。
本发明提供一种嵌入式系统任务处理,包括:
在任务队列中存在任务的情况下,获取所述任务队列中的各任务;
基于所述各任务在所述任务队列中的顺序,依次执行所述各任务;
其中,所述任务在所述任务队列中的顺序,是基于所述任务的优先级确定的;所述任务是由定时器中断、IO中断或内部逻辑产生的。
根据本发明提供的一种嵌入式系统任务处理方法,所述在任务队列中存在任务的情况下,获取所述任务队列中的各任务之前,还包括:
在有任务产生的情况下,将产生的所述任务添加至所述任务队列中。
根据本发明提供的一种嵌入式系统任务处理方法,所述将产生的所述任务添加至所述任务队列中,包括:
基于产生所述任务的来源,确定所述任务的优先级;
基于所述任务的优先级,确定所述任务在所述任务队列中的位置;
基于所述任务在所述任务队列中的位置,将所述任务保存于所述任务队列中。
根据本发明提供的一种嵌入式系统任务处理方法,所述基于所述任务在所述任务队列中的位置,将所述任务保存于所述任务队列中,包括:
基于所述任务在所述任务队列中的位置,将所述任务对应的执行函数保存于所述任务队列中。
根据本发明提供的一种嵌入式系统任务处理方法,所述方法还包括:
在所述任务队列中不存在任务且目标芯片的状态为唤醒状态的情况下,将所述目标芯片的状态切换为休眠状态;所述目标芯片,用于执行所述任务。
根据本发明提供的一种嵌入式系统任务处理方法,在任务队列中存在任务的情况下,获取所述任务队列中的各任务,与所述基于所述各任务在所述任务队列中的顺序,依次执行所述各任务之间,还包括:
在所述目标芯片的状态为休眠状态的情况下,将所述目标芯片的状态切换为唤醒状态。
根据本发明提供的一种嵌入式系统任务处理方法,所述在任务队列中存在任务的情况下,获取所述任务队列中的各任务之前,还包括:
基于预设的时间间隔,查询所述任务队列。
本发明还提供一种嵌入式系统任务处理装置,包括:
获取模块,用于在任务队列中存在任务的情况下,获取所述任务队列中的各任务;
执行模块,用于基于所述各任务在所述任务队列中的顺序,依次执行所述各任务;
其中,所述任务在所述任务队列中的顺序,是基于所述任务的优先级确定的;所述任务是由定时器中断、IO中断或内部逻辑产生的。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述嵌入式系统任务处理方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述嵌入式系统任务处理方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述嵌入式系统任务处理方法的步骤。
本发明提供的嵌入式系统任务处理方法及装置,基于各任务在任务队列中的顺序,依次执行各任务,采用串行方式执行,能直接避免共享数据的同步操作,无任务间数据同步操作,效率更高。并且,在多任务同时并发额情况下,嵌入式系统的中断会十分拥挤,若不能及时完成中断操作,会出现中断溢出情况,采用本发明实施例提供的方法,能快速将中断任务缓存到任务队列中,确保中断不会溢出,在中断中占用时钟时间极小,能大大提升外设并发性能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的嵌入式系统任务处理方法的流程示意图之一;
图2是本发明提供的嵌入式系统任务处理方法的流程示意图之二;
图3是本发明提供的嵌入式系统任务处理方法的流程示意图之三;
图4是本发明提供的嵌入式系统任务处理装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1至图5描述本发明的嵌入式系统任务处理方法及装置。
图1是本发明提供的嵌入式系统任务处理方法的流程示意图之一。如图1所示,该方法包括:步骤101和步骤102。
具体地,本发明实施例提供的嵌入式系统任务处理方法的执行主体可以为嵌入式系统任务处理装置。
步骤101、在任务队列中存在任务的情况下,获取任务队列中的各任务。其中,任务在任务队列中的顺序,是基于任务的优先级确定的;任务是由定时器中断、IO中断或内部逻辑产生的。
具体地,产生的任务,可以预先保存于任务队列中,即可以通过任务队列对任务进行管理。
任意一个任务,可以由定时器中断、IO(Input Output,输入输出)中断或内部逻辑产生。
定时器中断产生的任务,主要包括周期性采样或执行任务。例如,每1秒采集一次温度信息,定期器达到任务周期后,定期创建周期任务。
IO中断(即IO外设中断)产生的任务,主要用于采集通信数据、AD(模数转换,Analogue-to-Digital Conversion)采样、DI(数字开关量输入,Digital Input)采样等。例如串口通信数据接收后处理任务。
可选地,IO外设可以包括AD、GPIO(通用输入/输出口,General Purpose InputOutput)外设、SPI(串行外设接口,Serial Peripheral Interface)外设、USART(通用同步/异步串行接收/发送器,Universal Synchronous/Asynchronous Receiver/Transmitter)和I2C外设等中的至少一种。
内部逻辑产生的任务,主要包括由逻辑触发的延时任务或由逻辑触发的采样任务等。此类任务产生时间和/或空间不固定,由程序设计产生。
可选地,每一任务可以具有优先级,该任务在任务队列中的顺序(或位置),可以基于该任务的优先级确定。
可选地,任务的优先级越高,该任务在任务队列中的顺序(或位置)越靠前;任务的优先级越低,该任务在任务队列中的顺序(或位置)越靠后。
可选地,任务的优先级可以基于任务的来源和产生任务的时间等中的至少一个确定。
任务的来源,可以指任务是由什么产生的,即该任务是由定时器中断、IO中断还是内部逻辑产生的。
示例性地,在任务是由定时器中断产生的情况下,该任务的来源为定时器中断。
可以通过任一种判断队列是否为空的方式,确定任务队列中是否存在任务。
在任务队列中存在至少一个任务的情况下,可以将任务队列中的各任务从该任务队列中取出,从而获取到任务队列中的各任务。
可选地,将任务队列中的各任务从该任务队列中取出之后,可以清空该任务队列。
步骤102、基于各任务在任务队列中的顺序,依次执行各任务。
具体地,对于获取到达的各任务,可以基于各任务在任务队列中的顺序,以单线程的方式依次执行。
通过本发明实施例提供的方式,可以对于嵌入式系统实现单线程对多任务异步并发的处理。
本发明实施例通过获取任务队列中的各任务,基于各任务在任务队列中的顺序,依次执行各任务,采用串行方式执行,能直接避免共享数据的同步操作,无任务间数据同步操作,效率更高。并且,在多任务同时并发额情况下,嵌入式系统的中断会十分拥挤,若不能及时完成中断操作,会出现中断溢出情况,采用本发明实施例提供的方法,能快速将中断任务缓存到任务队列中,确保中断不会溢出,在中断中占用时钟时间极小,能大大提升外设并发性能。
基于上述任一实施例的内容,在任务队列中存在任务的情况下,获取任务队列中的各任务之前,还包括:在有任务产生的情况下,将产生的任务添加至任务队列中。
具体地,多个任务并发时,如:定期器执行周期采样任务,IO外设中断执行串口数据接收处理任务;两个任务同时触发时,将各自需要执行的任务通过函数指针和任务结构体封装,并立即放入任务队列。系统任务执行单元检测到任务队列中存在任务单元,立即依次执行任务,完成任务的并发。
本发明实施例通过在有任务产生的情况下,将产生的任务添加至任务队列中,能直接避免共享数据的同步操作,无任务间数据同步操作,效率更高。
基于上述任一实施例的内容,将产生的任务添加至任务队列中,包括:基于产生任务的来源,确定任务的优先级。
具体地,对于每一任务,可以基于产生任务的来源,确定任务的优先级。即可以基于该任务是由定时器中断、IO中断还是内部逻辑产生的,确定该任务的优先级。
可选地,由定时器中断和IO中断产生的任务的优先级,可以高于由内部逻辑产生的任务的优先级。
可选地,由定时器中断和IO中断产生的任务的优先级可以相同或不同。
基于任务的优先级,确定任务在任务队列中的位置。
具体地,任务的优先级越高,该任务在任务队列中的顺序(或位置)越靠前;任务的优先级越低,该任务在任务队列中的顺序(或位置)越靠后。
可选地,在多个任务的优先级相同的情况下,上述多个任务在任务队列中的顺序(或位置)可以基于产生任务的时间确定。可选地,在多个任务的优先级相同的情况下,产生任务的时间越早,该任务在任务队列中的顺序(或位置)可以越靠前,而产生任务的时间越晚,该任务在任务队列中的顺序(或位置)可以越靠后。
基于任务在任务队列中的位置,将任务保存于任务队列中。
具体地,对于产生的每一任务,在确定该任务在任务队列中的位置之后,可以将该任务保存于任务队列中的该位置。
本发明实施例基于产生任务的来源,确定任务的优先级,基于任务的优先级,确定任务在任务队列中的位置,能保证重要、紧急的任务先执行。
基于上述任一实施例的内容,基于任务在任务队列中的位置,将任务保存于任务队列中,包括:基于任务在任务队列中的位置,将任务对应的执行函数保存于任务队列中。
具体地,对于每一任务,可以通过保存任务函数指针方式,将该任务要执行的函数通过任务封装直接保存到任务队列中,从而将该任务保存于该任务在任务队列中的位置,实现将任务保存于任务队列中。
该任务要执行的函数,为该任务对应的执行函数。
本发明实施例通过任务对应的执行函数保存于任务队列中,能更高效地执行任务。
基于上述任一实施例的内容,方法还包括:在任务队列中不存在任务且目标芯片的状态为唤醒状态的情况下,将目标芯片的状态切换为休眠状态;目标芯片,用于执行任务。
具体地,每一任务,均可以由目标芯片执行。
在任务队列中不存在任何任务的情况下,可以将目标芯片的状态由唤醒状态切换为休眠状态,降低能耗。
本发明实施例通过在任务队列中不存在任务且目标芯片的状态为唤醒状态的情况下,将目标芯片的状态切换为休眠状态,能更方便、快捷地实现芯片的低功耗运行,更节约能耗。
基于上述任一实施例的内容,在任务队列中存在任务的情况下,获取任务队列中的各任务,与基于各任务在任务队列中的顺序,依次执行各任务之间,还包括:在目标芯片的状态为休眠状态的情况下,将目标芯片的状态切换为唤醒状态。
具体地,在任务队列中存在至少一个任务的情况下,可以将目标芯片的状态由休眠状态切换为唤醒状态,以便目标芯片执行各任务。
本发明实施例通过在任务队列中存在任务且目标芯片的状态为休眠状态的情况下,将目标芯片的状态切换为唤醒状态,能更方便、快捷地实现芯片的低功耗运行,更节约能耗。
基于上述任一实施例的内容,在任务队列中存在任务的情况下,获取任务队列中的各任务之前,还包括:基于预设的时间间隔,查询任务队列。
具体地,可以基于预设的时间间隔,周期性查询任务队列,确定是否有新的任务产生。
周期性查询任务队列中是否存在任务,若存在则立即读取任务队列,并完成任务处理;若不存在任务队列,则当前系统不存在并发任务,处于空闲状态,目标芯片可进入休眠状态,等待下个查询周期。
可以理解的是,可以可根据实际生产要求,调节任务队列周期查询时间(即预设的时间间隔),提高并发任务处理的实时性。
本发明实施例通过基于预设的时间间隔,查询任务队列,能更快速、方便、准确地确定任务队列中是否存在任务,能提高任务处理的效率。
图2是本发明提供的嵌入式系统任务处理方法的流程示意图之二;图3是本发明提供的嵌入式系统任务处理方法的流程示意图之三。图2示出的是产生任务的定时器中断、IO中断和内部逻辑均为一个的情况下,嵌入式系统任务处理方法的整体过程。图3示出的是产生任务的定时器中断、IO中断和内部逻辑均为多个的情况下,嵌入式系统任务处理方法的整体过程。
如图2所示,主流程可以包括以下步骤:
步骤201、初始化任务队列。
步骤202、查询任务队列中是否有新任务。
若是,则执行步骤203;若否,则返回继续执行步骤202。
步骤203、任务出任务队列。
从任务队列中获取上述新任务。
步骤204、执行新任务。
步骤204之后,可以返回执行步骤202。
如图2所示,在流程执行的同时,可以并行执行任务产生流程。任务产生流程可以包括:
步骤21、驱动产生任务及步骤22、产生任务。
可以基于定时器和IO中断,驱动产生任务;可以基于内部逻辑,产生任务。
步骤23、任务进任务队列。
可以将产生的任务放入任务队列,以便主流程进行查询。
图3示出的整体流程与图2示出的整体流程类似,此处不再赘述。图3还示例性地示出了定时器产生的周期性的任务、IO中断产生的任务和内部逻辑产生的任务。
可选地,定时器产生的周期性的任务可以包括:1秒一次温度采集任务、1秒一次湿度采样任务和1秒一次气压采样任务等。
可选地,IO中断产生的任务可以包括:通信数据处理任务、烟感告警触发任务和继电器断开任务等。
可选地,内部逻辑产生的任务可以包括:延时5s数据发送任务、延时2s数据读取任务和数据解析任务等。
本发明实施例提供的方法,能解决小内存嵌入式芯片由于内存资源紧张,无法使用操作系统的问题。
本发明实施例提供的方法,能通过单线程多任务异步并发方案设计,免去使用操作系统带来入栈出栈的资源开销,利用很小的资源开销实现单进程异步任务处理,实现多个周期性任务的并发。
本发明实施例提供的方法,能采用单线程异步系统方案设计,可实现任务并发时串行执行,任务间数据的读写不存在零界点问题,无需做任务间的数据同步;由于任务执行过程中,不存在线程的调度,解决多线程间数据同步的开销和线程调度开销,提高了系统的实时性。
解决传统任务大循环方式下,芯片低功耗模式的开启与关闭难以管理的问题。
下面对本发明提供的嵌入式系统任务处理装置进行描述,下文描述的嵌入式系统任务处理装置与上文描述的嵌入式系统任务处理方法可相互对应参照。
图4是本发明提供的嵌入式系统任务处理装置的结构示意图。基于上述任一实施例的内容,如图4所示,嵌入式系统任务处理装置包括:获取模块401和执行模块402,其中:
获取模块401,用于在任务队列中存在任务的情况下,获取任务队列中的各任务;
执行模块402,用于基于各任务在任务队列中的顺序,依次执行各任务;
其中,任务在任务队列中的顺序,是基于任务的优先级确定的;任务是由定时器中断、IO中断或内部逻辑产生的。
具体地,获取模块401和执行模块402可以电连接。
获取模块401在在任务队列中存在至少一个任务的情况下,可以将任务队列中的各任务从该任务队列中取出,从而获取到任务队列中的各任务。
执行模块402对于获取到达的各任务,可以基于各任务在任务队列中的顺序,以单线程的方式依次执行。
可选地,嵌入式系统任务处理装置,还可以包括:
任务产生模块,用于在有任务产生的情况下,将产生的任务添加至任务队列中。
可选地,任务产生模块,可以包括:
第一确定单元,用于基于产生任务的来源,确定任务的优先级;
第二确定单元,用于基于任务的优先级,确定任务在任务队列中的位置;
保存单元,用于基于任务在任务队列中的位置,将任务保存于任务队列中。
可选地,保存单元,可以具体用于基于任务在任务队列中的位置,将任务对应的执行函数保存于任务队列中。
可选地,嵌入式系统任务处理装置,还可以包括:
切换模块,用于在任务队列中不存在任务且目标芯片的状态为唤醒状态的情况下,将目标芯片的状态切换为休眠状态;目标芯片,用于执行任务。
可选地,切换模块,还可以用于在目标芯片的状态为休眠状态的情况下,将目标芯片的状态切换为唤醒状态。
可选地,嵌入式系统任务处理装置,还可以包括:
查询模块,用于基于预设的时间间隔,查询任务队列。
本发明实施例提供的嵌入式系统任务处理装置,用于执行本发明上述嵌入式系统任务处理方法,其实施方式与本发明提供的嵌入式系统任务处理方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
该嵌入式系统任务处理装置用于前述各实施例的嵌入式系统任务处理方法。因此,在前述各实施例中的嵌入式系统任务处理方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
本发明实施例基于各任务在任务队列中的顺序,依次执行各任务,采用串行方式执行,能直接避免共享数据的同步操作,无任务间数据同步操作,效率更高。并且,在多任务同时并发额情况下,嵌入式系统的中断会十分拥挤,若不能及时完成中断操作,会出现中断溢出情况,采用本发明实施例提供的方法,能快速将中断任务缓存到任务队列中,确保中断不会溢出,在中断中占用时钟时间极小,能大大提升外设并发性能。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行嵌入式系统任务处理方法,该方法包括:在任务队列中存在任务的情况下,获取任务队列中的各任务;基于各任务在任务队列中的顺序,依次执行各任务;其中,任务在任务队列中的顺序,是基于任务的优先级确定的;任务是由定时器中断、IO中断或内部逻辑产生的。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供的电子设备中的处理器510可以调用存储器530中的逻辑指令,其实施方式与本发明提供的嵌入式系统任务处理方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的嵌入式系统任务处理方法,该方法包括:在任务队列中存在任务的情况下,获取任务队列中的各任务;基于各任务在任务队列中的顺序,依次执行各任务;其中,任务在任务队列中的顺序,是基于任务的优先级确定的;任务是由定时器中断、IO中断或内部逻辑产生的。
本发明实施例提供的计算机程序产品被执行时,实现上述嵌入式系统任务处理方法,其具体的实施方式与前述方法的实施例中记载的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的嵌入式系统任务处理方法,该方法包括:在任务队列中存在任务的情况下,获取任务队列中的各任务;基于各任务在任务队列中的顺序,依次执行各任务;其中,任务在任务队列中的顺序,是基于任务的优先级确定的;任务是由定时器中断、IO中断或内部逻辑产生的。
本发明实施例提供的非暂态计算机可读存储介质上存储的计算机程序被执行时,实现上述嵌入式系统任务处理方法,其具体的实施方式与前述方法的实施例中记载的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种嵌入式系统任务处理方法,其特征在于,包括:
在任务队列中存在任务的情况下,获取所述任务队列中的各任务;
基于所述各任务在所述任务队列中的顺序,依次执行所述各任务;
其中,所述任务在所述任务队列中的顺序,是基于所述任务的优先级确定的;所述任务是由定时器中断、IO中断或内部逻辑产生的。
2.根据权利要求1所述的嵌入式系统任务处理方法,其特征在于,所述在任务队列中存在任务的情况下,获取所述任务队列中的各任务之前,还包括:
在有任务产生的情况下,将产生的所述任务添加至所述任务队列中。
3.根据权利要求2所述的嵌入式系统任务处理方法,其特征在于,所述将产生的所述任务添加至所述任务队列中,包括:
基于产生所述任务的来源,确定所述任务的优先级;
基于所述任务的优先级,确定所述任务在所述任务队列中的位置;
基于所述任务在所述任务队列中的位置,将所述任务保存于所述任务队列中。
4.根据权利要求3所述的嵌入式系统任务处理方法,其特征在于,所述基于所述任务在所述任务队列中的位置,将所述任务保存于所述任务队列中,包括:
基于所述任务在所述任务队列中的位置,将所述任务对应的执行函数保存于所述任务队列中。
5.根据权利要求1所述的嵌入式系统任务处理方法,其特征在于,所述方法还包括:
在所述任务队列中不存在任务且目标芯片的状态为唤醒状态的情况下,将所述目标芯片的状态切换为休眠状态;所述目标芯片,用于执行所述任务。
6.根据权利要求5所述的嵌入式系统任务处理方法,其特征在于,在任务队列中存在任务的情况下,获取所述任务队列中的各任务,与所述基于所述各任务在所述任务队列中的顺序,依次执行所述各任务之间,还包括:
在所述目标芯片的状态为休眠状态的情况下,将所述目标芯片的状态切换为唤醒状态。
7.根据权利要求1至6任一项所述的嵌入式系统任务处理方法,其特征在于,所述在任务队列中存在任务的情况下,获取所述任务队列中的各任务之前,还包括:
基于预设的时间间隔,查询所述任务队列。
8.一种嵌入式系统任务处理装置,其特征在于,包括:
获取模块,用于在任务队列中存在任务的情况下,获取所述任务队列中的各任务;
执行模块,用于基于所述各任务在所述任务队列中的顺序,依次执行所述各任务;
其中,所述任务在所述任务队列中的顺序,是基于所述任务的优先级确定的;所述任务是由定时器中断、IO中断或内部逻辑产生的。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述嵌入式系统任务处理方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述嵌入式系统任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310127973.0A CN116302402A (zh) | 2023-02-16 | 2023-02-16 | 嵌入式系统任务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310127973.0A CN116302402A (zh) | 2023-02-16 | 2023-02-16 | 嵌入式系统任务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302402A true CN116302402A (zh) | 2023-06-23 |
Family
ID=86802342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310127973.0A Pending CN116302402A (zh) | 2023-02-16 | 2023-02-16 | 嵌入式系统任务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302402A (zh) |
-
2023
- 2023-02-16 CN CN202310127973.0A patent/CN116302402A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8341641B2 (en) | Task processor | |
CN107273141B (zh) | 嵌入式实时操作系统 | |
CN101916137B (zh) | 平台和处理器功率管理 | |
US9329671B2 (en) | Power-efficient inter processor communication scheduling | |
CN103019838B (zh) | 一种基于多dsp处理器平台的分布式实时多任务操作系统 | |
CN111506430B (zh) | 多任务下数据处理的方法、装置及电子设备 | |
CN103412755A (zh) | 一种硬件实时操作系统 | |
US8132171B2 (en) | Method of controlling thread access to a synchronization object | |
CN101470636B (zh) | 一种消息的读写方法和装置 | |
US6907606B1 (en) | Method for implementing event transfer system of real time operating system | |
CN114610472B (zh) | 异构计算中多进程管理方法及计算设备 | |
CN115361451A (zh) | 一种网络通信并行处理方法及系统 | |
WO2015135468A1 (en) | Systems and methods for messaging-based fine granularity system-on-a-chip power gating | |
CN106598193B (zh) | 一种功耗控制方法及装置 | |
CN113608845A (zh) | 数据处理方法及装置 | |
CN116302402A (zh) | 嵌入式系统任务处理方法及装置 | |
CN115756143B (zh) | 数据包处理的节能方法、装置、计算机设备和存储介质 | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
CN114268670B (zh) | 基于时间触发的以太网异步消息处理系统及方法 | |
CN111679730B (zh) | 基于FreeRTOS的处理器状态控制方法和装置 | |
CN104021041A (zh) | 一种多任务操作环境状态的计算机调度方法 | |
JP2005519393A (ja) | 仮想直接メモリ・アクセスのための方法及び装置 | |
CN110489089B (zh) | 基于中断管理框架的嵌入式系统低功耗控制方法及系统 | |
JP2010049700A (ja) | タスク処理装置 | |
CN111459630A (zh) | 采用硬件多线程机制的网络处理器 |
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 |