CN101826032B - 一种高效实时多任务操作系统内核 - Google Patents

一种高效实时多任务操作系统内核 Download PDF

Info

Publication number
CN101826032B
CN101826032B CN 200910127320 CN200910127320A CN101826032B CN 101826032 B CN101826032 B CN 101826032B CN 200910127320 CN200910127320 CN 200910127320 CN 200910127320 A CN200910127320 A CN 200910127320A CN 101826032 B CN101826032 B CN 101826032B
Authority
CN
China
Prior art keywords
task
operating system
universal
register
groups
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.)
Expired - Fee Related
Application number
CN 200910127320
Other languages
English (en)
Other versions
CN101826032A (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.)
INVOLAR Corporation Ltd.
Original Assignee
INVOLAR Corp 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 INVOLAR Corp Ltd filed Critical INVOLAR Corp Ltd
Priority to CN 200910127320 priority Critical patent/CN101826032B/zh
Publication of CN101826032A publication Critical patent/CN101826032A/zh
Application granted granted Critical
Publication of CN101826032B publication Critical patent/CN101826032B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种高效实时多任务操作系统内核。基于对8051结构的多组通用寄存器的资源分配,避免了任务调度时对通用寄存器组的保护及恢复,从而实现了一个高效的实时多任务操作系统内核。以通用寄存器组划分任务,每组通用寄存器组只供一个任务使用;以中断或非中断驱动任务调度,在任务调度时只保存特殊寄存器内容(A,B,PSW,DPTR,PC);每个任务的特殊寄存器组有各自的内容映射区;每次调度任务时,先将该任务状态字找出被调度的任务在内存映射区的偏移量,并将该任务的特殊寄存器恢复,即恢复该任务的断点及断点处状态及特殊寄存器值;由于PSW包含了通用寄存器组的信息,且各个任务只使用各自的通用寄存器组,故不需保护及恢复通用寄存器组,从而大大提高了执行速度。

Description

