CN103412755A - 一种硬件实时操作系统 - Google Patents

一种硬件实时操作系统 Download PDF

Info

Publication number
CN103412755A
CN103412755A CN2013103576348A CN201310357634A CN103412755A CN 103412755 A CN103412755 A CN 103412755A CN 2013103576348 A CN2013103576348 A CN 2013103576348A CN 201310357634 A CN201310357634 A CN 201310357634A CN 103412755 A CN103412755 A CN 103412755A
Authority
CN
China
Prior art keywords
task
arm processor
register
semaphore
operating 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
Application number
CN2013103576348A
Other languages
English (en)
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.)
DONGYUAN ELECTRONIC Co Ltd SHENZHEN
Original Assignee
DONGYUAN ELECTRONIC Co Ltd SHENZHEN
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 DONGYUAN ELECTRONIC Co Ltd SHENZHEN filed Critical DONGYUAN ELECTRONIC Co Ltd SHENZHEN
Priority to CN2013103576348A priority Critical patent/CN103412755A/zh
Publication of CN103412755A publication Critical patent/CN103412755A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

本发明公开了一种硬件实时操作系统,该硬件实时操作系统包括:通过FSMC总线连接的ARM处理器和FPGA,其中,所述FPGA,用于实现抢占式调度器及基于所述抢占式调度器的任务管理和信号量、邮箱、消息队列、互斥信号量、事件标志组的管理;所述ARM处理器,用于执行任务以及实现任务的切换。实施本发明的技术方案,由于FPGA独立于ARM处理器运行,不占用ARM处理器的处理时间,所节省的时间用于执行任务程序,成功降低ARM处理器的系统开销,特别是在需要任务快速切换的应用中,有效提供ARM处理器的利用率。因此,该硬件实现的操作系统提高了任务集合的可调度性和实时性。

Description

