CN104391702A - 嵌入式系统软件扩展定时器的方法 - Google Patents

嵌入式系统软件扩展定时器的方法 Download PDF

Info

Publication number
CN104391702A
CN104391702A CN201410645245.XA CN201410645245A CN104391702A CN 104391702 A CN104391702 A CN 104391702A CN 201410645245 A CN201410645245 A CN 201410645245A CN 104391702 A CN104391702 A CN 104391702A
Authority
CN
China
Prior art keywords
timer
timing
array element
value
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.)
Pending
Application number
CN201410645245.XA
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.)
Zhengzhou Aircraft Equipment Co Ltd
Original Assignee
Zhengzhou Aircraft Equipment 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 Zhengzhou Aircraft Equipment Co Ltd filed Critical Zhengzhou Aircraft Equipment Co Ltd
Priority to CN201410645245.XA priority Critical patent/CN104391702A/zh
Publication of CN104391702A publication Critical patent/CN104391702A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种嵌入式系统软件扩展定时器的方法,根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除;建立一个全局软件定时器数组,数组的长度等于所需软件定时器的个数;初始化全局软件定时器数组为负值;当任务需要开启软件定时器时,根据任务定时时间、硬件定时器精度计算定时值;在硬件定时器响应函数内对数组元素值进行判断,如果数组元素值为负值,不执行任何操作;如果数组元素值为0,则任务定时时间到,执行定时操作且对数组元素值执行减一操作;如果数组元素值为正值,对数组元素值执行减一操作。本发明优点在于占用内存少,结构易实现,特别适用于无操作系统中、小型嵌入式系统软件。

Description

嵌入式系统软件扩展定时器的方法
技术领域
本发明涉及一种用于实现无操作系统中嵌入式系统软件扩展定时器的方法。
背景技术
在嵌入式系统中,通常同时有多个任务需要开启定时器,而嵌入式系统硬件定时器资源有限,尤其对于单片机、微处理器80386等CPU硬件定时器资源相当有限,在这种情况下如何软件扩展定时器就显得极为重要。
目前软件扩展定时器多采用队列方式,队列扩展又分为单队列和多队列。单队列定时器将定时器按定时时长从小到大排序,增加定时器时插入队列相应位置。多队列方式根据不同的定时精度设置多个队列,轮询检测每个队列中的定时器。单队列方式需对每个定时器设置定时器节点,而对于无操作系统小规模嵌入式系统软件来说,队列和节点结构操作实现较为复杂。多队列不但需要设置定时器节点,而且需要对多个队列轮询,占用内存且结构复杂,更不适合小规模嵌入式系统。
发明内容
本发明目的在于提供一种适合无操作系统的嵌入式系统软件扩展定时器的方法。
为实现上述目的,本发明采取下述技术方案:
本发明所述嵌入式系统软件扩展定时器的方法,按照下述步骤进行:
第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除;
第二步、建立一个全局软件定时器数组,所述全局软件定时器数组的长度等于所需软件定时器的个数;
第三步、初始化全局软件定时器数组为负值;
第四步、当所述任务需要开启软件定时器时,根据所述任务定时时间以及硬件定时器精度计算定时值,并将所计算定时值赋值给所述任务对应的数组元素;定时值计算公式如下:
定时值=定时时间/硬件定时器精度-1;
第五步、在所述硬件定时器响应函数内对全局软件定时器数组元素值进行判断,如果全局软件定时器数组元素值为负值,不执行任何操作;如果全局软件定时器数组元素值为0,则所述任务定时时间到,执行定时操作,且对全局软件定时器数组元素值执行减一操作;如果全局软件定时器数组元素值为正值,对全局软件定时器数组元素值执行减一操作。
本发明优点在于采用建立一定时器数组,对定时器数组元素设置定时值,通过每次操作定时器数组的方法实现软件扩展定时器。因此,本发明所需资源少,占用内存少,结构易实现,特别适用于无操作系统中、小型嵌入式系统软件。
附图说明
图1是本发明硬件定时器中断函数流程图。
图2是本发明所述任务开启软件定时器流程图。
具体实施方式
如图1、2所示,为进一步说明本发明的软件扩展定时器方法,下面结合具体实施例加以描述:
第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度可以被任务所需定时时间整除;
第二步、建立一个全局软件定时器数组,该数组的长度等于所需软件定时器的个数;
第三步、初始化软件定时器数组为负值;
假设共有十个任务需要软件定时器,所需定时时间分别为X0ms、X1ms、X2ms、X3ms、X4ms、X5ms、X6ms、X7ms、X8ms、X9ms;则硬件定时器精度可设置为1ms,全局软件定时器数组长度D[10]长度为10,并将D[10]初始化为-1;
第四步、当任务需要开启软件定时器时,根据任务定时时间以及硬件定时器精度计算定时值,并将所计算定时值赋值给任务对应的数组元素,定时值计算公式如下:
定时值=定时时间/定时器精度-1;
第五步、假设任务0需要开启软件定时器,定时时间为10ms,则根据计算公式计算得到:
定时值=10ms/1ms-1=9;
假设任务0对应数组元素D[0],则D[0]=9;
在硬件定时器响应函数内对数组元素值进行判断,如果数组元素值为负值,不执行任何操作;如果数组元素值为0,则相应任务定时时间到,执行定时操作,且对数组元素值执行减一操作;如果数组元素值为正值,对数组元素值执行减一操作。

