CN111538580A - 一种嵌入式实时操作系统的线程信号操作方法与系统 - Google Patents

一种嵌入式实时操作系统的线程信号操作方法与系统 Download PDF

Info

Publication number
CN111538580A
CN111538580A CN202010328823.2A CN202010328823A CN111538580A CN 111538580 A CN111538580 A CN 111538580A CN 202010328823 A CN202010328823 A CN 202010328823A CN 111538580 A CN111538580 A CN 111538580A
Authority
CN
China
Prior art keywords
thread
signal
task
module
thread signal
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
CN202010328823.2A
Other languages
English (en)
Other versions
CN111538580B (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.)
Suzhou University
Original Assignee
Suzhou University
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 Suzhou University filed Critical Suzhou University
Priority to CN202010328823.2A priority Critical patent/CN111538580B/zh
Publication of CN111538580A publication Critical patent/CN111538580A/zh
Priority to PCT/CN2020/137578 priority patent/WO2021212885A1/zh
Priority to US17/761,277 priority patent/US20220365810A1/en
Application granted granted Critical
Publication of CN111538580B publication Critical patent/CN111538580B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Bus Control (AREA)

Abstract

本发明提供了一种嵌入式实时操作系统的线程信号操作方法与系统,涉及通信技术领域,该系统包括主控制模块和PC机,所述主控制模块的内核为MCU芯片,包括串口、USB端口,所述串口作为默认通信设备与外界通信,USB端口接PC机的USB口,所述主控制模块还包括实际线程信号等待模块、实际线程信号设置模块、系统服务调用中断模块、可挂起系统调用中断模块;能够根据任务分配规则多线程的信号处理,以减少交互带来的开销,提升处理效率,降低功耗,并且减少硬件模块叠加。

Description

