CN105589766A - 一种VxWorks启动过程任务异常检测方法 - Google Patents

一种VxWorks启动过程任务异常检测方法 Download PDF

Info

Publication number
CN105589766A
CN105589766A CN201510959688.0A CN201510959688A CN105589766A CN 105589766 A CN105589766 A CN 105589766A CN 201510959688 A CN201510959688 A CN 201510959688A CN 105589766 A CN105589766 A CN 105589766A
Authority
CN
China
Prior art keywords
task
vxworks
status word
word
status
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.)
Granted
Application number
CN201510959688.0A
Other languages
English (en)
Other versions
CN105589766B (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.)
Nanjing SAC Automation Co Ltd
Original Assignee
Nanjing SAC Automation 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 Nanjing SAC Automation Co Ltd filed Critical Nanjing SAC Automation Co Ltd
Priority to CN201510959688.0A priority Critical patent/CN105589766B/zh
Publication of CN105589766A publication Critical patent/CN105589766A/zh
Application granted granted Critical
Publication of CN105589766B publication Critical patent/CN105589766B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种VxWorks启动过程任务异常检测方法,属于嵌入式操作系统技术领域。首先,定义一个全局变量M作为状态字,并初始化状态字M,并为每个任务定义唯一数字标识,使状态字M每位对应于一个任务,每位的数值代表任务的状态信息;然后,VxWorks启动初始化各任务,启动的同时开始计时,并在任务初始化过程中根据执行情况更新状态字M相应位的数值;启动完成后,检测状态字M数值,根据状态信息判断任务是否异常。本发明方法简单,能够方便快速定位VxWorks启动过程中异常任务,对问题的定位和解决提供帮助,从而加快了产品研发的进度。

Description