一种高效实时多任务操作系统内核
技术领域
本发明涉及计算机技术,特别是嵌入式单片机技术。
技术背景
在电力电子应用中,电源控制一般在10KHz-50KHz电压电流闭环;电机调速一般在1KHz-10KHz闭环。速度闭环一般在50-500Hz闭环。另外还有I/O处理,通讯,界面等不同速度等级的任务。采用常规的顺序执行加中断的方法,一般都要采用DSP才能达到要求。本发明基于对8051结构的多组通用寄存器的资源分配,避免了任务调度时对通用寄存器组的保护及恢复,从而实现了一个高效的实时多任务操作系统内核。在一个20MIPS的增强型8051单片机上,本内核执行速度仅为10μs。
发明内容
本发明针对实时多任务的工业控制要求,提出了一种基于8051的高效实时多任务操作系统内核。其特征是,以通用寄存器组划分任务,每组通用寄存器组只供一个任务使用;以中断或非中断驱动任务调度,在任务调度时只保存特殊寄存器内容(A,B,PSW,DPTR,PC);每个任务的特殊寄存器组有各自的内容映射区;每次调度任务时,先将该任务状态字找出被调度的任务在内存映射区的偏移量,并将该任务的特殊寄存器恢复,即恢复该任务的断点及断点处状态及特殊寄存器值;由于PSW包含了通用寄存器组的信息,且各个任务只使用各自的通用寄存器组,故不需保护及恢复通用寄存器组,从而大大提高了执行速度。
附图说明
图1为为各个任务所分配的通用寄存器组及特殊寄存器组的内存映射。由于资源的限制,将RB3由Task3及中断共享,即Task3只能使用RB3的R0-R3,而中断只能使用RB3的R4-R7。
图2为对应一个任务的特殊寄存器的内存映射区结构。
图3为系统程序流程图。
图4为每个任务的程序流程图。
图5为中断处理中的任务调度流程图。
具体实施方法
如图1所示,将4组通用寄存分别分配给Task0,Task1,Task2,Task3。其中,由于资源限制,RB3由Task3及中断分享,即R0-R3给Task3,R4-R7给中断使用。图2给出了对应于每一个任务的特殊寄存器内存映射的结构,
由于PSW.4及PSW.3选择了通用寄存器组,故该两位也就决定了任务号。
图3为系统程序结构图。我们看到,各个框图间没有直接联系。任务调度可以由中断完成,也可以在每个任务结束时完成。
图4为一个任务的基本结构。除去常规的事件处理程序外,每个任务可以处理所有任务的状态位。我们规定TaskSta.0,TaskSta.1,TaskSta.2,TaskSta.3分别表示Task0,Task1,Task2,Task3的状态,“1”为激活,“0”为挂起,并且规定优先级为Task0,Task1,Task2,Task3递减。每次本任务结束时,即消除该状态位。
图5为中断程序的任务调度流程图。将PSW.4及PSW.3做为偏移量,即可找出当前任务的内存映射区,并将当前任务的特殊寄存器内容保存。任务状态位则可以在中断中处理,也可以在普通任务中处理。根据任务状态字,即可找出目前优先级最高的任务号;将该任务的特殊寄存器从内存映射区中恢复,退出中断时该任务便自动从上次断点处原状态执行。
下面列出了一个典型的主程序和任务调度原码。可以看到,各个任务在程序结构上完全解耦。
CSEG     AT 200H
task0:  ;800Hz
call     pwm_con0
call     tx_sub0
call     filter0
INCA     ModuleCnt
INCA     StateCnt
mov      DPTR,#task0
inc      TBase0
mov      A,TBase0
anl      A,#0FH
ENDT_NZ  #0FEH
orl      TaskSta,#2    ;Task1 is activated
anl      TaskSta,#0FEH
DESP_TASK
ret
;-------------------------------------------------
task1:    ;50Hz
call       load_mon 1    ;monitoring discharge rate
call       clock
mov        DPTR,#task1
inc        TBase1
mov        A,TBase1
anl        A,#07H
ENDT_NZ    #0FDH
orl        TaskSta,#04    ;activate Task2
anl        TaskSta,#0FDH
DESP_TASK
ret
;-------------------------------------------------
task2:    ;6.25Hz
call       tx_sub2
call       led_sub2
mov DPTR,#task2
DECAS CntRev,RevOF
anl   TaskSta,#0FBH
DESP_TASK
ret
;-------------------------------------------------
task3:
mov    DPTR,#task3
DESP_TASK
ret
DESP_TASK MACRO
local  loop
mov    A,PSW           ;save the current PC
anl    A,#18H
orl    A,#TaskBuf+6    ;+6/7 for PC
mov    R0,A            ;get the return address for current task
mov    R0,DPH         ;PCH(taskn)
inc    R0
mov    R0,DPL         ;PCL
mov    A,TaskSta
mov    R0,#0FFH
loop:
inc    R0
rrc    A
jnc    loop
mov    A,R0
rl     A
rl     A
rl     A                ;PSW.3/.4 are the RS0/1
anl    A,#18H
orl    A,#TaskBuf+7    ;get buffer address of the chosen task
mov    R0,A
mov    A,R0           ;recovery
push   ACC              ;PCL into stack
dec    R0
mov    A,R0
push   ACC              ;PCH
dec    R0
mov    DPL,R0         ;DPL
dec    R0
mov    DPH,R0         ;DPH
dec    R0
mov    B,R0           ;B
dec    R0
mov    A,R0           ;A
push   ACC              ;into stack as well
dec    R0
mov    A,R0           ;R0-not the current R0!
push   ACC              ;into stack as well
dec    R0
mov    PSW,R0         ;PSW-register bank changed
pop    ACC
mov    R0,A            ;R0 recovered
pop    ACC               ;A recovered
ENDM

Claims (2)

1.一种基于8051单片机的多任务操作系统设计方法,其特征是,该多任务操作系统设计方法,具体为以通用寄存器组划分任务,每组通用寄存器组只供一个任务使用;以中断或非中断驱动任务调度,在任务调度时只保存特殊寄存器内容;每个任务的特殊寄存器组有各自的内容映射区;每次调度任务时,先将该任务状态字找出被调度的任务在内存映射区的偏移量,并将该任务的特殊寄存器恢复,即恢复该任务的断点及断点处状态及特殊寄存器值。
2.如权利要求1所述的多任务操作系统设计方法,可以移植到任何具有多组通用寄存器组的单片机上。
CN 200910127320 2009-03-06 2009-03-06 一种高效实时多任务操作系统内核 Expired - Fee Related CN101826032B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910127320 CN101826032B (zh) 2009-03-06 2009-03-06 一种高效实时多任务操作系统内核

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910127320 CN101826032B (zh) 2009-03-06 2009-03-06 一种高效实时多任务操作系统内核

Publications (2)