一种嵌入式实时操作系统的线程信号操作方法与系统
技术领域
本发明涉及通信技术领域,尤其是涉及一种嵌入式实时操作系统的线程信号操作方法与系统。
背景技术
线程信号的应用场合较多,如任务之间共同读写某一共享区域,任务A写操作完成后可以发一个信号给任务B,当任务B收到这个信号后就可以进行读操作;下游任务需等待上游任务的完成;当线程越界,或企图写一个只读的内存区域(如程序正文区),或执行一个特权指令及其他各种硬件错误;执行一个并不存在的系统调用;当线程退出,或者子线程终止,等等这些都可以通过信号来实现
当前通信领域不断发展,各种线程信号处理结构层出不穷,在这种情况下,大多数通过硬件模块叠加来实现线程信号的操作,导致芯片面积和功耗不断膨胀,且很不灵活,升级成本很高,并且其实现效率会比较低,从而导致对处理器频率需求较高、功耗也较大。因此现有简单的线程信号处理结构还不能有效地胜任高效灵活的处理需求。
发明内容
本发明的目的在于提供一种嵌入式实时操作系统的线程信号操作方法与系统,以解决现有技术中通过硬件模块叠加来实现线程信号的操作,导致芯片面积和功耗不断膨胀,且很不灵活,升级成本很高,并且其实现效率会比较低,从而导致对处理器频率需求较高、功耗也较大的技术问题;本发明提供的诸多技术方案中的优选技术方案所能产生的诸多技术效果详见下文阐述。
为实现上述目的,本发明提供了以下技术方案:
本发明提供的一种嵌入式实时操作系统的线程信号操作系统,包括主控制模块和PC机,所述主控制模块的内核为MCU芯片,包括串口、USB端口,所述串口作为默认通信设备与外界通信,USB端口接PC机的USB口,所述主控制模块还包括实际线程信号等待模块、实际线程信号设置模块、系统服务调用中断模块、可挂起系统调用中断模块。
可选地,实际线程信号等待模块用于给正在运行的第一任务线程或第二任务线程添加等待标记,暂停第一任务线程或第二任务线程的运行并放到等待队列中。
可选地,可挂起系统调用中断模块用于从中断队列中取数据;根据所取数据的类型执行相应处理程序模块;取就绪队列中最高优先级线程。
可选地,主控制模块的内核MCU芯片中设置有寄存器组,所述寄存器组包括通用寄存器、堆栈指针寄存器、连接寄存器、程序计数寄存器、和特殊功能寄存器。
可选地,特殊功能寄存器包括程序模块状态字寄存器组,用来保存程序模块运行时的一些状态信息;中断屏蔽寄存器,用来设置屏蔽中断;控制寄存器,用来设置当前堆栈指针和特权访问模式。
一种嵌入式实时操作系统的线程信号操作方法,基于上述线程信号操作系统,包括以下步骤,
步骤1:宏定义线程信号,包括第一任务线程信号、第二任务线程信号和第三任务线程信号;
步骤2:对第一任务设置等待的线程信号,此例线程信号为1_SIGNAL,此时第一任务进入到延时队列;直到串口发送1_SIGNAL这个线程信号,进入到就绪队列,由系统进行调度完成后续模块的执行;对第二任务设置等待的线程信号,此例线程信号为2_SIGNAL,此时第二任务进入到延时队列;直到第三任务发送2_SIGNAL这个线程信号,进入到就绪队列,由系统进行调度完成后续模块的执行;
步骤3:发送线程信号
在中断中设置线程信号:对串口接收中断服务例程设置向第一任务发送线程信号1_SIGNAL,此处发送的线程信号值与上一步设置等待线程信号的值相同;
在用户线程中设置线程信号:对第三任务设置向第二任务发送线程信号2_SIGNAL,此处发送的线程信号值与上一步设置等待线程信号的值相同。
可选的,步骤2中,对第一任务或第二任务设置等待的线程信号,系统调度完成后续模块的执行时,其调度模块的包括实际线程信号等待模块,完成对线程的调度处理。
可选的,步骤2中,当第三任务向第二任务线程发送线程信号2_SIGNAL,第二任务线程收到这个线程信号后,执行后续模块时,其模块的调用包括实际调用实际线程信号设置模块,完成对线程的调度处理。
可选地,步骤3中,在中断中设置线程信号时,通过可挂起系统调用中断模块来完成。
可选地,步骤3中,在用户任务中设置线程信号时,通过系统服务调用中断模块来完成。
本发明提供的一种嵌入式实时操作系统的线程信号操作方法与系统,其有益效果为:
本发明通过串口发送1_SIGNAL这个线程信号,第一任务进入到就绪队列,由系统进行调度完成后续模块的执行;第三任务发送2_SIGNAL这个线程信号,第二任务进入到就绪队列,由系统进行调度完成后续模块的执行;以及实际线程信号等待模块给正在运行的第一任务线程或第二任务线程添加等待标记,暂停第一任务线程或第二任务线程的运行并放到等待队列中;如此,就能够根据任务分配规则多线程的信号处理,以减少交互带来的开销,提升处理效率,降低功耗,并且减少硬件模块叠加。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1本发明嵌入式实时操作系统的线程信号操作系统的架构示意图;
图2本发明基于线程信号的优先级相同的线程调度时序图;
图3是本发明实际线程信号等待模块的执行流程图;
图4是本发明实际线程信号设置模块的执行流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
实施例1:
如图1所示,一种嵌入式实时操作系统的线程信号操作系统,包括主控制模块和PC机,所述主控制模块的内核为MCU芯片,包括串口、USB端口,所述串口作为默认通信设备与外界通信,USB端口接PC机的USB口,所述主控制模块还包括实际线程信号等待模块、实际线程信号设置模块、系统服务调用中断模块、可挂起系统调用中断模块,实际线程信号等待模块用于给正在运行的第一任务线程或第二任务线程添加等待标记,暂停第一任务线程或第二任务线程的运行并放到等待队列中,可挂起系统调用中断模块用于从中断队列中取数据;根据所取数据的类型执行相应处理程序模块;取就绪队列中最高优先级线程,主控制模块的内核MCU芯片中设置有寄存器组,所述寄存器组包括通用寄存器、堆栈指针寄存器、连接寄存器、程序计数寄存器、和特殊功能寄存器,特殊功能寄存器包括程序模块状态字寄存器组,用来保存程序模块运行时的一些状态信息;中断屏蔽寄存器,用来设置屏蔽中断;控制寄存器,用来设置当前堆栈指针和特权访问模式。
实施例2:
在上述实施例的基础上,作为进一步的优选方案,一种嵌入式实时操作系统的线程信号操作方法,基于上述线程信号操作系统,包括以下步骤,
步骤1:宏定义线程信号,包括第一任务线程信号、第二任务线程信号和第三任务线程信号;
步骤2:对第一任务设置等待的线程信号,此例线程信号为1_SIGNAL,此时第一任务进入到延时队列;直到串口发送1_SIGNAL这个线程信号,进入到就绪队列,由系统进行调度完成后续模块的执行;对第二任务设置等待的线程信号,此例线程信号为2_SIGNAL,此时第二任务进入到延时队列;直到第三任务发送2_SIGNAL这个线程信号,进入到就绪队列,由系统进行调度完成后续模块的执行;
其中,对第一任务或第二任务设置等待的线程信号,系统调度完成后续模块的执行时,其调度模块的包括实际线程信号等待模块,完成对线程的调度处理;当第三任务向第二任务线程发送线程信号2_SIGNAL,第二任务线程收到这个线程信号后,执行后续模块时,其模块的调用包括实际调用实际线程信号设置模块,完成对线程的调度处理;
步骤3:发送线程信号
在中断中设置线程信号:对串口接收中断服务例程设置向第一任务发送线程信号1_SIGNAL,此处发送的线程信号值与上一步设置等待线程信号的值相同;
在用户线程中设置线程信号:对第三任务设置向第二任务发送线程信号2_SIGNAL,此处发送的线程信号值与上一步设置等待线程信号的值相同;
其中,在中断中设置线程信号时,通过可挂起系统调用中断模块来完成;在用户任务中设置线程信号时,通过系统服务调用中断模块来完成。
实施例3:
在上述实施例的基础上,作为进一步的优选方案:如图2至图4所示,MCU芯片选择KL36板套件,该套件的MCU是内核为ARM Cortex-M0+的Kinetis MKL36Z64VLH4,该芯片为64引脚LQFP封装、64KB Flash,包含SysTick定时器、GPIO、串口、A/D、D/A、I2C、SPI、CAN、USB;以及测试硬件和MUC评估板,所述串口与MUC评估板连接,所述测试硬件连接于MUC评估板并由主控制模块控制;串口作为默认通信设备与外界通信,将“USB-MicroUSB串口线”的“USB端口”接PC机的USB口,串口线的MicroUSB端接AHL-IOT-GEC评估板上的MicroUSB口(对应UART_2,由PTE16、PTE17作为串口的收发引脚);测试硬件为三色灯硬件,连接于AHL-IOT-GEC评估板的S1,由KL36芯片的PTA5、PTA12和PTA13引脚控制,以上述硬件连接为样例工程,实现三个任务的调度,蓝灯(第二任务)等待绿灯(第三任务)发送线程信号(本例为0x11),而红灯(第一任务)则是通过等待线程信号(串口线程信号,本例为0x22),来实现红灯每3秒闪烁一次;
1)红灯执行流程分析
在本样例红灯的执行流程需要等待串口发送线程信号(0x22),而蓝灯的执行流程需要等待绿灯发送线程信号(0x11),当红灯线程进入等待队列,直到收到串口发来线程信号RED_SIGNAL后,才会执行后续模块(每3秒闪烁一次)。该模块的调用顺序为signal_wait()→osThreadFlagsWait()→__svcThreadFlagsWait()→触发系统服务调用中断→实际线程信号等待模块。实际线程信号等待模块的主要功能就是给正在运行的线程(本例为红灯线程)添加等待标记,暂停红灯线程的运行并放到等待队列中;
2)蓝灯执行流程分析
当蓝灯线程进入等待队列,直到收到绿灯发来线程信号BLUE_SIGNAL后,才会执行后续语句(每2秒闪烁一次)。该语句的调用顺序为signal_wait()→osThreadFlagsWait()→__svcThreadFlagsWait()→触发系统服务调用中断SVC_Handler→实际线程信号等待模块。实际线程信号等待模块的主要功能就是给正在运行的线程(本例为蓝灯线程)添加等待标记,暂停蓝灯线程的运行并放到等待队列中;
当绿灯任务执行thd_bluelight.signal_set(BLUE_SIGNAL)这个语句,即向蓝灯线程发送线程信号BLUE_SIGNAL,蓝灯线程收到这个线程信号后,才会执行后续语句;该语句的调用顺序为signal_set()→osThreadFlagsSet()→__svcThreadFlagsSet()→触发系统服务调用中断SVC_Handler→调用实际线程信号设置模块完成对线程的调度处理。
可以看出,各个任务之间相互执行配合,操作系统内核则负责为所有的任务分配少部分的CPU资源,就可以使得每个任务的功能都可以正确地执行;
值得说明的是,实际线程信号等待模块(即svcRtxThreadFlagsWait)的主要功能为:(1)判断线程和参数是否正确;(2)给当前线程添加线程信号等待标志及标志选项;(3)更改等待事件位的线程状态,并放入等待队列,然后从就绪队列取出线程准备运行;(4)返回线程各类状态代码值;实际线程信号设置模块(即svcRtxThreadFlagsSet)的主要功能:(1)判断事件状态及参数是否正确;(2)设置事件字的事件位;(3)在线程列表中查找线程等待的事件位与设置的事件位相同的线程,找到后从延时队列中移出线程,并加入到就绪队列中;(4)取就绪队列中最高优先级线程;系统服务调用提供了访问系统服务的入口,系统服务调用中断服务程序是本样例程序中非常重要的程序,SVC_Handler模块的主要功能:在系统服务调用中断服务程序中,根据PSP值得到栈中的返回地址值,从系统服务调用指令的机器码中提取立即数作为调用号。在mbedOS中调用号为0是系统服务,其它为用户自定义服务;在系统服务调用中断服务程序中还要根据当前OS实时状态osRtxInfo中的线程运行信息决定是否进行上下文切换与线程切换。
下面对线程调度过程进行分段说明:
1)线程启动
在本样例中,芯片上电启动最后会转到主线程执行,在该样例中创建并先后启动了红灯、蓝灯和绿灯三个线程,然后阻塞运行,由mbedOS开始进行线程调度,取出就绪队列最高优先级线程(即蓝灯线程)激活运行
2)红灯线程等待红灯信号
SysTick定时器中断会每1ms中断一次按每个时间片(5ms)为周期对线程进行轮询调度,激活红灯线程运行,红灯线程等待红灯信号RED_SIGNAL,在调用过程中红灯线程会被放到等待队列中,并从就绪队列中取最高优先级的线程(此时为绿灯线程)激活运行。
3)绿灯线程等待绿灯信号
绿灯线程等待绿灯信号GREEN_SIGNAL,在调用过程中绿灯线程会被放到等待队列中,并从就绪队列中取最高优先级的线程(此时为蓝灯线程)激活运行。
4)蓝灯线程设置红灯信号
蓝灯线程设置红灯信号,从等待队列移出红灯线程,并放到就绪队列中。由于线程优先级相同,红灯线程不会抢占当前运行的蓝灯线程,而是会在SysTick定时器中断中通过轮询调度,激活红灯线程运行。
5)轮询调度激活红灯线程
SysTick定时器中断会每1ms中断一次按每个时间片(5ms)为周期对线程进行轮询调度,激活红灯线程运行。
6)红灯线程等到红灯信号
红灯线程等到红灯信号,进行红灯亮暗切换,接着又开始新一轮的线程信号等待(重复4-6步),激活蓝灯线程运行。
7)蓝灯线程设置绿灯信号
蓝灯线程设置绿灯信号,从等待队列移出绿灯线程,并放到就绪队列中。由于线程优先级相同,绿灯线程不会抢占当前运行的蓝灯线程,而是会在SysTick定时器中断中通过轮询调度,激活绿灯线程运行。
8)轮询调度激活绿灯线程
SysTick定时器中断会每1ms中断一次按每个时间片(5ms)为周期对线程进行轮询调度,激活绿灯线程运行。
9)绿灯线程等到绿灯信号
绿灯线程等到绿灯信号,进行绿灯亮暗切换,接着又开始新一轮的线程信号等待(重复7-9步),激活蓝灯线程运行。
说明:本例中采用空循环语句而不采用延时函数进行延时,主要是为了简化线程的调度过程。同时,由于线程优先级相同,SysTick定时器中断会每1ms中断一次,按每次时间片(5ms)到就会对线程进行轮询调度。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种嵌入式实时操作系统的线程信号操作系统,其特征在于,包括主控制模块和PC机,所述主控制模块的内核为MCU芯片,包括串口、USB端口,所述串口作为默认通信设备与外界通信,USB端口接PC机的USB口,所述主控制模块还包括实际线程信号等待模块、实际线程信号设置模块、系统服务调用中断模块、可挂起系统调用中断模块。
2.根据权利要求1所述的一种嵌入式实时操作系统的线程信号操作系统,其特征在于,所述实际线程信号等待模块用于给正在运行的第一任务线程或第二任务线程添加等待标记,暂停第一任务线程或第二任务线程的运行并放到等待队列中。
3.根据权利要求2所述的一种嵌入式实时操作系统的线程信号操作系统,其特征在于,所述可挂起系统调用中断模块用于从中断队列中取数据;根据所取数据的类型执行相应处理程序模块;取就绪队列中最高优先级线程。
4.根据权利要求3所述的一种嵌入式实时操作系统的线程信号操作系统,其特征在于,所述主控制模块的内核MCU芯片中设置有寄存器组,所述寄存器组包括通用寄存器、堆栈指针寄存器、连接寄存器、程序计数寄存器、和特殊功能寄存器。
5.根据权利要求4所述的一种嵌入式实时操作系统的线程信号操作系统,其特征在于,所述特殊功能寄存器包括程序模块状态字寄存器组,用来保存程序模块运行时的一些状态信息;中断屏蔽寄存器,用来设置屏蔽中断;控制寄存器,用来设置当前堆栈指针和特权访问模式。
6.一种嵌入式实时操作系统的线程信号操作方法,基于上述线程信号操作系统,其特征在于,包括以下步骤,
步骤1:宏定义线程信号,包括第一任务线程信号、第二任务线程信号和第三任务线程信号;
步骤2:对第一任务设置等待的线程信号,此例线程信号为1_SIGNAL,此时第一任务进入到延时队列;直到串口发送1_SIGNAL这个线程信号,进入到就绪队列,由系统进行调度完成后续模块的执行;对第二任务设置等待的线程信号,此例线程信号为2_SIGNAL,此时第二任务进入到延时队列;直到第三任务发送2_SIGNAL这个线程信号,进入到就绪队列,由系统进行调度完成后续模块的执行;
步骤3:发送线程信号
在中断中设置线程信号:对串口接收中断服务例程设置向第一任务发送线程信号1_SIGNAL,此处发送的线程信号值与上一步设置等待线程信号的值相同;
在用户线程中设置线程信号:对第三任务设置向第二任务发送线程信号2_SIGNAL,此处发送的线程信号值与上一步设置等待线程信号的值相同。
7.根据权利要求6所述的一种嵌入式实时操作系统的线程信号操作方法,其特征在于,所述步骤2中,对第一任务或第二任务设置等待的线程信号,系统调度完成后续模块的执行时,其调度模块的包括实际线程信号等待模块,完成对线程的调度处理。
8.根据权利要求6所述的一种嵌入式实时操作系统的线程信号操作方法,其特征在于,所述步骤2中,当第三任务向第二任务线程发送线程信号2_SIGNAL,第二任务线程收到这个线程信号后,执行后续模块时,其模块的调用包括实际调用实际线程信号设置模块,完成对线程的调度处理。
9.根据权利要求6所述的一种嵌入式实时操作系统的线程信号操作方法,其特征在于,所述步骤3中,在中断中设置线程信号时,通过可挂起系统调用中断模块来完成。
10.根据权利要求6所述的一种嵌入式实时操作系统的线程信号操作方法,其特征在于,所述步骤3中,在用户任务中设置线程信号时,通过系统服务调用系统服务调用中断模块来完成。
CN202010328823.2A 2020-04-23 2020-04-23 一种嵌入式实时操作系统的线程信号操作方法与系统 Active CN111538580B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010328823.2A CN111538580B (zh) 2020-04-23 2020-04-23 一种嵌入式实时操作系统的线程信号操作方法与系统
PCT/CN2020/137578 WO2021212885A1 (zh) 2020-04-23 2020-12-18 一种嵌入式实时操作系统的线程信号操作方法与系统
US17/761,277 US20220365810A1 (en) 2020-04-23 2020-12-18 Thread signal operating method and system of embedded real time operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010328823.2A CN111538580B (zh) 2020-04-23 2020-04-23 一种嵌入式实时操作系统的线程信号操作方法与系统