一种VxWorks启动过程任务异常检测方法
技术领域
本发明涉及一种嵌入式操作系统任务异常检测方法,尤其涉及一种VxWorks启动过程任务异常检测方法,属于嵌入式操作系统技术领域。
背景技术
VxWorks是美国WindRiverSystem公司(即WRS公司,简称风河公司)于1983年推出的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分,具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。VxWorks以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。目前嵌入式系统应用已经深入到我们生活中的各个领域,手机、机顶盒、MP4、交换机、路由器等都可以归结为嵌入式设备。在这些嵌入式设备中,有一部分设备需要功能强大、实时性强的操作系统,VxWorks正是这类操作系统中的佼佼者,因此很多嵌入式设备都采用VxWorks来实现。
VxWorks具有一个高性能的操作系统内核Wind。VxWorks的Wind内核为VxWorks提供了一个高性能的实时多任务操作环境。在嵌入式系统中,通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。通常情况下,如图1VxWorks启动过程中任务的程序流程图所示,任务的代码实现包括定义局部变量,初始化局部变量,初始化全局变量,然后进入任务的主循环,在主循环里进行具体任务处理,大部分的任务都是采用这种无限循环的结构。在BootLoader启动时先初始化多任务,然后执行各任务中的主循环,只要系统正常运行,这些任务一直执行主循环。
VxWorks操作系统采取线性单一实地址空间模式,所有任务都运行在同一地址空间,不区分用户态和核心态。VxWorks任务具有这些特点:(1)任务切换时不需要进行虚拟地址空间切换;(2)任务间可以直接共享变量,不需要通过内核在不同的地址空间复制数据;(3)系统调用时不需要在核心态和用户态之间切换,相当于直接的函数调用。正是由于这些特点,系统中的任何一个任务都可以访问整个内存线性空间的任何一个地址,没有任何约束和保护,开发过程中代码如果写的不好,很容易出现异常。而且,这些系统都比较复杂,有的甚至多达几十个任务在同时运行,并且基本上都是多人协同开发,出现异常如果不及时发现解决的话,越到后面解决起来就越难,付出的代价也就越大。目前,异常任务的出现并不是可预期的,它具有调试信息少、随机性强、可重现性差、定位问题困难等特点,犹如隐藏在软性系统内的不定时炸弹,随时都可能导致软件系统瘫痪。这就要求软件开发人员使用的嵌入式操作系统能够在启动过程中提供高效、准确的任务监控的方法。
发明内容
本发明的目的在于克服现有技术的不足,提供一种VxWorks启动过程任务异常检测方法,能够方便快速定位VxWorks启动过程中异常任务,从而加快了产品研发的进度。
本发明解决其技术问题所采用的技术方案是:一种VxWorks启动过程任务异常检测方法,包括以下步骤:
步骤一,定义一个全局变量状态字M,并初始化状态字M;
步骤二,根据状态字M的位数为每个任务定义唯一数字标识,使状态字M每位对应于一个任务,每位的数值代表任务的状态信息;
步骤三,VxWorks启动初始化各任务,启动的同时开始计时;
步骤四,任务初始化过程中根据执行情况更新状态字M相应位的数值;
步骤五,启动完成后,T1时刻检测状态字M数值,根据状态信息判断任务是否异常,并根据判断结果进行相应处理。
进一步的,状态字M为四字节无符号整数,32个bit,状态字M每位对应的数值为“1”或“0”来表示每个任务为“正常”或“异常”,状态字M初始化为0。
进一步的,任务的数字标识范围为0~31。
进一步的,任务初始化过程中更新状态字的过程为,若任务初始化正常,则根据任务的数字标识置状态字M中相应位为“1”。
进一步的,判断任务是否异常的过程为,状态字M中某位为0则相应的任务为异常,某位为1则相应的任务为正常。
本发明的有益效果是,本发明所提供的VxWorks启动过程任务异常检测的实现方法,先定义一个全局变量,系统初始化时设为0;为每个任务定义一个不同的数字标识;每个任务在进入主循环前设置全局变量中相对应的位为1;启动完成后通过全局变量的值来检测启动过程任务是否出现了异常,方法简单,能够方便快速定位VxWorks启动过程中异常任务,对问题的定位和解决提供帮助,从而加快了产品研发的进度。
附图说明
图1是一般VxWorks启动过程中任务的程序流程图;
图2是本发明中状态字M的存储示意图;
图3是本发明中任务和数字标识的对应示意图;
图4是本发明中VxWorks启动过程中任务的程序流程图;
图5是本发明中任务全部正常的状态字M的存储示意图;
图6是本发明中有任务异常的状态字M的存储示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图2-5所示,一种VxWorks启动过程任务异常检测方法,包括以下步骤:
步骤一,定义一个全局变量M作为状态字,并初始化状态字M;
如图2所示,定义一个4字节无符号整数的全局变量M作为状态字,32个bit,状态字M每位对应的数值为“1”或“0”来表示每个任务为“正常”或“异常”,状态字M初始化为0。
步骤二,根据状态字M的位数为每个任务定义唯一数字标识,使状态字M每位对应于一个任务,每位的数值代表任务的状态信息;
本实施例中,如图3所示,总共有10个任务,各任务所对应的数字标识为0~9,即任务A的数字标识为0对应状态字M的第0位,任务B的数字标识为1对应状态字M的第1位,依次类推,任务J的数字标识为9对应状态字M的第9位。根据状态字M有32位,任务的数字标识范围为0~31,分别对应状态字M的第0~31位。状态字M每位的数值代表任务的状态信息,每位对应的数值为“1”或“0”表示每个任务为“正常”或“异常”,状态字M初始化为0。
步骤三,VxWorks启动初始化各任务,启动的同时开始计时;
VxWorks启动初始化各任务,启动的同时开始计时,以便启动完成后检测各任务执行状态。
步骤四,任务在初始化过程中根据执行情况更新状态字M相应位的数值;
如图4所示,在任务代码的主循环之前加入任务状态检测功能,根据任务对应的数字标识设置状态字M相对应的位。若任务正常,则根据任务的数字标识置状态字M中相应位为“1”。在本实施例中,若任务A~任务J在执行过程中正常,则置状态字M中相应的0~9位为“1”。
步骤五,启动完成后,T1时刻检测状态字M数值,根据数值表明的状态信息判断任务是否异常,并根据判断结果进行相应处理。
VxWorks启动完成后,检测状态字M数值,根据数值表明的状态信息判断任务是否异常。例如一个系统从上电到正常工作需要30秒钟,那么可以从启动开始之后的50秒或者60秒才去查看状态字M的值。如果启动过程正常,状态字M的值应该是1023,十六进制表示为0x3ff,在内存中状态字M的存储如图5所示。如果状态字M的值不是1023,那么就表示启动过程中有任务出现了异常。例如启动完成后,状态字M的存储如图6所示,状态字M的值是703,十六进制表示为0x2bf。因为状态字M的第6个比特位和第8个比特位不是1,由于数字标识和比特位是一一对应的,而任务和数字标识也是一一对应的,所以可以得出结论数字标识6和8对应的任务启动时出现了异常,也就是任务G和任务I启动时出了异常。检测出异常任务后,VxWorks操作系统进行相应处理。
本发明方法简单,能够方便快速定位VxWorks启动过程中异常任务,使得系统在启动过程中出现问题时研发人员能够很快知道,对问题的定位和解决提供帮助,从而加快了产品研发的进度。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (6)

