CN106708536A - 一种中断驱动系统程序生成和分析方法 - Google Patents

一种中断驱动系统程序生成和分析方法 Download PDF

Info

Publication number
CN106708536A
CN106708536A CN201710021560.9A CN201710021560A CN106708536A CN 106708536 A CN106708536 A CN 106708536A CN 201710021560 A CN201710021560 A CN 201710021560A CN 106708536 A CN106708536 A CN 106708536A
Authority
CN
China
Prior art keywords
interrupt
task
driven system
time
subfunction
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
CN201710021560.9A
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.)
Nanjing University
Original Assignee
Nanjing 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 Nanjing University filed Critical Nanjing University
Priority to CN201710021560.9A priority Critical patent/CN106708536A/zh
Publication of CN106708536A publication Critical patent/CN106708536A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种中断驱动系统程序生成和分析方法,包括以下步骤:获取中断驱动系统设计数据;根据中断驱动系统设计数据建立中断驱动系统模型;根据中断驱动系统模型导出代码框架,所述代码框架包括中断处理程序、系统任务处理程序;将系统任务处理程序中的任务子函数人工填充完整,并使用WCET分析工具分析其函数最坏运行时间,对比源代码框架中的最坏时间标注,判断其是否满足要求进行处理。本发明将各类不同具体运用场景下的中断驱动系统归纳转化为某种相对固定的模型并由此生成代码框架,可以减少程序错误和提高开发效率,并在此基础上做进一步代码分析,确定是否满足中断驱动系统设计需求。

Description