Publications (2)

Publication Number Publication Date
CN111538580A true CN111538580A (zh) 2020-08-14
CN111538580B CN111538580B (zh) 2024-01-05

Family

ID=71978876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010328823.2A Active CN111538580B (zh) 2020-04-23 2020-04-23 一种嵌入式实时操作系统的线程信号操作方法与系统

Country Status (3)

Country Link
US (1) US20220365810A1 (zh)
CN (1) CN111538580B (zh)
WO (1) WO2021212885A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416443A (zh) * 2020-11-16 2021-02-26 苏州大学 实现实时操作系统在嵌入式架构下的驻留方法
CN113377517A (zh) * 2021-06-28 2021-09-10 上海鲲宜软件技术有限公司 基于实时操作系统的线程调度方法及系统
WO2021212885A1 (zh) * 2020-04-23 2021-10-28 苏州大学 一种嵌入式实时操作系统的线程信号操作方法与系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505229B1 (en) * 1998-09-25 2003-01-07 Intelect Communications, Inc. Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems
US6631394B1 (en) * 1998-01-21 2003-10-07 Nokia Mobile Phones Limited Embedded system with interrupt handler for multiple operating systems
CN101226487A (zh) * 2008-01-30 2008-07-23 中国船舶重工集团公司第七〇九研究所 基于嵌入式Linux操作系统的内核级线程库的实现方法
CN103559045A (zh) * 2013-11-21 2014-02-05 青岛大学 一种硬件实时操作系统
CN111367652A (zh) * 2020-01-07 2020-07-03 苏州大学 一种嵌入式实时操作系统的任务调度处理系统和方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034751A1 (en) * 2000-04-21 2001-10-25 Shinichiro Eto Real-time OS simulator
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
US7058948B2 (en) * 2001-08-10 2006-06-06 Hewlett-Packard Development Company, L.P. Synchronization objects for multi-computer systems
US7765547B2 (en) * 2004-11-24 2010-07-27 Maxim Integrated Products, Inc. Hardware multithreading systems with state registers having thread profiling data
US8224884B2 (en) * 2007-07-06 2012-07-17 XMOS Ltd. Processor communication tokens
US8347312B2 (en) * 2007-07-06 2013-01-01 Xmos Limited Thread communications
US8139601B2 (en) * 2007-07-06 2012-03-20 Xmos Limited Token protocol
US8117587B1 (en) * 2008-06-03 2012-02-14 Richard Paul Testardi Microcontroller-resident software development environment supporting application-level asynchronous event handling, interactive debugging and pin variables for embedded systems
US8082426B2 (en) * 2008-11-06 2011-12-20 Via Technologies, Inc. Support of a plurality of graphic processing units
CN101673223B (zh) * 2009-10-22 2012-03-21 同济大学 基于片上多处理器的线程调度实现方法
US9354926B2 (en) * 2011-03-22 2016-05-31 International Business Machines Corporation Processor management via thread status
CN110018911B (zh) * 2018-01-09 2024-01-23 斑马智行网络(香港)有限公司 进程管理及进程间通信方法、装置、计算设备及存储介质
CN109918141B (zh) * 2019-03-15 2020-11-27 Oppo广东移动通信有限公司 线程执行方法、装置、终端及存储介质
CN111538580B (zh) * 2020-04-23 2024-01-05 苏州大学 一种嵌入式实时操作系统的线程信号操作方法与系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631394B1 (en) * 1998-01-21 2003-10-07 Nokia Mobile Phones Limited Embedded system with interrupt handler for multiple operating systems
US6505229B1 (en) * 1998-09-25 2003-01-07 Intelect Communications, Inc. Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems
CN101226487A (zh) * 2008-01-30 2008-07-23 中国船舶重工集团公司第七〇九研究所 基于嵌入式Linux操作系统的内核级线程库的实现方法
CN103559045A (zh) * 2013-11-21 2014-02-05 青岛大学 一种硬件实时操作系统
CN111367652A (zh) * 2020-01-07 2020-07-03 苏州大学 一种嵌入式实时操作系统的任务调度处理系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘长勇等: "实时操作系统mbedOS启动流程剖析", pages 46 - 51 *
王仁等: "基于服务体/执行流模型的MiniOSEK操作系统", 计算机系统应用, no. 12 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021212885A1 (zh) * 2020-04-23 2021-10-28 苏州大学 一种嵌入式实时操作系统的线程信号操作方法与系统
CN112416443A (zh) * 2020-11-16 2021-02-26 苏州大学 实现实时操作系统在嵌入式架构下的驻留方法
CN113377517A (zh) * 2021-06-28 2021-09-10 上海鲲宜软件技术有限公司 基于实时操作系统的线程调度方法及系统