一种硬件实时操作系统
技术领域
本发明涉及操作系统领域,尤其是涉及一种硬件实时操作系统。
背景技术
嵌入式操作系统在目前的嵌入式应用中越来越广泛,尤其在功能复杂,系统庞大的应用中显的愈来愈重要。首先,嵌入式操作系统提高了系统的可靠性;其次,嵌入式实时操作系统提高了开发效率,缩短了开发周期。
对于实时性要求较高的场合,目前,基于软件实现的RTOS(Real-timeoperating system,实时操作系统)单纯依靠改进算法已不能使其实时性有更大的提高,通过提高处理器的速度亦达不到理想的效果,因为处理器的速度已经达到了一定的高度。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述基于软件实现的RTOS实时性不高的缺陷,提供一种实时性高的硬件实时操作系统。
本发明解决其技术问题所采用的技术方案是:构造一种硬件实时操作系统,包括:通过FSMC总线连接的ARM处理器和FPGA,其中,
所述FPGA,用于实现抢占式调度器及基于所述抢占式调度器的任务管理和信号量、邮箱、消息队列、互斥信号量、事件标志组的管理;
所述ARM处理器,用于执行任务以及实现任务的切换。
在本发明所述的硬件实时操作系统中,所述FPGA包括:
分别与任务管理、信号量、邮箱、消息队列、互斥信号量、事件标志组对应的多个寄存器;
FSMC控制器,用于从所述ARM处理器接收初始化数据或向所述ARM处理器发送最高优先级任务的ID号;
协处理器,用于将所接收的初始化数据分别分配给相应的寄存器和优先编码器,以对寄存器进行配置和对优先编码器进行初始化;还用于将优先编码器所查找到的最高优先级任务的ID号发送至所述FSMC控制器;
优先编码器,用于在初始化后,分别在信号量、邮箱、消息队列、互斥信号量、事件标志组等待列表中查找最高优先级任务的ID号;
定时器,用于为所述优先编码器提供时钟节拍。
在本发明所述的硬件实时操作系统中,所述ARM处理器在对任务寄存器进行配置时,所发送的初始化数据包括任务延时时间的设置、任务挂起的设置和任务恢复的设置。
在本发明所述的硬件实时操作系统中,所述ARM处理器在对信号量寄存器进行配置时,所发送的初始化数据包括信号量ID号、等待信号量事件列表、信号量计数。
在本发明所述的硬件实时操作系统中,所述ARM处理器在对消息邮箱寄存器进行配置时,所发送的初始化数据包括消息邮箱ID号、等待消息邮箱事件列表。
在本发明所述的硬件实时操作系统中,所述ARM处理器在对消息队列寄存器进行配置时,所发送的初始化数据包括消息队列ID号、等待消息邮箱事件列表。
在本发明所述的硬件实时操作系统中,所述ARM处理器在对事件标志组寄存器进行配置时,所发送的初始化数据包括事件标志组ID号、等待事件标志组列表。
在本发明所述的硬件实时操作系统中,所述ARM处理器在对互斥信号量寄存器进行配置时,所发送的初始化数据包括互斥信号量ID号、等待互斥信号量事件列表。
实施本发明的技术方案,由于硬件电路(FPGA)独立于ARM处理器运行,不占用ARM处理器的处理时间,所节省的时间用于执行任务程序,成功降低ARM处理器的系统开销,特别是在需要任务快速切换的应用中,有效提供ARM处理器的利用率。因此,该硬件实现的操作系统提高了任务集合的可调度性和实时性,进而,可成功运行UCGUI(嵌入式应用中的图形支持系统)的多任务,从这点可以说明,用这个硬件实时操作系统可以代替传统的小型嵌入式实时系统。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明硬件实时操作系统实施例一的逻辑图;
图2是本发明硬件实时操作系统中FPGA实施例一的逻辑图。
具体实施方式
图1是本发明硬件实时操作系统实施例一的逻辑图,该硬件实时操作系统包括通过FSMC(Flexible static memory controller,可变静态存储控制器)总线连接的ARM处理器10和FPGA20,其中,FPGA20用于实现抢占式调度器及基于所述抢占式调度器的任务管理和信号量、邮箱、消息队列、互斥信号量、事件标志组的管理;ARM处理器10用于执行任务以及实现任务的切换。
而且,在该实施例中,ARM处理器10采用ST公司型号为STM32F103VET6的处理器,FPGA20采用Altera公司型号为EP4CE6E22C8的FPGA。FSMC支持多种存储器的连接,比如SRAM、NAND Flash、NOR Flash和PSRAM,这里和FPGA的通信采用类似SRAM的通讯时序。
结合型号为STM32F103VET6的ARM处理器10手册中读操作的时序图,FPGA20端在片选信号(CS FSMC-NEx)是低电平,读信号(RD FSMC-NOE)也是低电平的情况下完成对FPGA20中数据的读操作,下面的程序就是按照这种方法设计的。
FPGA读操作程序设计
Figure BDA0000367622060000041
Figure BDA0000367622060000051
结合型号为STM32F103VET6的ARM处理器10手册中写操作的时序图,FPGA20端在片选信号(CS FSMC-NEx)是低电平,写信号(WR FSMC-NWE)也是低电平的情况下完成对FPGA中数据的读操作,下面的程序就是按照这种方法设计的。
FPGA写操作程序设计
Figure BDA0000367622060000052
由于连接中数据总线(DataBus FSMC-D)有16根,地址总线(AddressBusFSMC-A)只有3根,这样只能访问FPGA20中8个16位的数据空间,为了访问更多的数据空间,这里采用类似串行通信的方法,设置每个ID号可以访问8个16位的数据空间。另外,时钟节拍是由FPGA20产生,每毫秒产生一次,ARM处理器10接收到FPGA10发出的外部中断请求(Task IRQ)后,从外部中断服务程序中读取当前需要执行的最高优先级任务。
举例说明:下面的操作方法可以完成对HW_ID=0的时候,8个16存储空间的数据写操作:
HW_ID=0;
HW_DELAY=111;
HW_PERIOD=0;
HW_GPT=144;
HW_AOT=155;
HW_BACKUP=166;
HW_OVERRUN=177;
HW_CONTROL=1;
下面的操作方法可以完成对HW_ID=0的时候,8个16存储空间的数据写操作:
HW_ID=0;
Data=HW_ID;
Data=HW_DELAY;
Data=HW_PERIOD;
Data=HW_GPT;
Data=HW_AOT;
Data=HW_BACKUP;
Data=HW_OVERRUN;
Data=HW_CONTROL。
图2是本发明硬件实时操作系统中FPGA实施例一的逻辑图,该FPGA20包括FSMC控制器21、协处理器22、优先编码器23、定时器24和多个寄存器。在该实施例中,每个任务管理(Task Manager)、信号量(Semaphore)、邮箱(Mailboxes)、消息队列(Message queue)、互斥信号量(Mutex)、事件标志组(Event flags)均对应8个寄存器。该硬件实时操作系统可支持创建8个任务、8个信号量、8个消息邮箱、8个消息队列、8个互斥信号量、8个事件标志组。如果要想支持更多的组件和任务,只需在FPGA上做扩展即可。另外,FSMC控制器21用于从ARM处理器接收初始化数据或向ARM处理器发送最高优先级任务的ID号。协处理器22用于将所接收的初始化数据分别分配给相应的寄存器和优先编码器,以对寄存器进行配置和对优先编码器23进行初始化,还用于将优先编码器23所查找到的最高优先级任务的ID号发送至FSMC控制器。优先编码器23用于在初始化后,分别在信号量、邮箱、消息队列、互斥信号量、事件标志组等待列表中查找最高优先级任务的ID号。定时器24用于为优先编码器23提供时钟节拍。
下面详细说明每个部分的实现:
(1)抢占式调度器
实现抢占式调度器要抓住三个关键点:第一、当一个任务提交信号量,发送消息给一个高优先级的任务,当前的任务就会被停止,去执行高优先级的任务。第二、每个时钟节拍中断,如果有高优先级的任务就绪,高优先级任务会抢占低优先级的任务。第三、当ISR(Interrupt Service Routines,中断服务程序)提交信号量或发送消息给一个更高优先级的任务,中断返回的时候,不会返回到当前任务,而是返回到高优先级任务。
关于FPGA,其实现抢占式调度器的一个核心工作就是如何快速的从任务就绪列表里面查找需要执行的最高优先级任务,这里采用优先级编码器来实现,方法下所示:
Figure BDA0000367622060000081
这里要特别注意一点,空闲任务是永远就绪的,没有其他任务执行的时候,就执行空闲任务,空闲任务是最低优先级。
关于ARM处理器,其只需做好以下两点:1)任务级任务切换,这里主要是实现高优先级向低优先级的任务切换;2)中断级任务切换,在中断退出的时候判断是否有更高优先级的任务就绪如果有更高优先级的任务就绪,就切换到高优先级任务。
(2)任务管理
任务管理部分主要实现任务的延时时间设置、任务挂起、任务恢复三个功能。每个任务有8个可以配置使用的寄存器,其中,
Task_REG1保留
Task_REG2任务延迟时间设置
=0表示将任务加入到就绪列表
=0xffff表示将任务从就绪列表删除
=其它表示要设置的任务延迟时间
Task_REG3任务的ID号,0-7用于八个任务的ID,读取该寄存器可以得到当前就绪的最高优先级任务
Task_REG4保留
Task_REG5保留
Task_REG6保留
Task_REG7保留
Task_REG8启动任务执行
=1启动任务的执行
=其它禁止此任务
HW_REG3读取该寄存器可以得到当前需要执行的最高优先级任务。
关于FPGA,其通过设置Task_REG8=1将启动该任务,这里每个任务在FPGA上的实现,都是一个单独的进程,这样的话有助于充分发挥硬件实时系统的性能,而不是将所有的任务放到一个进程里面实现。
always(posedge clk)
begin
任务一;
任务二;
End
always(posedge clk)begin
任务一;
end
always(posedge clk)begin
任务二;
end
关于ARM处理器,其只需简单的设置寄存器,就可完成对任务的设置。配置了任务寄存器以后,FPGA上相应的任务管理就会按照配置方式执行,ARM端读取HW_REG3寄存器就得到当前需要执行的最高优先级任务。
●设置任务的延迟时间
Task_REG3=0;//设置任务0
Task_REG3=100;//设置任务延迟时间
●任务挂起,也就是将任务从就绪列表删除
Task_REG3=0;//设置任务0
Task_REG3=0xffff;//将任务挂起
●任务恢复,
Task_REG3=0;//设置任务0
Task_REG3=0;//任务恢复
(3)信号量
信号量是为了给共享资源建立一个标志,该标志表示该信号量共享资源的占用情况。硬件实时系统支持创建8个信号量,每个信号量有8个寄存器,寄存器描述如下:
Sem_REG1保留
Sem_REG2保留
Sem_REG3信号量ID号
8-15表示可以创建的信号量
Sem_REG4等待信号量事件列表
写入此寄存器,将任务加入到此信号量等待列表
读出该寄存器,读取此等待列表最高优先级的任务
Sem_REG5信号量计数,表示可用的资源数
Sem_REG6保留
Sem_REG7保留
Sem_REG8保留
关于FPGA,其在信号量的实现中,硬件实时系统除了提供信号量所需的调度功能以外,还提供信号量等待列表中最高优先级任务的查找,这里的方法和查找任务等待列表里面最高优先级是一样的,也是采用优先级编码器实现,ARM端读取寄存器Sem_REG4得到等待列表中需要执行的最高优先级任务。
关于ARM处理器,其主要提供以下三个函数:
voidOSSemCreate(uint16_t ucSemID,uint16_t uiSemCnt);
此函数用于初始化信号量
uiSemCnt=0可将信号量用于任务的同步
uiSemCnt>0表示可用的资源数
voidOSSemPend(uint16_t ucSemID,uint16_t ucSemTime,uint16_tucPendTaskID);
此函数用于请求信号量
ucSemTime=0xffff表示将此任务挂起,直到有可用的资源
ucSemTime>0表示将此任务挂起的时间
voidOSSemPost(uint16_t ucSemID);
此函数用于释放信号量
(4).消息邮箱
消息邮箱主要用于两个任务间消息的传递。硬件实时系统支持创建8个消息邮箱,每个消息邮箱有8个寄存器,寄存器描述如下:
Mbox_REG1保留
Mbox_REG2保留
Mbox_REG3消息邮箱ID号
16-23表示可以创建的信号量
Mbox_REG4保留
Mbox_REG5保留
Mbox_REG6保留
Mbox_REG7等待消息邮箱事件列表
写入此寄存器,将任务加入到消息邮箱等待列表
读出该寄存器,读取等待列表中最高优先级的任务
Mbox_REG8保留
关于FPGA,其在消息邮箱的实现中,硬件实时系统除了提供消息邮箱所需的调度功能以外,还提供消息邮箱等待列表中最高优先级任务的查找,这里的方法和查找任务等待列表里面最高优先级是一样的,也是采用优先级编码器实现,ARM端读取寄存器Mbox_REG7得到等待列表中需要执行的最高优先级任务。
关于ARM处理器,其主要提供以下三个函数:
void OSMboxCreate(uint16_t ucMboxID);
此函数用于创建消息邮箱
void*OSMboxPend(uint16_t uiMboxID,uint16_t uiMboxTime,uint16_tuiPendTaskID);
此函数用于请求消息邮箱
uiMboxTime=0xffff表示将此任务挂起,直到有可用的消息
uiMboxTime>0表示将此任务挂起的时间
OSMboxPost(uint16_t uiMboxID,void*Pmsg);
此函数用于发送消息。
(5).消息队列
消息队列的实现方法类似于消息邮箱,只不过对于消息队列需要做一个环形队列,用于消息的FIFO或LIFO,这里的环形队列没有在FPGA上实现,用软件实现更加灵活一些,硬件实时系统支持创建8个消息队列,每个消息队列有8个寄存器,寄存器描述如下:
Q_REG1保留
Q_REG2保留
Q_REG3消息队列ID号
24-31表示可以创建的信号量
Q_REG4保留
Q_REG5保留
Q_REG6等待消息队列事件列表
写入此寄存器,将任务加入到消息队列等待列表
读出该寄存器,读取等待列表中最高优先级的任务
Q_REG7保留
Q_REG8保留。
关于FPGA,其在消息队列的实现中,除了提供消息队列所需的调度功能以外,还提供消息队列等待列表中最高优先级任务的查找,这里的方法和查找任务等待列表里面最高优先级是一样的,也是采用优先级编码器实现,ARM端读取寄存器Q_REG6得到等待列表中需要执行的最高优先级任务。
关于ARM处理器,其主要提供以下三个函数:
voidOSQCreate(void**start,uint16_t uiSize,uint16_t uiQueueID);
此函数用于创建消息队列
void*OSQPend(uint16_t uiQID,uint16_t uiQTime,uint16_tuiPendTaskID);
此函数用于请求消息队列
uiQTime=0xffff表示将此任务挂起,直到有可用的消息
uiQTime>0表示将此任务挂起的时间
uint8_tOSQPost(uint16_t uiQID,void*Pmsg);
此函数用于发送消息。
(6).事件标志组
在实际的应用中,任务常常需要根据多个信号量的组合作用的结果来决定任务的运行方式,为此提供了事件标志组。硬件实时系统支持创建8个事件标志组,每个事件标志组有8个寄存器,寄存器描述如下:
Flag_REG1等待事件标志组列表
写入此寄存器,将任务加入到事件标志组等待列表
读出该寄存器,读取等待列表中最高优先级的任务
Flag_REG2保留
Flag_REG3事件标志组ID号
32-39表示可以创建的事件标志组
Flag_REG4保留
Flag_REG5保留
Flag_REG6保留
Flag_REG7保留
Flag_REG8保留。
关于FPGA,其在事件标志组的实现中,除了提供事件标志组所需的调度功能以外,还提供事件标志组等待列表中最高优先级任务的查找,这里的方法和查找任务等待列表里面最高优先级是一样的,也是采用优先级编码器实现,ARM端读取寄存器Flag_REG1得到等待列表中需要执行的最高优先级任务。
关于ARM处理器,其主要提供以下三个函数:
voidOSFlagCreate(uint16_t ucFlagID);
此函数用于初始化事件标志组
voidOSFlagPend(uint16_t uiFlagID,uint16_t uiFlagTime,uint16_tuiPendTaskID,uint16_t uiFlag);
此函数用于请求事件标志
uiFlagID表示期望得到的标志
uiFlagTime=0xffff表示将此任务挂起,直到有可用的资源
uiFlagTime>0表示将此任务挂起的时间
voidOSFlagPost(uint16_t uiFlagID,uint16_t uiFlag);
此函数用于发送事件标志。
uiFlagID表示要发送的事件标志
(7).互斥信号量
由于采用二值信号量容易造成优先级翻转的问题,而采用互斥信号量以后就可以实现任务以独占的方式使用共享资源。硬件上的实现机制是这样的,当低优先级的任务占有互斥信号量的话,恰好此时高优先级的任务要是使用这个资源,那么硬件实时系统会提升低优先级任务的优先级,防止发生优先级翻转,硬件实时系统支持创建8个互斥信号量,每个互斥信号量有8个寄存器,寄存器描述如下:
Mutex_REG1保留
Mutex_REG2保留
Mutex_REG3互斥信号量ID号
40-47表示可以创建的互斥信号量
Mutex_REG4
Mutex_REG5保留
Mutex_REG6保留
Mutex_REG7保留
Mutex_REG8等待互斥信号量事件列表
写入此寄存器,将任务加入到互斥信号量等待列表
读出该寄存器,读取等待列表中最高优先级的任务。
关于FPGA,其在互斥信号量的实现中,除了提供互斥信号量所需的调度功能以外,还提供互斥信号量等待列表中最高优先级任务的查找,这里的方法和查找任务等待列表里面最高优先级是一样的,也是采用优先级编码器实现,ARM端读取寄存器Mutex_REG8得到等待列表中需要执行的最高优先级任务。
关于ARM处理器,其主要提供以下三个函数:
voidOSMutexCreate(uint16_t uiMutexID,uint8_t uNewPrioty);
此函数用于初始化互斥信号量
voidOSMutexPend(uint16_t uiMutexID,uint16_t uiMutexTime,uint16_tucPendTaskID);
此函数用于请求信号量
uiMutexTime=0xffff表示将此任务挂起,直到有可用的资源
uiMutexTime>0表示将此任务挂起的时间
voidOSMutexPost(uint16_t uiMutexID);
此函数用于释放信号量。
通过实施以上技术方案,由于硬件电路(FPGA)独立于ARM处理器运行,不占用ARM处理器的处理时间,所节省的时间用于执行任务程序,成功降低ARM处理器的系统开销,从而提供实时操作系统任务的可调度性,特别是在需要任务快速切换的应用中,有效提供ARM处理器的利用率。因此,该硬件实现的操作系统提高了任务集合的可调度性和实时性,进而,可成功运行UCGUI(嵌入式应用中的图形支持系统)的多任务,从这点可以说明用这个硬件实时操作系统可以代替传统的小型嵌入式实时系统。
另外,关于硬件实时操作系统初始化和配置,还需说明的是,在开始多任务以前配置好每个任务的优先级和堆栈空间并配置好启动任务开始执行。而且,在启动任务中初始化任务以及信号量、邮箱、消息队列、互斥信号量、事件标志组,分别如下:
任务寄存器初始化方法
Task_REG1=0;
Task_REG2=111;
Task_REG3=0;
Task_REG4=144;
Task_REG5=155;
Task_REG6=166;
Task_REG7=177;
Task_REG8=1;
信号量寄存器初始化
Sem_REG1=ucSemID;
Sem_REG2=111;
Sem_REG3=0;
Sem_REG4=144;
Sem_REG5=ucSemCnt;
Sem_REG6=166;
Sem_REG7=177;
Sem_REG8=1;
邮箱寄存器初始化
Mbox_REG1=ucMboxID;
Mbox_REG2=111;
Mbox_REG3=0;
Mbox_REG4=144;
Mbox_REG5=155;
Mbox_REG6=166;
Mbox_REG7=177;
Mbox_REG8=1;
消息队列寄存器初始化
Q_REG1=ucQID;
Q_REG2=111;
Q_REG3=0;
Q_REG4=144;
Q_REG5=155;
Q_REG6=166;
Q_REG7=177;
Q_REG8=1;
互斥信号量寄存器初始化
Mutex_REG1=ucMutexID;
Mutex_REG2=111;
Mutex_REG3=0;
Mutex_REG4=144;
Mutex_REG5=155;
Mutex_REG6=166;
Mutex_REG7=177;
Mutex_REG8=1;
事件标志组寄存器初始化
Flag_REG1=ucFlagID;
Flag_REG2=111;
Flag_REG3=0;
Flag_REG4=144;
Flag_REG5=155;
Flag_REG6=166;
Flag_REG7=177;
Flag_REG8=1;
此外,关于任务程序设计,还需说明的是,任务的程序设计和普通的小型嵌入式实时操作系统是一样的,需要设计成死循环,在合适的地方加入任务的切换,防止阻塞低优先级任务的执行。
Figure BDA0000367622060000201
Figure BDA0000367622060000211
中断级的任务切换在Cortex-M3内核上和任务级的任务切换函数是一样的。
关于任务间同步及通信程序设计,还需说明的是,任务间的同步及通信机制在使用上普通的小型嵌入式实时操作系统也是一样的,以信号量为例。
OSSemCreate(8,1);//创建二值信号量
OS_SemPend(SemID,0xffff,Task_ID);
//添加用户程序
OS_SemPost(SemID)
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改、组合和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (8)