一种中断驱动系统程序生成和分析方法
技术领域
本发明涉及数据处理和代码生成分析领域,尤其涉及一种针对中断驱动系统代码框架的生成,进而对补充完整的代码做分析验证的方法。
背景技术
中断驱动系统(interrupt-driven system)是指一类由系统任务和中断处理程序组成的实时控制系统。这类系统要求较高的安全性和可靠性,任何微小的错误都可能造成人员伤亡或后果难以估计的重大损失。在现实生活中,中断驱动系统被广泛应用于安全关键系统中,如医疗辅助系统、轨道交通控制系统、航空航天控制系统。因此,系统的正确性保障有着特别重要的现实意义。
在这种情况下,怎么正确高效的构建编写出中断驱动系统,是一个值得探索的方向。中断驱动系统对具体不同的应用场景,会有不同的要求和编写过程,这对代码的可读性和正确性提出更高的要求,将不同应用场景下的中断驱动系统转化为相对固定模式下的系统模型,可简化中断驱动系统编写流程并提高准确率。
发明内容
本发明的目的是提供一种中断驱动系统程序生成和分析方法,以减少程序错误和提高开发效率,并在此基础上做进一步代码分析,确定其是否满足中断驱动系统设计需求。
为实现上述目的,本发明采用的技术方案是:
一种中断驱动系统程序生成和分析方法,包括以下步骤:
步骤1,获取中断驱动系统设计数据;
步骤2,根据步骤1获取的中断驱动系统设计数据建立中断驱动系统模型;
步骤3,根据步骤2建立的中断驱动系统模型导出代码框架,所述代码框架包括中断处理程序、系统任务处理程序;
步骤4,将系统任务处理程序中的任务子函数人工填充完整,并使用WCET分析工具分析其函数最坏运行时间;
步骤5,对比源代码框架中的最坏时间标注,判断其是否满足要求进行处理。
所述步骤1中,中断驱动系统设计数据包括中断驱动系统的中断事件、中断及其处理程序、系统任务及其处理程序、共享变量。
所述步骤2包括:
步骤21,输入中断驱动系统的任务及其处理程序信息,中断及其处理程序信息;
步骤22,输入中断驱动系统所能发生的中断事件信息;
步骤23,对输入中断事件选择设计好的中断处理程序和任务处理程序进行处理。
所述步骤23的具体步骤为:对输入的中断事件选择设计好的中断处理程序,分配控制命令字,期间要检查中断处理程序是否有足够CPU时间响应该中断事件;再将处理中断事件所需消耗的CPU时间按设计分割成一个或多个小的时间片,对每个时间片选择某个任务处理程序,表示在该系统任务内运行中断事件引发的操作,运行时间为此时间片所规定的时间,期间需要检查选择的系统任务处理程序所剩CPU运行时间是否满足分割出时间片要求。
所述步骤3中,中断处理程序中包含其所需响应的中断事件,并设置好对应的控制命令字;系统任务处理程序包含在其CPU时间内所需运行的中断事件处理时间片操作,每个时间片对应一个任务子函数,根据中断处理程序中设置的控制命令字确定调用哪个任务子函数完成处理,期间需要对生成的函数使用注释或其它方式标注其设计信息。
所述步骤4中,使用WCET分析工具对源码以函数为单位计算各任务子函数的实际最坏运行时间。
所述步骤5包括:所述对比最坏时间标注包含以下步骤:
步骤51:对比WCET工具计算出的任务子函数最坏运行时间和代码框架生成时的最坏运行时间标注;
步骤52:若对每个任务子函数计算出的时间都不大于其最坏运行时间标注,则代码符合系统设计需求代码生成结束;若某个任务子函数计算出的时间大于最坏运行时间标注,则选择以下任一种方式:
(1)重新设计该任务子函数,转至步骤4;
(2)重新设计中断驱动系统模型,转至步骤2。
有益效果:本发明所述的中断驱动系统代码生成和分析方法,将中断驱动系统在设计阶段转化为满足系统要求的模型,使之生成代码框架并做一定分析验证,本发明所述的方法具有如下优点:
(1)本发明提供了一种中断驱动系统代码框架生成方法,减少了中断驱动系统在设计和编写阶段的人为错误,提高了编写效率。
(2)本发明所述的生成方法分析了具体任务子函数的最坏运行时间,确定是否满足系统设计要求,提高了中断驱动系统的可靠性。
附图说明
图1是本发明的方法的流程图。
具体实施方式
一.中断驱动程序模型
中断驱动系统(interrupt-driven system)是指一类由系统任务和中断处理程序组成的实时控制系统。在不同应用场景下会有比较大的差别,将其归纳到相对固定模式的模型下,便于进行后续处理。本发明中,中断驱动程序模型的主要要素有:
1)中断事件:指在中断程序运行过程中,发生的外部事件,这些发生的中断事件的处理有时间要求,必须在限定时间内处理完成,否则会出现错误,影响程序的正确运行。具体的属性有:
a)类型:周期发生/随机发生;
b)重复频率:如果是周期中断,其周期是多少;
c)中断间隔:如果是随机中断,其最小间隔是多少;
d)动态执行时间上限:在系统实际运行时,从中断信号被响应开始计算,最长在多长时间内必须完成;
e)CPU时间:处理完该中断事件CPU所需运行的时间。
2)中断及其处理程序:是指中断驱动系统中响应具体中断事件的程序。其作用是将中断处理程序与某中断事件相绑定,在某中断事件发生时,由该中断处理程序进行处理,设置控制变量命令字,确保系统任务正确运行。具体的属性有:
a)中断号
b)优先级
c)类型:周期发生/随机发生;
d)重复频率:如果是周期中断,其周期是多少;
e)中断间隔:如果是随机中断,其最小间隔是多少;
f)CPU时间:该中断处理程序所能占据的CPU运行时间;
g)偏移量:对于系统调度任务,该处理在周期内开始执行时的偏移量是多少;
3)系统任务及其处理程序:是指中断驱动系统中处理中断事件引发的具体操作的程序。在某中断事件发生时,先由其绑定的中断处理程序进行处理,设置好控制变量命令字,再将该中断事件处理的实际操作根据具体情况和系统设计分割成一份或多份,分别放置于选定的系统任务中。在实际运行时,根据不同的控制变量命令字,执行不同的处理,完成中断事件所引发的具体操作流程。具体的属性有:
a)任务号
b)优先级
c)类型:周期发生/随机发生;
d)重复频率:如果是周期中断,其周期是多少;
e)中断间隔:如果是随机中断,其最小间隔是多少;
f)CPU时间:该系统任务处理程序所能占据的CPU运行时间;
4)共享变量:是指在系统任务的具体操作中会被多处访问的读写变量。
二.中断驱动程序代码框架生成和分析
本发明主要聚焦于如何将中断驱动系统转化为模型,并进行代码框架的生成和代码分析,下面根据说明书附图1所示对本发明的中断驱动系统程序生成和分析方法做进一步说明。
步骤1,获取中断驱动系统设计数据,包括中断驱动系统的中断事件、中断及其处理程序、系统任务及其处理程序、共享变量等信息。
步骤2,根据步骤1获取的中断驱动系统设计数据建立中断驱动系统模型;这里需要开发相应的工具程序根据系统设计信息建立成系统模型,具体过程如下:
步骤21,输入中断驱动系统的任务及其处理程序信息,中断及其处理程序信息;
步骤22,输入中断驱动系统所能发生的中断事件信息;
步骤23,对输入的事件选择设计好的中断处理程序,分配控制命令字,期间要检查中断处理程序是否有足够CPU时间响应该中断事件;再将中断事件所需消耗的CPU时间按设计分割成一个或多个小的时间片,对每个时间片选择某个任务处理程序,表示在该系统任务内运行中断事件引发的操作,运行时间为此时间片所规定的时间,期间需要检查选择的系统任务处理程序所剩CPU运行时间是否满足分割出时间片要求。
步骤3,根据步骤2建立的中断驱动系统模型导出代码框架,该框架主要包括中断处理程序、系统任务处理程序;其中,中断处理程序中包含了他所需响应的中断事件,并设置好对应的控制命令字;系统任务处理程序包含了在其CPU时间所需运行的中断事件处理时间片操作,每个时间片对应一个任务子函数,根据中断处理程序中设置的控制命令字确定调用哪个任务子函数,完成处理,期间需要对生成的函数使用注释或其他方式标注其他设计信息,如该函数运行的CPU时间上限、所要访问到的共享变量等。
步骤4,将系统任务处理程序中的任务子函数人工填充完整,然后对已人工填充完整的任务子函数使用WCET(Worst-case Execution Time)分析工具分析函数最坏运行时间,使用WCET分析工具对源码以函数为单位计算各任务子函数的实际最坏运行时间。
步骤5,对比源代码框架中的最坏时间标注,判断其是否满足要求进行处理。其中对比最坏时间标注包含以下步骤:
步骤51:对比WCET工具计算出的任务子函数最坏运行时间和代码框架生成时的最坏运行时间标注;
步骤52:若满足条件即对于每个任务子函数计算出的时间都不大于其最坏运行时间标注,则所编写中断驱动系统代码符合设计要求代码生成结束,若某个任务子函数不满足条件即计算出的时间大于最坏运行时间标注,需要进行反馈处理,可有以下两种处理方式:(1)任务子函数运行时间过长则重新设计任务子函数,减少子函数操作内容,将多出内容移至同中断事件其他时间片,转至步骤4;
(2)若任务子函数无法做切割或重改后仍无法满足时间限制,则需要重新设计中断驱动系统模型,延长处理该任务子函数所属中断事件的CPU时间,转至步骤2。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种中断驱动系统程序生成和分析方法,其特征在于:包括以下步骤:
步骤1,获取中断驱动系统设计数据;
步骤2,根据步骤1获取的中断驱动系统设计数据建立中断驱动系统模型;
步骤3,根据步骤2建立的中断驱动系统模型导出代码框架,所述代码框架包括中断处理程序、系统任务处理程序;
步骤4,将系统任务处理程序中的任务子函数人工填充完整,并使用WCET分析工具分析其函数最坏运行时间;
步骤5,对比源代码框架中的最坏时间标注,判断其是否满足要求并进行处理。
2.根据权利要求1所述的中断驱动系统程序生成和分析方法,其特征在于:所述步骤1中,中断驱动系统设计数据包括中断驱动系统的中断事件、中断及其处理程序、系统任务及其处理程序、共享变量。
3.根据权利要求1所述的中断驱动系统程序生成和分析方法,其特征在于:所述步骤2包括:
步骤21,输入中断驱动系统的任务及其处理程序信息,中断及其处理程序信息;
步骤22,输入中断驱动系统所能发生的中断事件信息;
步骤23,对输入的中断事件选择设计好的中断处理程序和任务处理程序进行处理。
4.根据权利要求3所述的中断驱动系统程序生成和分析方法,其特征在于:所述步骤23的具体步骤为:对输入的中断事件选择设计好的中断处理程序,分配控制命令字,期间要检查中断处理程序是否有足够CPU时间响应该中断事件;再将处理中断事件所需消耗的CPU时间按设计分割成一个或多个小的时间片,对每个时间片选择某个任务处理程序,表示在该系统任务内运行中断事件引发的操作,运行时间为此时间片所规定的时间,期间需要检查选择的系统任务处理程序所剩CPU运行时间是否满足分割时间片要求。
5.根据权利要求1所述的中断驱动系统程序生成和分析方法,其特征在于:所述步骤3中,中断处理程序中包含其所需响应的中断事件,并设置好对应的控制命令字;系统任务处理程序包含在其CPU时间内所需运行的中断事件处理时间片操作,每个时间片对应一个任务子函数,根据中断处理程序中设置的控制命令字确定调用哪个任务子函数完成处理,期间需要对生成的函数使用注释或其它方式标注其设计信息。
6.根据权利要求1所述的中断驱动系统程序生成和分析方法,其特征在于:所述步骤4中,使用WCET分析工具对源码以函数为单位计算各任务子函数的实际最坏运行时间。
7.根据权利要求1所述的中断驱动系统程序生成和分析方法,其特征在于:所述步骤5包括:所述对比最坏时间标注包含以下步骤:
步骤51:对比WCET工具计算出的任务子函数最坏运行时间和代码框架生成时的最坏运行时间标注;
步骤52:若对每个任务子函数计算出的时间都不大于其最坏运行时间标注,则代码符合系统设计需求代码生成结束;若某个任务子函数计算出的时间大于最坏运行时间标注,则选择以下任一种方式:
(1)重新设计该任务子函数,转至步骤4;
(2)重新设计中断驱动系统模型,转至步骤2。
CN201710021560.9A 2017-01-12 2017-01-12 一种中断驱动系统程序生成和分析方法 Pending CN106708536A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710021560.9A CN106708536A (zh) 2017-01-12 2017-01-12 一种中断驱动系统程序生成和分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710021560.9A CN106708536A (zh) 2017-01-12 2017-01-12 一种中断驱动系统程序生成和分析方法

