CN111400078A - 一种嵌入式系统中处理任务的方法及装置 - Google Patents

一种嵌入式系统中处理任务的方法及装置 Download PDF

Info

Publication number
CN111400078A
CN111400078A CN202010156633.7A CN202010156633A CN111400078A CN 111400078 A CN111400078 A CN 111400078A CN 202010156633 A CN202010156633 A CN 202010156633A CN 111400078 A CN111400078 A CN 111400078A
Authority
CN
China
Prior art keywords
function
registration function
embedded system
application layer
task
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.)
Granted
Application number
CN202010156633.7A
Other languages
English (en)
Other versions
CN111400078B (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.)
Guangzhou Roadpassion Electronic Technology Co ltd
Original Assignee
Guangzhou Roadpassion Electronic Technology Co ltd
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 Guangzhou Roadpassion Electronic Technology Co ltd filed Critical Guangzhou Roadpassion Electronic Technology Co ltd
Priority to CN202010156633.7A priority Critical patent/CN111400078B/zh
Publication of CN111400078A publication Critical patent/CN111400078A/zh
Application granted granted Critical
Publication of CN111400078B publication Critical patent/CN111400078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种嵌入式系统中处理任务的方法及装置,该方法包括所述嵌入式系统的底层提供至少一个注册函数接口和至少一个注册函数,所述注册函数接口与所述注册函数相对应;所述底层检测是否发生第一事件;当发生所述第一事件,确定所述第一事件对应的所述注册函数接口,通过所述注册函数接口确定与该注册函数接口对应的注册函数;判断该注册函数是否指向所述嵌入式系统的应用层的任务函数;如果是,调用所述应用层的任务函数。本申请中,在一些特殊情况例如中断发生时,底层调用应用层的函数,这样应用层能够在不关心中断的情况下,仍然能够处理在中断时需要处理的业务逻辑,满足了实际应用的需要。

Description