1.一种硬件实时操作系统,其特征在于,包括:通过FSMC总线连接的ARM处理器和FPGA,其中,
所述FPGA,用于实现抢占式调度器及基于所述抢占式调度器的任务管理和信号量、邮箱、消息队列、互斥信号量、事件标志组的管理;
所述ARM处理器,用于执行任务以及实现任务的切换。
2.根据权利要求1所述的硬件实时操作系统,其特征在于,所述FPGA包括:
分别与任务管理、信号量、邮箱、消息队列、互斥信号量、事件标志组对应的多个寄存器;
FSMC控制器,用于从所述ARM处理器接收初始化数据或向所述ARM处理器发送最高优先级任务的ID号;
协处理器,用于将所接收的初始化数据分别分配给相应的寄存器和优先编码器,以对寄存器进行配置和对优先编码器进行初始化;还用于将优先编码器所查找到的最高优先级任务的ID号发送至所述FSMC控制器;
优先编码器,用于在初始化后,分别在信号量、邮箱、消息队列、互斥信号量、事件标志组等待列表中查找最高优先级任务的ID号;
定时器,用于为所述优先编码器提供时钟节拍。
3.根据权利要求2所述的硬件实时操作系统,其特征在于,所述ARM处理器在对任务寄存器进行配置时,所发送的初始化数据包括任务延时时间的设置、任务挂起的设置和任务恢复的设置。
4.根据权利要求2所述的硬件实时操作系统,其特征在于,所述ARM处理器在对信号量寄存器进行配置时,所发送的初始化数据包括信号量ID号、等待信号量事件列表、信号量计数。
5.根据权利要求2所述的硬件实时操作系统,其特征在于,所述ARM处理器在对消息邮箱寄存器进行配置时,所发送的初始化数据包括消息邮箱ID号、等待消息邮箱事件列表。
6.根据权利要求2所述的硬件实时操作系统,其特征在于,所述ARM处理器在对消息队列寄存器进行配置时,所发送的初始化数据包括消息队列ID号、等待消息邮箱事件列表。
7.根据权利要求2所述的硬件实时操作系统,其特征在于,所述ARM处理器在对事件标志组寄存器进行配置时,所发送的初始化数据包括事件标志组ID号、等待事件标志组列表。
8.根据权利要求2所述的硬件实时操作系统,其特征在于,所述ARM处理器在对互斥信号量寄存器进行配置时,所发送的初始化数据包括互斥信号量ID号、等待互斥信号量事件列表。
CN2013103576348A 2013-08-16 2013-08-16 一种硬件实时操作系统 Pending CN103412755A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013103576348A CN103412755A (zh) 2013-08-16 2013-08-16 一种硬件实时操作系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013103576348A CN103412755A (zh) 2013-08-16 2013-08-16 一种硬件实时操作系统

