CN104391702A - 嵌入式系统软件扩展定时器的方法 - Google Patents
嵌入式系统软件扩展定时器的方法 Download PDFInfo
- 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
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,则所述任务定时时间到,执行定时操作,且对全局软件定时器数组元素值执行减一操作;如果全局软件定时器数组元素值为正值,对全局软件定时器数组元素值执行减一操作。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650119A (zh) * | 2020-12-22 | 2021-04-13 | 深圳市禾望电气股份有限公司 | 基于mcu的事件发生时刻测量范围的扩展方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441570A (zh) * | 2002-02-28 | 2003-09-10 | 深圳市中兴通讯股份有限公司上海第二研究所 | 嵌入式实时操作系统中定时器的计时方法 |
CN1556654A (zh) * | 2003-12-31 | 2004-12-22 | 中兴通讯股份有限公司 | 软件定时器的定时及控制方法 |
-
2014
- 2014-11-15 CN CN201410645245.XA patent/CN104391702A/zh active Pending
Patent Citations (2)
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)
Title |
---|
DUOBLESKY: ""一个硬件定时器复用多个软件时钟问题"", 《HTTP://WENKU.BAIDU.COM/LINK?URL=D8AAI-SDRXZFTZT5AKGNOVAUA-Z15FSOLU58XMGJYSWGKOHWRHP05E3AV2E_X7KBLR_T1YBOXTR6NPD-TFEKC9JSYM1VEYVSXGTQUX1IDS_》 * |
王荣: ""超声发生器的设计与实现"", 《中国优秀硕士学位论文全文数据库工程科技I辑》 * |
Cited By (1)
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 |