1.一种VxWorks启动过程任务异常检测方法,其特征是,包括以下步骤:
步骤一,定义一个全局变量状态字M,并初始化状态字M;
步骤二,根据状态字M的位数为每个任务定义唯一数字标识,使状态字M每位对应于一个任务,每位的数值代表任务的状态信息;
步骤三,VxWorks启动初始化各任务,启动的同时开始计时;
步骤四,任务初始化过程中根据执行情况更新状态字M相应位的数值;
步骤五,启动完成后,T1时刻检测状态字M数值,根据状态信息判断任务是否异常,并根据判断结果进行相应处理。
2.根据权利要求1所述的一种VxWorks启动过程任务异常检测方法,其特征是,所述步骤一中,状态字M为四字节无符号整数,32个bit,状态字M每位对应的数值为“1”或“0”来表示每个任务为“正常”或“异常”,状态字M初始化为0。
3.根据权利要求1所述的一种VxWorks启动过程任务异常检测方法,其特征是,所述步骤二中,任务的数字标识范围为0~31。
4.根据权利要求1所述的一种VxWorks启动过程任务异常检测方法,其特征是,所述步骤四中,任务初始化过程中更新状态字的过程为,若任务初始化正常,则根据任务的数字标识置状态字M中相应位为“1”。
5.根据权利要求1所述的一种VxWorks启动过程任务异常检测方法,其特征是,所述步骤五中,T1时间范围为50~60S。
6.根据权利要求1所述的一种VxWorks启动过程任务异常检测方法,其特征是,所述步骤五中,判断任务是否异常的过程为,状态字M中某位为0则相应的任务为异常,某位为1则相应的任务为正常。
CN201510959688.0A 2015-12-21 2015-12-21 一种VxWorks启动过程任务异常检测方法 Active CN105589766B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510959688.0A CN105589766B (zh) 2015-12-21 2015-12-21 一种VxWorks启动过程任务异常检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510959688.0A CN105589766B (zh) 2015-12-21 2015-12-21 一种VxWorks启动过程任务异常检测方法

Publications (2)

Publication Number Publication Date
CN105589766A true CN105589766A (zh) 2016-05-18
CN105589766B CN105589766B (zh) 2018-07-13

Family

ID=55929365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510959688.0A Active CN105589766B (zh) 2015-12-21 2015-12-21 一种VxWorks启动过程任务异常检测方法

Country Status (1)