一种嵌入式系统中处理任务的方法及装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种嵌入式系统中处理任务的方法及装置。
背景技术
嵌入式系统(Embedded system)是一种以应用为中心,以计算机技术为基础,可以适应不同应用对功能、可靠性、成本、体积、功耗等方面的要求,集可配置,可裁减的软、硬件于一体的专用计算机系统。它具有很强的灵活性,主要包括嵌入式硬件平台、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件等。
在嵌入式系统开发中,通常会把底层硬件驱动的开发和应用层软件的开发分开,对于底层来说,只需要知道如何操作硬件,把操作硬件的方法打包成一个库,该库中包含了所有关于硬件的操作接口。对于应用层,只需要调用底层硬件库提供的接口,就可以对硬件进行操作,不需要关心硬件是如何进行数据收发的,不需要关心硬件的操作时序,这样大大减少了应用层开发的工作,只需要处理好业务逻辑,调用相应的接口进行数据交互,硬件驱动层也只专注硬件的操作。但在一些情况下,例如定时器中断,上述方法还不能满足实际应用的需要。
发明内容
为了解决目前嵌入式系统中,在一些情况下,例如定时器中断,底层和应用层还不能满足实际应用需要的问题,本发明实施例提供了一种嵌入式系统中处理任务的方法及装置,在一些特殊情况例如中断发生时,底层调用应用层的函数,这样应用层能够在不关心中断的情况下,仍然能够处理在中断时需要处理的业务逻辑,满足了实际应用的需要。
第一方面,本发明实施例提供了一种嵌入式系统中处理任务的方法,包括:所述嵌入式系统的底层提供至少一个注册函数接口和至少一个注册函数,所述注册函数接口与所述注册函数相对应;所述底层检测是否发生第一事件;当发生所述第一事件,确定所述第一事件对应的所述注册函数接口,通过所述注册函数接口确定与该注册函数接口对应的注册函数;判断该注册函数是否指向所述嵌入式系统的应用层的任务函数;如果是,调用所述应用层的任务函数。
其中,还包括:监控所述应用层的任务函数的执行状态;当所述任务函数执行出现异常时,记录发生异常时的信息和调用所述任务函数的注册函数信息。
其中,还包括:如果所述注册函数未指向所述嵌入式系统的应用层的任务函数,清除第一事件标志,退出所述注册函数。
其中,所述第一事件包括定时器中断或者GPIO口的跳变沿到达。
其中,所述判断该注册函数是否指向所述嵌入式系统的应用层的任务函数,包括:判断该注册函数指针是否指向所述嵌入式系统的应用层的任务函数。
第二方面,本发明实施例提供了一种嵌入式系统中处理任务的装置,包括底层和应用层;所述嵌入式系统的底层用于提供至少一个注册函数接口和至少一个注册函数,所述注册函数接口与所述注册函数相对应;所述底层还用于检测是否发生第一事件;所述底层还用于当发生所述第一事件,确定所述第一事件对应的所述注册函数接口,通过所述注册函数接口确定与该注册函数接口对应的注册函数;所述底层还用于判断该注册函数是否指向所述嵌入式系统的应用层的任务函数;所述底层还用于:如果是,调用所述应用层的任务函数。
其中,所述应用层用于:监控所述应用层的任务函数的执行状态;当所述任务函数执行出现异常时,记录发生异常时的信息和调用所述任务函数的注册函数信息。
其中,所述底层还用于:如果所述注册函数未指向所述嵌入式系统的应用层的任务函数,清除第一事件标志,退出所述注册函数。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
第四方面,本发明实施例提供了一种电子设备,包括存储单元、处理单元及存储在存储单元上并可在处理单元上运行的计算机程序,所述处理单元执行所述程序时实现上述任一项所述方法的步骤。
本发明实施例嵌入式系统中处理任务的方法及装置具有如下有益效果:
本发明实施例的方法中,嵌入式系统的底层提供至少一个注册函数接口和至少一个注册函数,注册函数接口与注册函数相对应;底层检测是否发生第一事件,当发生第一事件,确定第一事件对应的注册函数接口,通过注册函数接口确定与该注册函数接口对应的注册函数;判断该注册函数是否指向嵌入式系统的应用层的任务函数;如果是,调用应用层的任务函数,从而实现了当发生第一事件时,底层调用应用层的任务函数,使得应用层能够在不关心第一事件的情况下,仍然能够处理在第一事件发生时需要处理的业务逻辑,满足了实际应用的需要。
附图说明
图1为本发明实施例嵌入式系统中处理任务的方法流程示意图;
图2为本发明实施例嵌入式系统中处理任务的方法另一种流程示意图;
图3为本发明实施例嵌入式系统中处理任务的装置结构示意图。
具体实施方式
下面结合附图和实施例对本申请进行进一步的介绍。
在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本发明的多个实施例,不同实施例之间可以替换或者合并组合,因此本申请也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征A、B、C,另一个实施例包含特征B、D,那么本申请也应视为包括含有A、B、C、D的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。
下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本申请内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。
嵌入式系统(Embedded system)包括底层和应用层,其中,底层包括与硬件相关的驱动程序,例如GPIO(General-Purpose Input Output,通用输入输出)驱动程序、USART(Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步/异步接收/发送器)驱动程序、SPI(Serial Peripheral Interface,串行外设接口)驱动程序、CAN(Controller Area Network,控制器局域网络)驱动程序等等。底层提供各种接口,例如GPIO-API(Application Programming Interface,应用程序接口)、USART-API、SPI-API、CAN-API等等。嵌入式系统的应用层主要实现业务的相关处理,通过调用底层提供的接口实现对硬件的操作,完成业务处理。
在一些小型的嵌入式开发中,往往会把底层硬件驱动的开发和应用层软件开发分开,对于底层硬件来说,只需要知道如何操作硬件,把操作硬件的方法打包成一个库,该库中包含了所有关于硬件的操作接口。对于应用层,只需要调用底层硬件库提供的接口,就可以对硬件进行操作,不需要关心硬件是如何进行数据收发的,不需要关心硬件的操作时序,这样大大减少了应用层开发的工作,只需要处理好业务逻辑,调用相应的接口进行数据交互,硬件驱动层也只专注硬件的操作。而底层驱动硬件库往往只是提供了硬件操作的接口,对于某些情况下,不能满足应用层需要的操作,应用层只能调用封装好的库进行数据收发,而不能把自己的处理逻辑,告诉硬件层,在发生特殊情况的时候,帮我处理这些业务逻辑。也就是说,底层库给应用层提供API,应用层只有调用API的能力,没有向底层注册任务函数的能力,这种情况下,即底层库中提供了什么,应用层就使用什么,无法处理特殊的情况。
下面以无线解码举例说明:
无线解码对时间准确性的要求非常高,一般都是微秒级别的,当跳变沿来的时候,需要记录当前电平的时间,用于协议的解析,当电平的时间在某个时间段的时候表示0,某个时间段表示1,最终解析成对应的指令。而在嵌入式系统中,对实时性要求较高,而解码工作也是需要一定的时间,如果数据发送的较多,那么解码时间就会比较长,可能达到几百毫秒,如果让解码任务阻塞了整个系统的任务调度,就失去了嵌入式系统的实时性,而如果让任务调度自己调度解码任务,对解码的时间要求也达不到,这个时候就会用到中断,在跳变沿来的时候,进入中断,只需要记录当前的电平时间,处理的时间非常的短,处理完之后就退出中断,让其他任务继续执行。而对于应用层来说,不需要知道中断是如何进行的,只需要知道在中断来的时候,做哪些逻辑处理,得到最终的结果,而底层库也不清楚应用层在中断来的时候需要做什么逻辑处理,而如果底层库可以提供一个接口,用来注册应用层处理的逻辑函数,这样,应用层便可以在不需要关心中断的情况下,做想在中断时候做的事情,而底层硬件库只需要在中断发生时,调用应用层的函数,处理完之后,把相应的中断标志清除即可。
基于以上分析,本发明实施例的嵌入式系统中处理任务的方法,包括步骤:嵌入式系统的底层提供至少一个注册函数接口和至少一个注册函数,注册函数接口与注册函数相对应;底层检测是否发生第一事件,当发生第一事件,确定第一事件对应的注册函数接口,通过注册函数接口确定与该注册函数接口对应的注册函数;判断该注册函数是否指向嵌入式系统的应用层的任务函数;如果是,调用应用层的任务函数。
本发明实施例嵌入式系统中处理任务的方法实现了当发生第一事件时,底层调用应用层的任务函数,使得应用层能够在不关心第一事件的情况下,仍然能够处理在第一事件发生时需要处理的业务逻辑,满足了实际应用的需要。
图1为本发明实施例嵌入式系统中处理任务的方法流程示意图,如图1所示,本实施例嵌入式系统中处理任务的方法包括步骤:S101,嵌入式系统的底层提供至少一个注册函数接口和至少一个注册函数,注册函数接口与注册函数相对应;S103,底层检测是否发生第一事件;S105,当发生第一事件,确定第一事件对应的注册函数接口,通过注册函数接口确定与该注册函数接口对应的注册函数;S107,判断该注册函数是否指向嵌入式系统的应用层的任务函数;S109,如果是,调用应用层的任务函数。下面介绍每一步骤。
S101,嵌入式系统的底层提供至少一个注册函数接口和至少一个注册函数,注册函数接口与注册函数相对应。
函数通常包括以下部分:名称:每个函数都必须有一个名称。形参列表:调用函数的程序模块可以向其发送数据。形参列表是保存传递给函数的值的变量列表。如果没有值传递给函数,则其形参列表为空。主体:函数的主体是处理函数正在执行的任务的一组语句。这些语句包含在一组大括号中。返回类型:函数可以将值发送回调用它的程序模块。返回类型是要发送回的值的数据类型。
当程序中某个功能不定时,就用函数指针代表该功能,使用时,需要函数实现什么功能,则将需要实现功能的函数赋值给函数指针,函数指针出现的地方就能按挂接的回调函数(需要的功能函数)执行,而挂接赋值的过程可以用注册函数实现。本申请中,注册函数例如为应用层在底层注册的函数,底层通过该注册的函数调用应用层的逻辑函数。
本申请嵌入式系统的底层提供至少一个注册函数接口和至少一个注册函数,注册函数接口、注册函数可以为预先定义的函数,注册函数接口与注册函数相对应,通过注册函数接口能够调用注册函数。例如底层提供第一注册函数接口、第二注册函数接口、第三注册函数接口和第一注册函数、第二注册函数、第三注册函数,第一注册函数接口与第一注册函数对应,第二注册函数接口与第二注册函数对应,第三注册函数接口与第三注册函数对应。
S103,底层检测是否发生第一事件。
在一些实施例中,第一事件包括定时器中断或者GPIO口的跳变沿到达。CPU在处理某一事件A时,发生的另外某一事件B请求CPU去处理(产生了中断),随后CPU暂时中断当前正在执行的任务,去对事件B进行处理,CPU处理完事件B后再返回之前中断的位置继续执行原来的事件A,这一过程总称为中断。定时器中断例如为单片机中的定时器溢出而申请的中断。
跳变沿例如包括信号的上升沿(电平由0变1)或下降沿(电平由1变0),跳变沿也能够触发中断。当信号状态变化时就产生跳变沿。如果信号状态由0变化到1,则产生正跳沿(或上升沿、前沿);如果信号状态由1变化到0,则产生负跳沿(或下降沿,后沿)。可以利用以下方法检测跳变沿:在每个扫描周期中将信号状态与其在前一个扫描周期的状态进行比较,若不同则表明有一个跳变沿。
S105,当发生第一事件,确定第一事件对应的注册函数接口,通过注册函数接口确定与该注册函数接口对应的注册函数。
例如,当发生定时器中断或者GPIO口的跳变沿到达,确定第一事件对应的注册函数接口,通过注册函数接口确定与该注册函数接口对应的注册函数,第一事件、注册函数接口、注册函数之间的对应关系可以预先设置。
S107,判断该注册函数是否指向嵌入式系统的应用层的任务函数。
如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就为函数指针。函数指针是指向函数的指针,本质是指针变量。本申请中例如可以将应用层任务函数的地址赋值给该注册函数指针,判断该注册函数指针是否指向嵌入式系统的应用层的任务函数,如果注册函数指针指向应用层的任务函数,说明应用层的任务函数在底层进行了注册,执行步骤S109。
S109,如果注册函数指针指向应用层的任务函数,调用应用层的任务函数。
如果注册函数指针指向应用层的任务函数,说明应用层的任务函数在底层进行了注册,那么调用应用层的任务函数,执行该任务函数以处理业务逻辑,这样实现了当发生第一事件时,底层调用应用层的任务函数,应用层能够在不关心第一事件的情况下,仍然能够处理在第一事件发生时需要处理的业务逻辑,满足了实际应用的需要。
图2为本发明实施例嵌入式系统中处理任务的方法另一种流程示意图,如图2所示,本申请还包括S111,监控应用层的任务函数的执行状态,当任务函数执行出现异常时,记录发生异常时的信息和调用任务函数的注册函数信息。本步骤中,当任务函数执行出现异常时,不仅记录发生异常时的信息例如错误代码等信息,还记录调用任务函数的注册函数信息,也就是记录底层和应用层中关于该任务函数的信息,这样当应用层的业务逻辑处理出现问题或者底层出现问题时,便于开发者查找、确定问题。在一些实施例中,底层库在提供注册接口的同时,对该注册接口有详细的说明,这样如果发生问题,也便于开发者找问题。
如图2所示,本申请还包括步骤113,如果注册函数未指向嵌入式系统的应用层的任务函数,清除第一事件标志,退出注册函数。如果注册函数未指向嵌入式系统的应用层的任务函数,例如注册函数指针为空,说明应用层任务函数没有向底层注册,清除第一事件标志,退出注册函数。
软硬件的分离,对于硬件库,不应该只提供对于硬件操作的接口,往往在需要处理特殊情况的时候,应用层应该有可以向底层硬件库进行注册函数的能力,中断只是一个例子,在很多实际开发过程中,有很多其他的情况下,需要用到注册函数接口的例子。本申请底层库中提供了函数注册的接口,底层库还是只管理硬件相关的操作,无需关心在新增某个功能的时候,需要做的业务逻辑处理,只需要保证硬件正确提供给应用层操作,而应用层也可以更灵活的去实现自己的功能模块。这样也体现了以下几个好处:1.每一层之间相对独立,只专注于每一层设计的工作。2.提高灵活性,可以应对不同的情况。3.能促进标准化工作,每一层之间有自己明确的目标。4.结构上可以分割,应用层无需理会硬件层的操作,硬件层不需要知道业务逻辑。
图3为本发明实施例嵌入式系统中处理任务的装置结构示意图,如图3所示,本申请还提供一种嵌入式系统中处理任务的装置,包括底层202和应用层201;嵌入式系统的底层202用于提供至少一个注册函数接口和至少一个注册函数,注册函数接口与注册函数相对应;底层202还用于检测是否发生第一事件,底层202还用于当发生第一事件,确定第一事件对应的注册函数接口,通过注册函数接口确定与该注册函数接口对应的注册函数;底层202还用于判断该注册函数是否指向嵌入式系统的应用层201的任务函数;底层202还用于:如果是,调用应用层201的任务函数。
在一些实施例中,应用层201用于:监控应用层的任务函数的执行状态;当任务函数执行出现异常时,记录发生异常时的信息和调用任务函数的注册函数信息。
在一些实施例中,底层202还用于:如果注册函数未指向嵌入式系统的应用层的任务函数,清除第一事件标志,退出注册函数。
本申请中,嵌入式系统中处理任务的装置实施例与嵌入式系统中处理任务的方法实施例基本相似,相关之处请参考方法实施例的介绍。
本领域的技术人员可以清楚地了解到本发明实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是FPGA(Field-Programmable Gate Array,现场可编程门阵列)、IC(Integrated Circuit,集成电路)等。
本发明实施例的各处理单元和/或模块,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施例所述的功能的软件而实现。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述嵌入式系统中处理任务的方法步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
本发明实施例还提供了一种电子设备,包括存储单元、处理单元及存储在存储单元上并可在处理单元上运行的计算机程序,处理单元执行程序时实现上述嵌入式系统中处理任务的方法步骤。在本发明实施例中,处理单元和存储单元可以集成在一个器件中,也可以位于两个器件中。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上介绍仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种嵌入式系统中处理任务的方法,其特征在于,包括步骤:
所述嵌入式系统的底层提供至少一个注册函数接口和至少一个注册函数,所述注册函数接口与所述注册函数相对应;
所述底层检测是否发生第一事件;
当发生所述第一事件,确定所述第一事件对应的所述注册函数接口,通过所述注册函数接口确定与该注册函数接口对应的注册函数;
判断该注册函数是否指向所述嵌入式系统的应用层的任务函数;
如果是,调用所述应用层的任务函数。
2.根据权利要求1所述嵌入式系统中处理任务的方法,其特征在于,还包括:
监控所述应用层的任务函数的执行状态;
当所述任务函数执行出现异常时,记录发生异常时的信息和调用所述任务函数的注册函数信息。
3.根据权利要求1或2所述嵌入式系统中处理任务的方法,其特征在于,还包括:
如果所述注册函数未指向所述嵌入式系统的应用层的任务函数,清除第一事件标志,退出所述注册函数。
4.根据权利要求1或2所述嵌入式系统中处理任务的方法,其特征在于,所述第一事件包括定时器中断或者GPIO口的跳变沿到达。
5.根据权利要求1或2所述的方法,其特征在于,所述判断该注册函数是否指向所述嵌入式系统的应用层的任务函数,包括:
判断该注册函数指针是否指向所述嵌入式系统的应用层的任务函数。
6.一种嵌入式系统中处理任务的装置,其特征在于,包括底层和应用层;
所述嵌入式系统的底层用于提供至少一个注册函数接口和至少一个注册函数,所述注册函数接口与所述注册函数相对应;
所述底层还用于检测是否发生第一事件;
所述底层还用于当发生所述第一事件,确定所述第一事件对应的所述注册函数接口,通过所述注册函数接口确定与该注册函数接口对应的注册函数;
所述底层还用于判断该注册函数是否指向所述嵌入式系统的应用层的任务函数;
所述底层还用于:如果是,调用所述应用层的任务函数。
7.根据权利要求6所述嵌入式系统中处理任务的装置,其特征在于,所述应用层用于:监控所述应用层的任务函数的执行状态;当所述任务函数执行出现异常时,记录发生异常时的信息和调用所述任务函数的注册函数信息。
8.根据权利要求6或7所述嵌入式系统中处理任务的装置,其特征在于,所述底层还用于:如果所述注册函数未指向所述嵌入式系统的应用层的任务函数,清除第一事件标志,退出所述注册函数。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现所述权利要求1-5中任一项所述方法的步骤。
10.一种电子设备,包括存储单元、处理单元及存储在存储单元上并可在处理单元上运行的计算机程序,其特征在于,所述处理单元执行所述程序时实现所述权利要求1-5中任一项所述方法的步骤。
CN202010156633.7A 2020-03-09 2020-03-09 一种嵌入式系统中处理任务的方法及装置 Active CN111400078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010156633.7A CN111400078B (zh) 2020-03-09 2020-03-09 一种嵌入式系统中处理任务的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010156633.7A CN111400078B (zh) 2020-03-09 2020-03-09 一种嵌入式系统中处理任务的方法及装置