Publications (1)

Publication Number Publication Date
CN103412755A true CN103412755A (zh) 2013-11-27

Family

ID=49605768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013103576348A Pending CN103412755A (zh) 2013-08-16 2013-08-16 一种硬件实时操作系统

Country Status (1)

Country Link
CN (1) CN103412755A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104087909A (zh) * 2014-07-04 2014-10-08 武汉理工大学 一种立方碳化硅薄膜的制备方法
CN104112000A (zh) * 2014-07-11 2014-10-22 东北大学 一种基于机床物联网的邮箱调度方法
CN104915256A (zh) * 2015-06-05 2015-09-16 惠州Tcl移动通信有限公司 一种任务的实时调度实现方法及其系统
CN105955205A (zh) * 2016-05-17 2016-09-21 哈尔滨工业大学 运动模拟器嵌入式实时控制系统
CN106873545A (zh) * 2015-12-14 2017-06-20 重庆森坦科技有限公司 一种基于fpga的实时多任务调度系统
CN107255962A (zh) * 2017-06-15 2017-10-17 青岛大学 一种内嵌微处理器核和完整硬件操作系统的微控制器架构
CN107770500A (zh) * 2017-11-17 2018-03-06 桂林电子科技大学 基于FPGA的Camera Link接口的非标准视频协议传输系统及传输方法
CN109062056A (zh) * 2018-09-17 2018-12-21 长安大学 一种电动自行车智能控制系统及其控制方法
CN109947468A (zh) * 2017-12-20 2019-06-28 北京谊安医疗系统股份有限公司 一种实现无阻塞无任务切换的事件延时方法
CN114168365A (zh) * 2021-12-07 2022-03-11 中国船舶重工集团公司第七0七研究所 一种基于stm32f450处理器的实时数据录取方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020101425A1 (en) * 2001-01-29 2002-08-01 Hammad Hamid System, method and article of manufacture for increased I/O capabilities in a graphics processing framework
CN1570794A (zh) * 2004-05-14 2005-01-26 北京博创兴工科技有限公司 机床的数控系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020101425A1 (en) * 2001-01-29 2002-08-01 Hammad Hamid System, method and article of manufacture for increased I/O capabilities in a graphics processing framework
CN1570794A (zh) * 2004-05-14 2005-01-26 北京博创兴工科技有限公司 机床的数控系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
俞庆 等: "船舶电网参数监测与分析装置的研究和设计", 《船电技术》, vol. 33, no. 6, 9 August 2013 (2013-08-09) *
李岩 等: "基于FPGA的uC/OS-Ⅱ任务管理硬件设计", 《电子技术应用》, vol. 36, no. 2, 21 June 2010 (2010-06-21) *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104087909A (zh) * 2014-07-04 2014-10-08 武汉理工大学 一种立方碳化硅薄膜的制备方法
CN104112000A (zh) * 2014-07-11 2014-10-22 东北大学 一种基于机床物联网的邮箱调度方法
CN104915256A (zh) * 2015-06-05 2015-09-16 惠州Tcl移动通信有限公司 一种任务的实时调度实现方法及其系统
CN106873545A (zh) * 2015-12-14 2017-06-20 重庆森坦科技有限公司 一种基于fpga的实时多任务调度系统
CN105955205A (zh) * 2016-05-17 2016-09-21 哈尔滨工业大学 运动模拟器嵌入式实时控制系统
CN107255962B (zh) * 2017-06-15 2019-11-26 青岛大学 一种内嵌微处理器核和完整硬件操作系统的微控制器架构
CN107255962A (zh) * 2017-06-15 2017-10-17 青岛大学 一种内嵌微处理器核和完整硬件操作系统的微控制器架构
CN107770500A (zh) * 2017-11-17 2018-03-06 桂林电子科技大学 基于FPGA的Camera Link接口的非标准视频协议传输系统及传输方法
CN109947468A (zh) * 2017-12-20 2019-06-28 北京谊安医疗系统股份有限公司 一种实现无阻塞无任务切换的事件延时方法
CN109947468B (zh) * 2017-12-20 2021-07-02 北京谊安医疗系统股份有限公司 一种实现无阻塞无任务切换的事件延时方法
CN109062056A (zh) * 2018-09-17 2018-12-21 长安大学 一种电动自行车智能控制系统及其控制方法
CN114168365A (zh) * 2021-12-07 2022-03-11 中国船舶重工集团公司第七0七研究所 一种基于stm32f450处理器的实时数据录取方法
CN114168365B (zh) * 2021-12-07 2023-06-20 中国船舶重工集团公司第七0七研究所 一种基于stm32f450处理器的实时数据录取方法