Claims (1)

1.一种嵌入式系统软件扩展定时器的方法,其特征在于:按照下述步骤进行:
第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除;
第二步、建立一个全局软件定时器数组,所述全局软件定时器数组的长度等于所需软件定时器的个数;
第三步、初始化全局软件定时器数组为负值;
第四步、当所述任务需要开启软件定时器时,根据所述任务定时时间以及硬件定时器精度计算定时值,并将所计算定时值赋值给所述任务对应的数组元素;定时值计算公式如下:
定时值=定时时间/硬件定时器精度-1;
第五步、在所述硬件定时器响应函数内对全局软件定时器数组元素值进行判断,如果全局软件定时器数组元素值为负值,不执行任何操作;如果全局软件定时器数组元素值为0,则所述任务定时时间到,执行定时操作,且对全局软件定时器数组元素值执行减一操作;如果全局软件定时器数组元素值为正值,对全局软件定时器数组元素值执行减一操作。
CN201410645245.XA 2014-11-15 2014-11-15 嵌入式系统软件扩展定时器的方法 Pending CN104391702A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410645245.XA CN104391702A (zh) 2014-11-15 2014-11-15 嵌入式系统软件扩展定时器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410645245.XA CN104391702A (zh) 2014-11-15 2014-11-15 嵌入式系统软件扩展定时器的方法

Publications (1)

Publication Number Publication Date
CN104391702A true CN104391702A (zh) 2015-03-04

Family

ID=52609610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410645245.XA Pending CN104391702A (zh) 2014-11-15 2014-11-15 嵌入式系统软件扩展定时器的方法

Country Status (1)

Country Link
CN (1) CN104391702A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650119A (zh) * 2020-12-22 2021-04-13 深圳市禾望电气股份有限公司 基于mcu的事件发生时刻测量范围的扩展方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441570A (zh) * 2002-02-28 2003-09-10 深圳市中兴通讯股份有限公司上海第二研究所 嵌入式实时操作系统中定时器的计时方法
CN1556654A (zh) * 2003-12-31 2004-12-22 中兴通讯股份有限公司 软件定时器的定时及控制方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441570A (zh) * 2002-02-28 2003-09-10 深圳市中兴通讯股份有限公司上海第二研究所 嵌入式实时操作系统中定时器的计时方法
CN1556654A (zh) * 2003-12-31 2004-12-22 中兴通讯股份有限公司 软件定时器的定时及控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DUOBLESKY: ""一个硬件定时器复用多个软件时钟问题"", 《HTTP://WENKU.BAIDU.COM/LINK?URL=D8AAI-SDRXZFTZT5AKGNOVAUA-Z15FSOLU58XMGJYSWGKOHWRHP05E3AV2E_X7KBLR_T1YBOXTR6NPD-TFEKC9JSYM1VEYVSXGTQUX1IDS_》 *
王荣: ""超声发生器的设计与实现"", 《中国优秀硕士学位论文全文数据库工程科技I辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650119A (zh) * 2020-12-22 2021-04-13 深圳市禾望电气股份有限公司 基于mcu的事件发生时刻测量范围的扩展方法及装置

Similar Documents

Publication Publication Date Title
CN106293919B (zh) 一种时间触发的嵌入式任务调度装置与方法
CA2545933A1 (en) Complex computation across heterogenous computer systems
CN104915256A (zh) 一种任务的实时调度实现方法及其系统
WO2007008519A3 (en) Active element machine computation
CN102591713B (zh) 基于有限状态机的软件功能模块的调度系统
CN104536835A (zh) 一种热备份实时控制系统中自适应任务调度方法
CN103995742A (zh) 一种基于mcu的嵌入式实时调度控制装置及方法
CN103744772A (zh) 一种检测任务运行性能的方法和系统
CN103713948B (zh) 一种优先级抢占时间片轮转操作系统中任务定时调度方法
CN104035747A (zh) 用于并行计算的方法和装置
Kodase et al. Transforming structural model to runtime model of embedded software with real-time constraints
CN105378650B (zh) 用于控制处理模块的操作模式的方法和装置
US9753769B2 (en) Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof
CN104391702A (zh) 嵌入式系统软件扩展定时器的方法
EP2278454B1 (en) Method for correct-by-construction development of real-time-systems
CN104597820A (zh) 一种扩展单片机硬件定时器的方法
US20180225240A1 (en) Multiple-queue integer coalescing mapping algorithm with shared based time
Varela et al. Real-time scheduling coprocessor for NIOS II processor
CN112114945A (zh) 基于多任务实时操作系统的惯性/卫星组合导航任务调度方法
CN101996105A (zh) 可重构计算平台上的静态软硬件任务划分与调度方法
CN101639791A (zh) 一种改善嵌入式实时操作系统中断延迟的方法
CN106933535B (zh) 一种在单片机系统中实现高精度延时的方法
CN111832714B (zh) 运算方法及装置
CN102591200A (zh) 一种fpga控制系统开发平台
Vulić et al. Overview of end-to-end event chain in advanced driver-assistance software following autosar

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150304

WD01 Invention patent application deemed withdrawn after publication