Publications (1)

Publication Number Publication Date
CN106708536A true CN106708536A (zh) 2017-05-24

Family

ID=58908252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710021560.9A Pending CN106708536A (zh) 2017-01-12 2017-01-12 一种中断驱动系统程序生成和分析方法

Country Status (1)

Country Link
CN (1) CN106708536A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536531A (zh) * 2018-04-03 2018-09-14 中国电子科技集团公司第七研究所 一种基于单片机的任务调度和电源管理方法
CN109558141A (zh) * 2018-11-28 2019-04-02 北京东土科技股份有限公司 一种最坏执行时间wcet的确定方法、装置和可读介质
CN112527706A (zh) * 2020-12-02 2021-03-19 中国电子科技集团公司第五十二研究所 一种服务器cpu受pcie msix中断数目限制而无法适配pcie板卡的解决方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902448A (zh) * 2012-12-28 2014-07-02 中国科学院深圳先进技术研究院 多核处理器软错误压力测试程序生成系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902448A (zh) * 2012-12-28 2014-07-02 中国科学院深圳先进技术研究院 多核处理器软错误压力测试程序生成系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周筱羽 等: "中断驱动控制系统的有界模型检验技术", 《软件学报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536531A (zh) * 2018-04-03 2018-09-14 中国电子科技集团公司第七研究所 一种基于单片机的任务调度和电源管理方法
CN108536531B (zh) * 2018-04-03 2021-08-06 广州技象科技有限公司 一种基于单片机的任务调度和电源管理方法
CN109558141A (zh) * 2018-11-28 2019-04-02 北京东土科技股份有限公司 一种最坏执行时间wcet的确定方法、装置和可读介质
CN112527706A (zh) * 2020-12-02 2021-03-19 中国电子科技集团公司第五十二研究所 一种服务器cpu受pcie msix中断数目限制而无法适配pcie板卡的解决方法
CN112527706B (zh) * 2020-12-02 2022-04-22 中国电子科技集团公司第五十二研究所 一种服务器cpu适配pcie板卡的方法