Similar Documents

Publication Publication Date Title
CN103412755A (zh) 一种硬件实时操作系统
US9779042B2 (en) Resource management in a multicore architecture
US7925869B2 (en) Instruction-level multithreading according to a predetermined fixed schedule in an embedded processor using zero-time context switching
US9798595B2 (en) Transparent user mode scheduling on traditional threading systems
CN100517236C (zh) 智能卡嵌入式操作系统及其控制方法
WO2018006864A1 (zh) 创建虚拟机的方法、装置及系统、控制设备和存储介质
WO2005096143A1 (en) Resource management in a multicore architecture
WO2007084700A2 (en) System and method for thread handling in multithreaded parallel computing of nested threads
KR20210057184A (ko) 이종 cpu/gpu 시스템에서 데이터 흐름 신호 처리 애플리케이션 가속화
WO2014110702A1 (zh) 协同并发式消息总线、主动构件组装模型及构件拆分方法
Tang et al. Combining hard periodic and soft aperiodic real-time task scheduling on heterogeneous compute resources
WO2023246044A1 (zh) 调度方法及装置、芯片、电子设备及存储介质
CN107203428B (zh) 一种基于Xen的VCPU多核实时调度算法
WO2020119307A1 (zh) 一种基于dsp的任务调度方法及装置
CN204302959U (zh) 一种硬件实时操作系统
EP2282265A1 (en) A hardware task scheduler
US20210026651A1 (en) Wake-up and scheduling of functions with context hints
CA2382728A1 (en) Efficient event waiting
CN101976206A (zh) 一种中断处理方法和装置
WO2014110701A1 (zh) 独立主动构件和可运行主动构件组装模型及构件拆分方法
US11461134B2 (en) Apparatus and method for deferral scheduling of tasks for operating system on multi-core processor
CN114443255A (zh) 一种线程调用方法和装置
CN116991557A (zh) 一种用于数字信号处理器的多任务实时调度加速装置
CN117539801A (zh) 一种远程访问内存的方法、装置及相关设备
CN116360941A (zh) 一种面向多核dsp的并行计算资源自组织调度方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20131127