Publication Number Publication Date
CN101826032A CN101826032A (zh) 2010-09-08
CN101826032B true CN101826032B (zh) 2013-07-31

Family

ID=42689960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910127320 Expired - Fee Related CN101826032B (zh) 2009-03-06 2009-03-06 一种高效实时多任务操作系统内核

Country Status (1)

Country Link
CN (1) CN101826032B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662809B (zh) * 2012-03-06 2014-12-24 中国航天科技集团公司第九研究院第七七一研究所 一种基于虚拟断点指令的无缝片上系统调试方法
KR102235166B1 (ko) * 2015-09-21 2021-04-02 주식회사 레인보우로보틱스 실시간 로봇 시스템, 로봇 시스템 제어 장치 및 로봇 시스템 제어 방법
CN109144718A (zh) * 2018-07-06 2019-01-04 北京比特大陆科技有限公司 一种内存分配方法、内存释放方法以及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1409209A (zh) * 2001-09-24 2003-04-09 深圳市中兴通讯股份有限公司上海第二研究所 一种多任务实时操作系统的实现方法
CN1558329A (zh) * 2004-02-09 2004-12-29 中兴通讯股份有限公司 单片机操作系统的模块化实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1409209A (zh) * 2001-09-24 2003-04-09 深圳市中兴通讯股份有限公司上海第二研究所 一种多任务实时操作系统的实现方法
CN1558329A (zh) * 2004-02-09 2004-12-29 中兴通讯股份有限公司 单片机操作系统的模块化实现方法

Also Published As

Publication number Publication date
CN101826032A (zh) 2010-09-08

Similar Documents

Publication Publication Date Title
Abeni et al. Container-based real-time scheduling in the linux kernel
Gu et al. A state-of-the-art survey on real-time issues in embedded systems virtualization
EP2701074B1 (en) Method, device, and system for performing scheduling in multi-processor core system
US10733032B2 (en) Migrating operating system interference events to a second set of logical processors along with a set of timers that are synchronized using a global clock
Su et al. An elastic mixed-criticality task model and its scheduling algorithm
Burns et al. Towards a more practical model for mixed criticality systems
CN101246437B (zh) 一种嵌入式实时系统进程均衡调度方法
Davis et al. How embedded applications using an RTOS can stay within on-chip memory limits
CN101826032B (zh) 一种高效实时多任务操作系统内核
CN104598298A (zh) 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法
CN105138905A (zh) Linux应用程序的隔离运行方法
CN101324852A (zh) 实时操作系统及其实时化方法
CN1794183A (zh) Java操作系统中实时任务调度的实现方法
CN106339257A (zh) 使客户机操作系统轻量化的方法及系统和虚拟化操作系统
CN102609307A (zh) 多核多线程双操作系统网络设备及其控制方法
CN106445659A (zh) 一种空间飞行器周期性混成随机任务调度方法
GB2392515A (en) Stack usage in computer operating systems
EP3399412A1 (en) Method and apparatus for scheduling tasks to a cyclic schedule
KR20150089665A (ko) 워크플로우 작업 스케줄링 장치
CN101349975A (zh) 实现中断底半部机制的方法及嵌入式系统
Devi et al. Flexible tardiness bounds for sporadic real-time task systems on multiprocessors
Labrosse Inside real-time kernels
Jiang et al. Developing co-scheduling mechanisms for virtual machines in clouds
Abeni et al. Compensating for interrupt process times in real-time multimedia systems
Thanasias et al. Budget-aware task scheduling in the cloud

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 201203 ROOM 408, BUILDING 84, LANE 887, ZUCHONGZHI ROAD, PUDONG NEW DISTRICT, SHANGHAI TO: 201203 ROOM 501, BUILDING 84, LANE 887, ZUCHONGZHI ROAD, ZHANGJIANG HIGH TECHNOLOGY PARK, PUDONG NEW DISTRICT, SHANGHAI

TA01 Transfer of patent application right

Effective date of registration: 20110317

Address after: Zuchongzhi road in Pudong New Area Zhangjiang hi tech park Shanghai 201203 Lane 887 Building No. 84 Room 501

Applicant after: INVOLAR Corporation Ltd.

Address before: 201203 Shanghai city Pudong New Area Zuchongzhi Road Lane 887 Building No. 84 Room 408

Applicant before: Yingweili New Energy Technology (Shanghai) Co., Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130731

Termination date: 20180306