Similar Documents

Publication Publication Date Title
Heitmeyer et al. The generalized railroad crossing: A case study in formal verification of real-time systems
Alur et al. Hierarchical modeling and analysis of embedded systems
US20090164193A1 (en) Method and System for Verifying Electronic Designs Having Software Components
US6285914B1 (en) Verification method by means of comparing internal state traces
US10019337B2 (en) Class object handle tracking
WO2004036340A3 (en) A method, a language and a system for the definition and implementation of software solutions
CN106708536A (zh) 一种中断驱动系统程序生成和分析方法
US8225286B2 (en) Debugging interpreted input
Gerking et al. Domain-Specific Model Checking for Cyber-Physical Systems.
US9152440B2 (en) User events/behaviors and perceptual computing system emulation
CN111400997B (zh) 一种基于同步执行的处理器核验证方法、系统及介质
JP2002099584A (ja) 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体
Maoz et al. Unrealizable cores for reactive systems specifications
Pan et al. Easy modelling and verification of unpredictable and preemptive interrupt-driven systems
Cavarra et al. Combining sequence diagrams and OCL for liveness
US20050257096A1 (en) Modification of array access checking in AIX
Thompson et al. Software model checking of ARINC-653 flight code with MCP
Konrad et al. Automated analysis of timing information in UML diagrams
CN115374017A (zh) 一种仿真运行可执行文件时抓取现场的方法及计算设备
JPH04311227A (ja) マイクロコンピュータの言語処理装置
Maurer Design verification of the WE 32106 math accelerator unit
US8914274B1 (en) Method and system for instruction set simulation with concurrent attachment of multiple debuggers
Bass et al. A perspective on microcomputer software
CN114153750B (zh) 代码检查方法及装置、代码编写方法、电子设备
JPH08263130A (ja) シミュレーション方式

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170524

RJ01 Rejection of invention patent application after publication