CN101477478B - 一种嵌入式设备时间相关事件的测试方法及系统 - Google Patents
一种嵌入式设备时间相关事件的测试方法及系统 Download PDFInfo
- Publication number
- CN101477478B CN101477478B CN2009100015824A CN200910001582A CN101477478B CN 101477478 B CN101477478 B CN 101477478B CN 2009100015824 A CN2009100015824 A CN 2009100015824A CN 200910001582 A CN200910001582 A CN 200910001582A CN 101477478 B CN101477478 B CN 101477478B
- Authority
- CN
- China
- Prior art keywords
- time
- configuration order
- described configuration
- triggered
- disposing
- 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
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种嵌入式设备时间相关事件的测试方法及系统,为了解决对嵌入式系统设备一些时间相关事件进行测试时效率较低的问题,本发明公开的方法包括:接收用于对嵌入式设备系统时间进行修改的配置命令;根据所述配置命令中配置的时间,重新确定系统时间;根据系统时间,测试嵌入式设备的时间相关事件是否被延时触发,由于根据配置命令中配置的时间,重新确定系统时间,使得延时触发时间相关事件所需的时间缩短,进而在时间相关事件进行测试时效率得到提高了。
Description
技术领域
本发明属于领域,特别涉及一种嵌入式设备时间相关事件的测试方法及系统。
背景技术
对于嵌入式设备通常需要进行长时间的运行测试,以保证设备长时间运行的稳定性。其中,有一类常见的故障是设备长时间运行后,定时器相关处理出错,从而导致一些需要定时触发的时间相关事件(以路由器为例,如路由器中arp(Address Resolution Protocol,地址解析协议)表项正常3600s需要老化)无法触发,引起功能运行异常,大大降低了产品的可靠性。然而,在通常的测试项目中,测试周期一般为两三个月,若时间相关事件需长时间运行后才能被触发(如1年多)则很难测试到是否出现故障。
这里举一个嵌入式设备定时器处理出错的例子。设备的嵌入式操作系统常用的定时计数器为31位,假设cpu的时钟周期是10ms,这样,系统需要运行231/3600/100/24=248.56天,定时计数器才会发生翻转,而通常情况下,定时计数器翻转如果不进行特殊处理就会引起系统时间错误。从而导致使用系统时钟的功能模块的定时器异常,这样功能模块对时间相关的处理就会出错,导致设备运行异常,如arp表项到3600s后无法正常老化。而上面系统时钟出错的情况,由于需要248.56天的运行才能出现,所以,在正常两三个月的测试项目周期中很难测出来,从而导致产品的可靠性降低。
另一方面,在进行协议一致性测试时,需要对一些时间相关事件进行测试,例如,ospf(Open Shortest Path First,开放式最短路径优先)每隔1800s需要周期性的对本地产生的路由发送一次路由刷新。当测试人员进行ospf路由刷新测试时,就需要等待30分钟才能完成测试工作。
可见现有技术中对嵌入式系统设备一些时间相关事件进行测试时效率较低。
发明内容
为了解决现有技术中对嵌入式系统设备一些时间相关事件进行测试时效率较低的问题,本发明实施例提供了一种嵌入式设备时间相关事件的测试方法,包括:
发送用于对嵌入式设备系统时间进行修改的配置命令;
根据所述配置命令中配置的时间,重新确定系统时间,所述配置命令中配置的时间和其之后第一次触发时间相关事件的时间的差值的绝对值,小于所述配置命令被接收的时间和其之后第一次触发时间相关事件的时间的差值的绝对值;
根据系统时间,测试嵌入式设备的时间相关事件是否被触发。
同时本发明实施例还提供一种嵌入式设备时间相关事件的测试系统,包括:
发送模块:用于发送用于对嵌入式设备系统时间进行修改的配置命令;
设置模块:用于根据所述配置命令中配置的时间,重新确定系统时间,所述配置命令中配置的时间和其之后第一次触发时间相关事件的时间的差值的绝对值,小于所述配置命令被接收的时间和其之后第一次触发时间相关事件的时间的差值的绝对值;
测试模块:用于根据系统时间,测试嵌入式设备的时间相关事件是否被触发。
由上述本发明提供的具体实施方案可以看出,正是由于根据所述配置命令中配置的时间,重新设置系统的节拍数,使得触发时间相关事件所需的时间缩短,进而在时间相关事件进行测试时效率得到提高了。
附图说明
图1为本发明提供的第一实施例方法流程图;
图2为本发明提供的第一实施例各时间点示意图;
图3为本发明提供的第一实施例各时间点示意图;
图4为本发明提供的第二实施例系统结构图。
具体实施方式
为了解决现有技术中对嵌入式系统设备一些时间相关事件进行测试时效率较低的问题,本发明实施例提供一种嵌入式系统设备的测试方法及系统。
下面结合具体的实施例进行详细阐述。首先对嵌入式系统设备操作系统的定时计数器(用于维护jiffies变量)做一个简介。jiffies是设备的嵌入式操作系统内核中的一个全局变量,用来记录系统启动以来产生的节拍数。当需要计算系统运行了多长时间时,可以用jiffies/tickrate来计算(其中,tickrate代表时钟滴答速率,如果系统时钟周期T是10ms,对应的tickrate就是100,代表时钟每秒跳动100次)。操作系统在进行定时服务时,会将预设置的定时触发时间相关事件的jiffies和定时计数器维护的jiffies比较,如果定时计数器维护的jiffies>=预设置的定时触发时间相关事件的jiffies,定时服务就执行该时间相关事件。另外,tv_uptime是嵌入式系统中记录系统运行时间的变量。
本发明提供的第一实施例是一种嵌入式系统设备的测试方法,以路由器设备中的ospf每隔1800s需要周期性的对本地产生的路由发送一次路由刷新(时间相关事件)为例。测试人员进行ospf路由刷新测试时采用的方法流程如图1所示,包括:
步骤101:2008年12月20日12时33分42秒生成路由,对应系统的节拍数为0X12C1F973。
步骤102:根据2008年12月20日12时34分42秒接收的“set system-clock13:02:02 12 20 2008”配置命令重新配置系统时间。
步骤103:根据配置命令中配置的13:02:02 12 20 2008,重新设置系统的节拍数为0X12C49183。
步骤104:在重新设置的节拍数12C49183基础上继续记录产生的节拍数。
步骤105:测试当记录的节拍数达到预定的定时触发时间相关事件的节拍数0X12C4B893时,ospf对本地产生的路由是否发送路由刷新。
在执行上述步骤之前,需在被测路由器的软件里添加一个可以对外提供配置的接口,这样在步骤102中可以通过该接口接收配置命令,并对系统定时器进行设置。
具体细节如下:
对外提供配置的接口可以通过接收控制台的cli命令进行配置。配置命令格式为:set system-clock hh:mm:ss month day year,示例:如需要配置系统时间为2008年12月20号13时2分2秒,则命令为:set system-clock 13:02:02 12 202008。
在设备运行时,该接口在收到配置命令后对系统定时器进行设置。将系统时间设为配置的2008年12月20号13时2分2秒,可以精确到系统时钟周期的粒度。步骤102中“set system-clock 13:02:02 12 20 2008”表示将系统时间设为配置的2008年12月20号,13时2分2秒。
该接口实现方式:该接口由接收模块、传送模块和设置模块三部分构成。接收模块用于从cli模块接收配置命令,cli模块原系统已经实现,本实施例中只需新增系统时钟设置命令:“set system-clock hh:mm:ss month day year”。
传送模块用于判断该设置命令是哪个功能模块注册的,并将这个命令传送对应的功能模块(传递模块原系统中已经有了,本实施例只需实现将新增系统时钟设置命令传送到已有的时钟处理模块)。
步骤101中,生成路由实际的作用是产生一个触发时间相关事件的条件,即首先需要生成路由,之后路由器设备中的ospf每隔1800s周期性的对本地产生的路由发送一次路由刷新。
步骤103中(时钟处理模块中的)设置模块负责对系统定时计数器(jiffies)和相关系统时间(如tv_uptime)进行设置。时钟处理模块中的设置模块在收到传送模块传送过来的设置命令后,先将设置命令中设置的时间tx转换成对应的系统定时计数器(jiffies)的数值Jx,然后将系统定时计数器和相关系统时间设置为对应数值。jiffies的计算方法为:Jx=Jr+(tx-tr)/T。Jx为重新设置的系统的节拍数,Jr为接收配置命令时对应的节拍数,tr为接收所述配置命令的时间。在jiffies设置时需要注意一下,为了保证系统目前任务运行的连贯性,即目前事件的相应任务都已经触发,在修改jiffies前需要让系统完整运行几个完整的时钟周期,所以,在步骤102进行设置时,先要等步骤101执行多个时钟周期后(如1分钟),再执行步骤102进行jiffies的设置,设置的对应jiffies数值也要扣除已经等待经过的时间。
根据上面的系统定时计数器计算的示例。接收配置命令的时间为2008年12月20日12时34分42秒,对应的jiffies值为:0X12C210E3,时钟周期为10ms。将系统时间设置为:2008年12月20日13时02分02秒。则对应的配置命令为:set system-clock 13:02:02 12 20 2008。当系统收到这条配置命令后,先计算出时钟周期数,由于2008年12月20日12时34分42秒到2008年12月20日13时02分02秒的时间长度为1640秒(27分20秒),所以对应的时钟周期数为:(tx-tr)/T=1640s/10ms=164000个。接下去计Jx,Jx=Jr+(tx-tr)/T=0X12C210E3+164000=0X12C49183,则直接将Jx设置为设为0X12C49183。
步骤103中将Jx设置为设为0X12C49183,还未到达预设定的0X12C4B893,在步骤104中需要在0X12C49183的基础上继续记录产生的jiffies,
在步骤105中具体的实现方法可以是,在链路上进行报文捕获,对生成路由步骤后1780s-1850s的报文都进行捕获,检查捕获到的报文,看被测设备是否发出了路由更新报文,若捕获的报文中检查到路由更新报文,则说明设备正常,否则说明设备故障。
其中在步骤103中也可根据配置命令中配置的13:32:02 12 20 2008,进行后续的步骤,不同之处在于,在步骤105中测试当记录的节拍数达到预定的定时触发时间相关事件的节拍数0X12C777B3时,ospf对本地产生的路由是否发送路由刷新。可以看出0X12C777B3和0X12C4B893的差值转换成为时间后等于1800秒,为ospf路由刷新周期。
如图2所示,在通过配置命令重新配置系统时间时,只需|tx-txs|<|tr-trs|就可以实现对时间相关事件进行测试时提高效率的目的,其中txs为tx之后第一次触发时间相关事件的时间,trs为tr之后第一次触发时间相关事件的时间。若tx和tr在时间相关事件的同一个周期内则txs=trs,如图3所示。
本发明提供的第二实施例是一种嵌入式设备时间相关事件的测试系统,其结构如图4所示,包括:
发送模块200:用于发送用于对嵌入式设备系统时间进行修改的配置命令;
设置模块201:用于根据所述配置命令中配置的时间,重新确定系统时间,所述配置命令中配置的时间和其之后第一次触发时间相关事件的时间的差值的绝对值,小于所述配置命令被接收的时间和其之后第一次触发时间相关事件的时间的差值的绝对值;
测试模块202:用于根据系统时间,测试嵌入式设备的时间相关事件是否被定时触发。
进一步,设置模块201:还用于根据所述配置命令中配置的时间,重新设置系统的节拍数Jx并重新确定系统时间,并计算
Jx=Jr+(tx-tr)/T
其中Jr为接收所述配置命令时对应的节拍数,tr为接收所述配置命令的时间,tx为配置命令中配置的时间,T为时钟周期。
进一步,测试模块202:还用于在重新设置的节拍数基础上继续记录产生的节拍数并更新重新确定的系统时间,测试当系统时间达到预定的定时触发时间相关事件的时间时,嵌入式设备的时间相关事件是否被定时触发。
进一步该装置还包括:
触发模块203:用于在发送用于对系统时间进行修改的配置命令预定时间前,产生触发时间相关事件的条件。
进一步,设置模块201:还用于根据所述配置命令中配置的时间,重新设置系统的节拍数,所述配置命令中配置的时间晚于所述配置命令被接收的时间,且早于所述配置命令被接收后第一次触发时间相关事件的时间。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种嵌入式设备时间相关事件的测试方法,其特征在于,包括:
发送用于对嵌入式设备系统时间进行修改的配置命令;
根据所述配置命令中配置的时间,重新确定系统时间,所述配置命令中配置的时间和其之后第一次触发时间相关事件的时间的差值的绝对值,小于所述配置命令被接收的时间和其之后第一次触发时间相关事件的时间的差值的绝对值;
根据系统时间,测试嵌入式设备的时间相关事件是否被触发。
2.如权利要求1所述的方法,其特征在于,根据所述配置命令中配置的时间,重新确定系统时间具体为:
根据所述配置命令中配置的时间,重新设置系统的节拍数Jx并重新确定系统时间,
Jx=Jr+(tx-tr)/T
其中Jr为接收所述配置命令时对应的节拍数,tr为接收所述配置命令的时间,tx为配置命令中配置的时间,T为时钟周期。
3.如权利要求2所述的方法,其特征在于,根据系统时间,测试嵌入式设备的时间相关事件是否被触发具体为:
在重新设置的节拍数基础上继续记录产生的节拍数并更新重新确定的系统时间;
测试当系统时间达到预定的触发时间相关事件的时间时,嵌入式设备的时间相关事件是否被触发。
4.如权利要求1所述的方法,其特征在于,所述发送用于对系统时间进行修改的配置命令之前,还包括:
产生触发时间相关事件的条件。
5.如权利要求1所述的方法,其特征在于,所述配置命令中配置的时间晚于所述配置命令被接收的时间,且早于所述配置命令被接收后第一次触发时间相关事件的时间。
6.一种嵌入式设备时间相关事件的测试系统,其特征在于,包括:
发送模块:用于发送用于对嵌入式设备系统时间进行修改的配置命令;
设置模块:用于根据所述配置命令中配置的时间,重新确定系统时间,所述配置命令中配置的时间和其之后第一次触发时间相关事件的时间的差值的绝对值,小于所述配置命令被接收的时间和其之后第一次触发时间相关事件的时间的差值的绝对值;
测试模块:用于根据系统时间,测试嵌入式设备的时间相关事件是否被触发。
7.如权利要求6所述的系统,其特征在于,设置模块:还用于根据所述配置命令中配置的时间,重新设置系统的节拍数Jx并重新确定系统时间,并计算Jx=Jr+(tx-tr)/T
其中Jr为接收所述配置命令时对应的节拍数,tr为接收所述配置命令的时间,tx为配置命令中配置的时间,T为时钟周期。
8.如权利要求7所述的系统,其特征在于,测试模块:还用于在重新设置的节拍数基础上继续记录产生的节拍数并更新重新确定的系统时间,测试当系统时间达到预定的触发时间相关事件的时间时,嵌入式设备的时间相关事件是否被触发。
9.如权利要求6所述的系统,其特征在于,还包括:
触发模块:用于在发送用于对系统时间进行修改的配置命令之前,产生触发时间相关事件的条件。
10.如权利要求6所述的系统,其特征在于,设置模块:还用于根据所述配置命令中配置的时间,重新设置系统的节拍数,所述配置命令中配置的时间晚于所述配置命令被接收的时间,且早于所述配置命令被接收后第一次触发时间相关事件的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100015824A CN101477478B (zh) | 2009-01-15 | 2009-01-15 | 一种嵌入式设备时间相关事件的测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100015824A CN101477478B (zh) | 2009-01-15 | 2009-01-15 | 一种嵌入式设备时间相关事件的测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101477478A CN101477478A (zh) | 2009-07-08 |
CN101477478B true CN101477478B (zh) | 2011-04-20 |
Family
ID=40838199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100015824A Expired - Fee Related CN101477478B (zh) | 2009-01-15 | 2009-01-15 | 一种嵌入式设备时间相关事件的测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101477478B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2445690C2 (ru) * | 2011-05-20 | 2012-03-20 | Александр Олегович Жуков | Корреляционный измеритель временных сдвигов |
CN105353828B (zh) * | 2015-12-04 | 2018-04-06 | 上海斐讯数据通信技术有限公司 | 一种具有时间校准功能的交换机开关机测试系统及方法 |
CN109992515B (zh) * | 2019-04-02 | 2022-12-27 | 网易(杭州)网络有限公司 | 测试方法及装置、电子设备 |
-
2009
- 2009-01-15 CN CN2009100015824A patent/CN101477478B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101477478A (zh) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7561598B2 (en) | Add-on module for synchronizing operations of a plurality of devices | |
US7940875B2 (en) | System and method for coordinating the actions of a plurality of devices via scheduling the actions based on synchronized local clocks | |
Brown et al. | How fast is fast enough? Choosing between Xenomai and Linux for real-time applications | |
US9129050B2 (en) | Debug in a multicore architecture | |
US9311205B2 (en) | Method and system for thread monitoring | |
Ravindranath et al. | {AppInsight}: Mobile App Performance Monitoring in the Wild | |
US9804944B2 (en) | Data processing system | |
CN101739011B (zh) | 一种基于cpci总线的高精度时钟同步方法及其系统 | |
EP1805621A2 (en) | Method and system for debugging a multi-threaded program executing in a multicore architecture | |
CN101477478B (zh) | 一种嵌入式设备时间相关事件的测试方法及系统 | |
CN1952905A (zh) | 容错计算机系统的搭接式故障注入装置及方法 | |
CN111088998B (zh) | 煤矿中心站监控系统测试方法、装置及分站模拟系统 | |
US20180341285A1 (en) | Method for obtaining timestamp and computer device using the same | |
CN109840178A (zh) | 一种监测日志信息的方法、移动终端以及装置 | |
US7284142B2 (en) | Real time interrupt module for operating systems and time triggered applications | |
CN109960599A (zh) | 芯片系统及其看门狗自检方法、电器设备 | |
CN101320416A (zh) | 一种检测软件处于调试状态的方法和系统 | |
CN101359985A (zh) | 基于lxi设备精密时间同步协议的嵌入式系统 | |
CN106482742A (zh) | 计步数据的获取方法及装置 | |
CN201811988U (zh) | 模板触发数字示波器 | |
JP6476725B2 (ja) | 伝送装置及び時刻同期方法 | |
CN101303662B (zh) | 一种实现风机转速采集的方法及装置 | |
CN103699103B (zh) | 分散控制系统中事件顺序记录的方法 | |
CN114089258B (zh) | 一种智能电能表时钟加速模拟运行方法及系统 | |
Motohashi et al. | Data Acquisition System of Beam Loss Monitors of J-PARC Main Ring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
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 |
Granted publication date: 20110420 Termination date: 20160115 |
|
EXPY | Termination of patent right or utility model |