Publications (2)

Publication Number Publication Date
CN111400078A true CN111400078A (zh) 2020-07-10
CN111400078B CN111400078B (zh) 2023-08-25

Family

ID=71430579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010156633.7A Active CN111400078B (zh) 2020-03-09 2020-03-09 一种嵌入式系统中处理任务的方法及装置

Country Status (1)

Country Link
CN (1) CN111400078B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200521842A (en) * 2003-12-19 2005-07-01 Kinpo Elect Inc Method for loading interrupt service
CN1855034A (zh) * 2005-04-28 2006-11-01 上海贝尔阿尔卡特股份有限公司 一种实现与设备对象无关的dohm软件接口
CN101140550A (zh) * 2007-08-22 2008-03-12 中兴通讯股份有限公司 一种嵌入式实时系统中断处理装置及方法
CN103294544A (zh) * 2012-02-27 2013-09-11 展讯通信(上海)有限公司 嵌入式系统及其中断处理方法与装置
CN103870326A (zh) * 2012-12-11 2014-06-18 厦门雅迅网络股份有限公司 一种将中断处理程序底半部搬移到应用层的方法及应用
US20170329659A1 (en) * 2014-12-03 2017-11-16 Grg Banking Equipment Co., Ltd. Linux system-based cen/xfs standard architecture and implementation method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200521842A (en) * 2003-12-19 2005-07-01 Kinpo Elect Inc Method for loading interrupt service
CN1855034A (zh) * 2005-04-28 2006-11-01 上海贝尔阿尔卡特股份有限公司 一种实现与设备对象无关的dohm软件接口
CN101140550A (zh) * 2007-08-22 2008-03-12 中兴通讯股份有限公司 一种嵌入式实时系统中断处理装置及方法
CN103294544A (zh) * 2012-02-27 2013-09-11 展讯通信(上海)有限公司 嵌入式系统及其中断处理方法与装置
CN103870326A (zh) * 2012-12-11 2014-06-18 厦门雅迅网络股份有限公司 一种将中断处理程序底半部搬移到应用层的方法及应用
US20170329659A1 (en) * 2014-12-03 2017-11-16 Grg Banking Equipment Co., Ltd. Linux system-based cen/xfs standard architecture and implementation method