Country Link
CN (1) CN105589766B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112114556A (zh) * 2020-09-24 2020-12-22 山信软件股份有限公司 副枪运行监控方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889988A (en) * 1995-01-03 1999-03-30 Intel Corporation Debugger for debugging tasks in an operating system virtual device driver
CN101291487A (zh) * 2008-05-26 2008-10-22 嘉兴闻泰通讯科技有限公司 手机上低功耗的mp3播放方法
CN101329631A (zh) * 2007-06-21 2008-12-24 大唐移动通信设备有限公司 一种嵌入式系统自动检测和恢复启动的方法及装置
CN102122258A (zh) * 2011-03-22 2011-07-13 四川长虹电器股份有限公司 嵌入式设备文件系统受损的修复方法
CN102141947A (zh) * 2011-03-30 2011-08-03 东方通信股份有限公司 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统
CN104063477A (zh) * 2014-06-30 2014-09-24 广东威创视讯科技股份有限公司 嵌入式系统启动异常的处理方法及装置
CN105159819A (zh) * 2015-09-01 2015-12-16 汉柏科技有限公司 一种记录内核异常栈及调试信息的方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889988A (en) * 1995-01-03 1999-03-30 Intel Corporation Debugger for debugging tasks in an operating system virtual device driver
CN101329631A (zh) * 2007-06-21 2008-12-24 大唐移动通信设备有限公司 一种嵌入式系统自动检测和恢复启动的方法及装置
CN101291487A (zh) * 2008-05-26 2008-10-22 嘉兴闻泰通讯科技有限公司 手机上低功耗的mp3播放方法
CN102122258A (zh) * 2011-03-22 2011-07-13 四川长虹电器股份有限公司 嵌入式设备文件系统受损的修复方法
CN102141947A (zh) * 2011-03-30 2011-08-03 东方通信股份有限公司 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统
CN104063477A (zh) * 2014-06-30 2014-09-24 广东威创视讯科技股份有限公司 嵌入式系统启动异常的处理方法及装置
CN105159819A (zh) * 2015-09-01 2015-12-16 汉柏科技有限公司 一种记录内核异常栈及调试信息的方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112114556A (zh) * 2020-09-24 2020-12-22 山信软件股份有限公司 副枪运行监控方法及系统
CN112114556B (zh) * 2020-09-24 2024-03-26 山信软件股份有限公司 副枪运行监控方法及系统

Also Published As

Publication number Publication date
CN105589766B (zh) 2018-07-13

Similar Documents

Publication Publication Date Title
US10534861B2 (en) Automated term extraction
US10438118B2 (en) Verification by metamorphic testing of applications that utilize artificial intelligence
CN109669873B (zh) 用户界面自动测试方法及装置、电子设备及存储介质
EP3467662A1 (en) Verification of applications that utilize artificial intelligence
CN113568821A (zh) 一种ai芯片计算性能的测试方法、装置、设备、及介质
CN114995835A (zh) 一种应用自动化部署方法、系统、设备和可读存储介质
CN105589766A (zh) 一种VxWorks启动过程任务异常检测方法
CN110471828B (zh) 一种操作系统测试方法、装置及其设备
Bartholomew An industry proof-of-concept demonstration of automated combinatorial test
CN111597100A (zh) 一种嵌入式系统故障日志记录及分析方法
CN109117125B (zh) 数字飞行器多平台多运行模式源代码的人工智能书写方法
CN105204990A (zh) 一种异常调试方法及系统
CN113378182B (zh) 一种提权漏洞检测方法、装置、设备及介质
CN113672260B (zh) 一种处理器cpu初始化方法
CN117597669A (zh) 一种测试方法、系统及装置
CN113805848B (zh) 目标机控制软件集成方法和系统
WO2004088508A2 (en) A method of creating software that is portable across different operating systems
CN114691504A (zh) 一种基于调用指令替换的故障注入方法
Raut et al. Android mobile automation framework
CN113946979A (zh) 一种导航算法精度验证方法、系统、设备及器存储介质
US20240193073A1 (en) Configuring a launch of components of a hardware-in-the-loop simulation environment
CN106033385A (zh) 用于追踪程序执行状态的方法与多核心处理系统
CN210323380U (zh) 一种组合导航接收机开发平台
CN111737118B (zh) 一种流水线测试方法、装置、电子设备及存储介质
Zhang et al. Research on Simulation Technology Based on Fault Injection

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant