CN111538580B - 一种嵌入式实时操作系统的线程信号操作方法与系统 - Google Patents
一种嵌入式实时操作系统的线程信号操作方法与系统 Download PDFInfo
- Publication number
- CN111538580B CN111538580B CN202010328823.2A CN202010328823A CN111538580B CN 111538580 B CN111538580 B CN 111538580B CN 202010328823 A CN202010328823 A CN 202010328823A CN 111538580 B CN111538580 B CN 111538580B
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000004891 communication Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 abstract description 13
- 230000003993 interaction Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 11
- 238000011156 evaluation Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 241001663845 Thelesperma Species 0.000 description 2
- 235000001975 Thelesperma gracile Nutrition 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005206 flow analysis Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000231281 Burmannia Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000032297 kinesis Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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)
- 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 (5)
1.一种嵌入式实时操作系统的线程信号操作方法,基于线程信号操作系统,其特征在于,包括以下步骤,
步骤1:宏定义线程信号,包括第一任务线程信号、第二任务线程信号和第三任务线程信号;
步骤2:对第一任务设置等待的线程信号,此例线程信号为1_SIGNAL,此时第一任务进入到延时队列;直到串口发送1_SIGNAL这个线程信号,进入到就绪队列,由系统进行调度完成后续模块的执行;对第二任务设置等待的线程信号,此例线程信号为2_SIGNAL,此时第二任务进入到延时队列;直到第三任务发送2_SIGNAL这个线程信号,进入到就绪队列,由系统进行调度完成后续模块的执行;
步骤3:发送线程信号;
在中断中设置线程信号:对串口接收中断服务例程设置向第一任务发送线程信号1_SIGNAL,此处发送的线程信号值与上一步设置等待线程信号的值相同;
在用户线程中设置线程信号:对第三任务设置向第二任务发送线程信号2_SIGNAL,此处发送的线程信号值与上一步设置等待线程信号的值相同;
上述步骤基于线程信号操作系统,该系统包括:包括主控制模块和PC机,所述主控制模块的内核为MCU芯片,包括串口、USB端口,所述串口作为默认通信设备与外界通信,USB端口接PC机的USB口,所述主控制模块还包括实际线程信号等待模块、实际线程信号设置模块、系统服务调用中断模块、可挂起系统调用中断模块;所述实际线程信号等待模块用于给正在运行的第一任务线程或第二任务线程添加等待标记,暂停第一任务线程或第二任务线程的运行并放到等待队列中;所述可挂起系统调用中断模块用于从中断队列中取数据;根据所取数据的类型执行相应处理程序模块;取就绪队列中最高优先级线程;所述主控制模块的内核MCU芯片中设置有寄存器组,所述寄存器组包括通用寄存器、堆栈指针寄存器、连接寄存器、程序计数寄存器、和特殊功能寄存器;所述特殊功能寄存器包括程序模块状态字寄存器组,用来保存程序模块运行时的一些状态信息;中断屏蔽寄存器,用来设置屏蔽中断;控制寄存器,用来设置当前堆栈指针和特权访问模式。
2.根据权利要求1所述的一种嵌入式实时操作系统的线程信号操作方法,其特征在于,所述步骤2中,对第一任务或第二任务设置等待的线程信号,系统调度完成后续模块的执行时,其调度模块的包括实际线程信号等待模块,完成对线程的调度处理。
3.根据权利要求1所述的一种嵌入式实时操作系统的线程信号操作方法,其特征在于,所述步骤2中,当第三任务向第二任务线程发送线程信号2_SIGNAL,第二任务线程收到这个线程信号后,执行后续模块时,其模块的调用包括实际调用实际线程信号设置模块,完成对线程的调度处理。
4.根据权利要求1所述的一种嵌入式实时操作系统的线程信号操作方法,其特征在于,所述步骤3中,在中断中设置线程信号时,通过可挂起系统调用中断模块来完成。
5.根据权利要求1所述的一种嵌入式实时操作系统的线程信号操作方法,其特征在于,所述步骤3中,在用户任务中设置线程信号时,通过系统服务调用系统服务调用中断模块来完成。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010328823.2A CN111538580B (zh) | 2020-04-23 | 2020-04-23 | 一种嵌入式实时操作系统的线程信号操作方法与系统 |
US17/761,277 US20220365810A1 (en) | 2020-04-23 | 2020-12-18 | Thread signal operating method and system of embedded real time operating system |
PCT/CN2020/137578 WO2021212885A1 (zh) | 2020-04-23 | 2020-12-18 | 一种嵌入式实时操作系统的线程信号操作方法与系统 |
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 CN111538580A (zh) | 2020-08-14 |
CN111538580B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538580B (zh) * | 2020-04-23 | 2024-01-05 | 苏州大学 | 一种嵌入式实时操作系统的线程信号操作方法与系统 |
CN112416443A (zh) * | 2020-11-16 | 2021-02-26 | 苏州大学 | 实现实时操作系统在嵌入式架构下的驻留方法 |
CN113377517B (zh) * | 2021-06-28 | 2023-02-28 | 上海鲲宜软件技术有限公司 | 基于实时操作系统的线程调度方法及系统 |
Citations (4)
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 | 青岛大学 | 一种硬件实时操作系统 |
Family Cites Families (15)
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 |
US8347312B2 (en) * | 2007-07-06 | 2013-01-01 | Xmos Limited | Thread communications |
US8224884B2 (en) * | 2007-07-06 | 2012-07-17 | XMOS Ltd. | Processor communication tokens |
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广东移动通信有限公司 | 线程执行方法、装置、终端及存储介质 |
CN111367652B (zh) * | 2020-01-07 | 2024-05-17 | 苏州大学 | 一种嵌入式实时操作系统的任务调度处理系统和方法 |
CN111538580B (zh) * | 2020-04-23 | 2024-01-05 | 苏州大学 | 一种嵌入式实时操作系统的线程信号操作方法与系统 |
-
2020
- 2020-04-23 CN CN202010328823.2A patent/CN111538580B/zh active Active
- 2020-12-18 US US17/761,277 patent/US20220365810A1/en active Pending
- 2020-12-18 WO PCT/CN2020/137578 patent/WO2021212885A1/zh active Application Filing
Patent Citations (4)
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 | 青岛大学 | 一种硬件实时操作系统 |
Non-Patent Citations (2)
Title |
---|
刘长勇等.实时操作系统mbedOS启动流程剖析.计算机工程与应用.2020,第46-51页. * |
基于服务体/执行流模型的MiniOSEK操作系统;王仁等;计算机系统应用(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20220365810A1 (en) | 2022-11-17 |
WO2021212885A1 (zh) | 2021-10-28 |
CN111538580A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538580B (zh) | 一种嵌入式实时操作系统的线程信号操作方法与系统 | |
CN111367652B (zh) | 一种嵌入式实时操作系统的任务调度处理系统和方法 | |
US7925869B2 (en) | Instruction-level multithreading according to a predetermined fixed schedule in an embedded processor using zero-time context switching | |
KR101350851B1 (ko) | 실시간 멀티스레드 스케줄러 및 스케줄링 방법 | |
US8370806B2 (en) | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor | |
CN101689157B (zh) | 定时端口 | |
US7877753B2 (en) | Multi-processor system and program for causing computer to execute controlling method of interruption of multi-processor system | |
EP1817663A2 (en) | Hardware multithreading systems and methods | |
WO2022227410A1 (zh) | 一种嵌入式终端远程软件调试方法 | |
CN115361451B (zh) | 一种网络通信并行处理方法及系统 | |
KR20090089425A (ko) | 전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템 | |
CN111209046A (zh) | 一种面向多任务处理的嵌入式sparc处理器操作系统设计方法 | |
CN108196950A (zh) | 一种应用于窄带物联网的实时化操作系统及其方法 | |
CN110955503B (zh) | 任务调度方法及装置 | |
JPH11296388A (ja) | プロセッサでマルチタスキングを管理するコンテキスト・コントロ―ラ | |
CN115658278B (zh) | 一种支持高并发协议交互的微任务调度机 | |
CN114218067A (zh) | 一种异构众核软件调试装置及调试方法 | |
EP1341092A1 (en) | Method and arrangement for virtual direct memory access | |
CN118585312A (zh) | 指令调度方法及装置、处理器、电子装置和存储介质 | |
CN116932186A (zh) | 一种任务流控制系统、方法、服务器、介质及设备 | |
CN116932155A (zh) | 一种任务流开发方法、装置、服务器、介质及设备 | |
CN118093115A (zh) | 一种嵌入式多核操作系统的主核切换自适应方法 | |
KR100930009B1 (ko) | 인터럽트 처리방법 | |
Peng et al. | Towards A Unified Hardware Abstraction Layer Architecture for Embedded Systems | |
Oh et al. | Scalable RTOS for SoC platform environments |
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 |