Also Published As

Publication number Publication date
CN111400078B (zh) 2023-08-25

Similar Documents

Publication Publication Date Title
CN102804134B (zh) 处理异常事件的装置和方法
EP2431876B1 (en) Method and device for exception handling in embedded system
US8528006B1 (en) Method and apparatus for performing real-time commands in a non real-time operating system environment
CN101025698A (zh) 强制性地终止输入/输出操作阻止的线程的设备和方法
CN110597531A (zh) 分布式的模块升级方法、装置及存储介质
US20020099893A1 (en) System and method for the handling of system management interrupts in a multiprocessor computer system
US20040098722A1 (en) System, method, and computer program product for operating-system task management
CN112200505A (zh) 跨业务系统的流程监控装置、方法及相应设备和存储介质
CN105005526A (zh) 一种信息提醒方法及移动终端
CN113760332A (zh) 软件升级方法和电子设备
CN107003828B (zh) 图形指令的仪器化
JP2008513899A (ja) コンピュータシステム上でコンピュータプログラムを処理する方法
CN111400078A (zh) 一种嵌入式系统中处理任务的方法及装置
CN114911538A (zh) 一种运行系统的启动方法及计算设备
CN111797016B (zh) 应用程序的测试方法、设备、存储介质及装置
EP3159756A1 (en) Method of debugging a plc program by using a general-purpose microprocessor
CN112035368A (zh) 自动化软件测试方法、装置、电子设备、存储介质
JP6555908B2 (ja) 情報処理装置及びその制御方法、プログラム
CN111475342B (zh) 用于电子终端的应用切换方法和应用切换装置
CN112650687B (zh) 引擎调度动作执行优先级的测试方法、装置、设备及介质
CN110955507B (zh) 基于vxWorks系统的多任务访问同一IIC总线的方法
CN114911703A (zh) 一种实时运行系统的检测方法及计算设备
CN115756665A (zh) 一种tbox的业务执行方法、装置、设备、车辆及介质
CN114911658A (zh) 一种实时运行系统的检测方法及计算设备
JP2008146148A (ja) 計算機システム

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
GR01 Patent grant
GR01 Patent grant