Also Published As

Publication number Publication date
WO2021212885A1 (zh) 2021-10-28
US20220365810A1 (en) 2022-11-17
CN111538580B (zh) 2024-01-05

Similar Documents

Publication Publication Date Title
CN111538580B (zh) 一种嵌入式实时操作系统的线程信号操作方法与系统
CN111367652B (zh) 一种嵌入式实时操作系统的任务调度处理系统和方法
US8370806B2 (en) Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US7925869B2 (en) Instruction-level multithreading according to a predetermined fixed schedule in an embedded processor using zero-time context switching
US20060117316A1 (en) Hardware multithreading systems and methods
US20060150183A1 (en) Mechanism to emulate user-level multithreading on an OS-sequestered sequencer
KR101097620B1 (ko) 전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템
WO2008141063A2 (en) Interrupt-related circuits, systems, and processes
EP2409220A2 (en) Real-time multithreaded scheduler and scheduling method
CN109445939A (zh) 一种基于主动出让机制的软实时调度内核的调度方法
CN115361451B (zh) 一种网络通信并行处理方法及系统
CN110955503B (zh) 任务调度方法及装置
CN114003365A (zh) 用于risc-v架构的快速中断系统
US7516311B2 (en) Deterministic microcontroller context arrangement
US7831979B2 (en) Processor with instruction-based interrupt handling
CN114625639B (zh) 一种基于片上系统的调试方法、系统以及芯片
Hills Structured interrupts
CN111506395B (zh) 一种混合仿真的全数字虚拟运行环境的实现方法及装置
CN114218067A (zh) 一种异构众核软件调试装置及调试方法
CN112540908B (zh) 面向异构众核处理器的轻量级软件调试方法
US20060168427A1 (en) Deterministic microcontroller with context manager
CN114706669A (zh) 一种智能机器人实时操作系统
JP2005519393A (ja) 仮想直接メモリ・アクセスのための方法及び装置
Ridolfi Extension of the FreeOSEK RTOS for Asymmetric Multiprocessor Systems
Mazur Event-driven firmware design with hardware handler scheduling on Cortex-M-based microcontroller

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