CN102968376A - 基于执行路径全过程的系统窗口期滑动测试方法 - Google Patents
基于执行路径全过程的系统窗口期滑动测试方法 Download PDFInfo
- Publication number
- CN102968376A CN102968376A CN2012105299152A CN201210529915A CN102968376A CN 102968376 A CN102968376 A CN 102968376A CN 2012105299152 A CN2012105299152 A CN 2012105299152A CN 201210529915 A CN201210529915 A CN 201210529915A CN 102968376 A CN102968376 A CN 102968376A
- Authority
- CN
- China
- Prior art keywords
- value
- clock
- counter
- tested interface
- timing
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及基于执行路径全过程的系统窗口期滑动测试方法,包括步骤:1)设置时钟相关寄存器;2)注册时钟中断服务程序,使能时钟中断;3)设置时钟中断发生的步进值;4)获取时钟计数器当前计数值;5)若计数值大于步进值,则转到步骤4);6)获取另一时钟计数器的值,作为被测试接口的计时开始值;7)调用被测试接口;8)获取步骤6)中的时钟计数器值作为被测试接口的计时结束值;9)计时结束值减去计时开始值,计算被测试接口的耗时;10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。本发明用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开发和测试的覆盖性难题。
Description
技术领域
本发明涉及一种基于执行路径全过程的系统窗口期滑动测试方法,属于操作系统开发与测试方法领域。
背景技术
对嵌入式实时操作系统(ERTOS)开发和测试技术的研究主要集中在实时性能参数的测试上,通常包括上下文切换时间(task switching time)、抢占时间(preemption time)、中断延迟时间(interrupt latency time)等。对于系统设计正确性测试,实际测试时划分为功能性测试,其测试用例设计通常是针对每一项测试要求设计单独的测试用例。
现有技术存在的主要问题:
1.针对系统功能测试,其测试粒度过大,不能很好的测试系统的正确性,很多问题需要在实际使用过程中才能发现。
2.逐项测试的方法不能验证系统的整体工作情况。
发明内容
为了解决上述问题,本发明提供了一种全新的嵌入式实时操作系统测试方法,它通过对硬件时钟定时器的配置,在测试用例设计时利用设计的逻辑,来验证操作系统在特定接口的任务切换、上下文保存等整个执行路径中,异步中断在不同阶段到来时并执行相关耦合性的其他接口,以此来形成各种交错路径组合,测试和验证操作系统能否正确执行,根据不同的设置情况,相邻两次中断到来的时间间隔可以精确到一个CPU周期。
为实现上述目的,本发明采用的技术方案如下:
一种基于执行路径全过程的系统窗口期滑动测试方法,包括以下步骤:
1)设置时钟相关寄存器:预分频计数器,预置数寄存器,计数器控制寄存器;
2)注册时钟中断服务程序,使能时钟中断;
3)设置时钟中断发生的步进值,初始值为1;
4)获取时钟计数器当前计数值;
5)若计数值大于步进值,则转到步骤4),否则继续以下步骤;
6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值;
7)调用被测试接口;
8)获取步骤6)中的时钟计数器值,将其作为被测试接口的计时结束值;
9)计时结束值减去计时开始值,计算被测试接口的耗时;
10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。
本发明的有益效果是:
在实际使用中,根据不同硬件平台特性,包括晶振频率、预分频计数器、预置数寄存器、计数器控制寄存器的不同设置,可以控制相邻两次时钟中断产生的时间间隔,在最优情况下可以保证两次中断的间隔为一个CPU周期。由于引入类似高度可控的中断源,可以打破被测试接口的任意执行路径,所以只要将其有限的耦合性相关接口路径引入到重入路径中,就可以列举出所有的执行路径组合,以此用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开发和测试的覆盖性难题。
附图说明
图1为系统调用时段说明图;
图2为测试用例工作流程图。
具体实施方式
本发明提供了一种基于执行路径全过程的系统窗口期滑动测试方法。
一种基于执行路径全过程的系统窗口期滑动测试方法,包括以下步骤:
1)设置时钟相关寄存器:预分频计数器,预置数寄存器,计数器控制寄存器;
2)注册时钟中断服务程序,使能时钟中断;
3)设置时钟中断发生的步进值,初始值为1;
4)获取时钟计数器当前计数值;
5)若计数值大于步进值,则转到步骤4),否则继续以下步骤;
6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值;
7)调用被测试接口;
8)获取步骤6)中的时钟计数器值,将其作为被测试接口的计时结束值;
9)计时结束值减去计时开始值,计算被测试接口的耗时;
10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。
系统调用过程与中断对应时间关系共分为两种:
系统调用过程中不被时钟中断打断;
系统调用过程中被时钟中断打断;
在系统调用过程中执行以下步骤:
1)记录每次系统调用从开始到返回所花费的时间;
2)创建高优先级任务T1和低优先级任务T2,T1用来调用测试用例,T2负责设置全局标志,可以被T1用来判别切换是否成功;
3)在T1中调用测试用例,打印系统调用时间;
4)重复步骤3)直到两种系统调用过程与中断对应时间关系全部出现。
本发明属于操作系统功能和性能测试中采用的一种高精度测试方法,主要用于测试系统调用过程中,异步时钟中断到来时系统的响应情况。其工作原理是通过配置计数器控制寄存器及相关寄存器,调整时钟中断发生的时机,使中断连同其服务程序在被测接口整个执行路径中发生,从而观察在不同时间点中断发生时的各种路径交错组合是否能使操作系统正常工作及其各项性能指标所产生的变化等。在实际使用中,根据不同硬件平台特性,包括晶振频率、预分频计数器、预置数寄存器、计数器控制寄存器的不同设置,可以控制相邻两次时钟中断产生的时间间隔,在最优情况下可以保证两次中断的间隔为一个CPU周期。由于引入类似高度可控的中断源,可以任意打破被测试接口的任意执行路径,所以只要将其有限的耦合性相关接口路径引入到重入路径中,就可以列举出所有的执行路径组合,以此用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开发和测试的覆盖性难题。
下面详细说明。
本发明方法包括以下步骤:
1)设置两个时钟相关寄存器:预分频计数器,预置数寄存器,计数器控制寄存器,以初始化时钟相关寄存器,此处假设时钟计数器是按照从大到小计数的,其中一个作为系统时钟,一个作为计数时钟,计数时钟的时钟周期要大于系统时钟周期,且以大于被测接口执行时间为宜,避免在测试被测接口时计数时钟发生中断,而造成一定的计时误差;
2)注册时钟中断服务程序,使能时钟中断,以开启时钟,并在时钟中断到来时,调用中断服务程序进行计时处理;
3)设置一步进值,其初始值为1,该步进值用于控制系统时钟窗口期;
4)获取系统时钟计数器当前的计数值;
5)若计数值大于步进值,则转到步骤4),此步骤5)的意图是排除掉窗口期以外的值;
6)获取计数时钟的值,该值用于被测试接口的计时开始值;
7)调用被测试接口;
8)获取计数时钟值,该值用于被测试接口的计时结束值;
9)取计时开始值减去计时结束值,用作被测试接口的耗时,由于计数时钟计数器是从大到小计数的,故计时开始值大于计时结束值;
10)增加步进值,若小于1)中设置的系统时钟计数器的初始值,则继续扩大窗口期,转到4),否则说明已经到达最大的时钟窗口期,终止。
系统调用过程与中断对应时间关系共分为两种,如图1所示:
1.系统调用过程中不被时钟中断打断;
2.系统调用过程中被时钟中断打断。
测试流程如下所示:
此处假设目标板有两个时钟定时器timer1和timer2,并且timer2为系统时钟中断触发寄存器,具体步骤如下:
1)设置timer1为计数器,记录每次系统调用从开始到返同所花费的时间;
2)创建任务T1(high priority)和T2(low priority),T1用来调用测试用例,T2负责设置全局标志,可以被T1用来判别切换是否成功;
3)在T1中调用测试用例,打印系统调用时间;
4)重复步骤3)直到图1中两种情况全部出现。
测试用例如图2所示:
1)获取系统时钟定时器timer2的值,如果值大于步进值scale,则转到1),否则转到2);
2)获取定时器timer1的值,用于被测试接口计时开始值;
3)调用被测试接口tsk_delay;
4)再次获取定时器timer1的值,用于被测试接口计时结束值;
5)计算被测试接口时间值time,打印该值;
6)步进值scale增加delta,delta为相邻两次系统调用时刻的间隔;
7)如果步进值scale大于系统时钟定时器间隔max_limit,则终止;否则转到1)。
实现范例:
代码用C语言实现,硬件平台为SPARC V8,操作系统为SZOS。
系统时钟配置部分与具体硬件平台有关,以下代码为珠海欧比特公司的S698-MIL芯片最小系统开发板所使用的配置:
sz_clk_enable()函数设置系统定时器timer2和定时器timer1的预分频数为0;系统定时器timer2预置计数为晶振频率,定时器timer1的预置计数为晶振频率除以用户设置的每秒钟时钟节拍数,再减去一,该预置计数即为定时器时间间隔;设置定时器控制寄存器,开启定时器定时功能,并设置定时器计数溢出时自动加载预置计数;使能系统时钟timer2的中断。
以下代码为用户任务中所应使用的代码结构:
以上程序简要说明如下:
在main()中首先初始化串口,再创建低优先级任务tsk_20ms,该任务优先级为100,任务栈为大小是9000的stack0,任务运行体为tsk_20ms()函数;创建高优先级任务tsk_1ms,该任务优先级为90,任务栈为大小是9000的stack1,任务运行体为tsk_1ms()函数;main()退出后,tsk_1ms()将运行。
在tsk_1ms()中,设置步进值scale初始值为1,然后进入循环体,获取系统定时器计数器当前计数值,直到值小于步进值scale才停止获取。接下来获取定时器timer1的计数值,用来作为被测试接口tsk_delay()的开始计时值。调用被测试接口tsk_delay(),延迟一个时钟节拍,此时若在将任务tsk_1ms放置延迟队列前定时器中断发生,任务会发生切换,任务tsk_20ms被调度运行,tsk_20ms()中仅设置一个标志,用来标记任务是否切换成功,运行完后回到tsk_1ms()中继续执行;若在将任务tsk_1ms放置延迟队列后,调用任务调度器前定时器中断发生,则不会发生任务切换,tsk_1ms()继续执行,再次获取定时器timer1的计数值,计算接口耗时iTime,如果发生任务切换了,则计时包括了任务切换时间,不准确,打印出错信息;否则打印接口耗时iTime。递加步进值,当步进值大于定时器预置计数时,则说明一个滑动周期已经测试完毕,终止。
Claims (2)
1.一种基于执行路径全过程的系统窗口期滑动测试方法,其特征在于包括以下步骤:
1)设置时钟相关寄存器:预分频计数器,预置数寄存器,计数器控制寄存器;
2)注册时钟中断服务程序,使能时钟中断;
3)设置时钟中断发生的步进值,初始值为1;
4)获取时钟计数器当前计数值;
5)若计数值大于步进值,则转到步骤4),否则继续以下步骤;
6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值;
7)调用被测试接口;
8)获取步骤6)中的时钟计数器值,将其作为被测试接口的计时结束值;
9)计时结束值减去计时开始值,计算被测试接口的耗时;
10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。
2.如权利要求1所述的基于执行路径全过程的系统窗口期滑动测试方法,其特征在于:
系统调用过程与中断对应时间关系共分为两种:
系统调用过程中不被时钟中断打断;
系统调用过程中被时钟中断打断;
在系统调用过程中执行以下步骤:
1)记录每次系统调用从开始到返同所花费的时间;
2)创建高优先级任务T1和低优先级任务T2,T1用来调用测试用例,T2负责设置全局标志,可以被T1用来判别切换是否成功;
3)在T1中调用测试用例,打印系统调用时间;
4)重复步骤3)直到两种系统调用过程与中断对应时间关系全部出现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210529915.2A CN102968376B (zh) | 2012-12-10 | 2012-12-10 | 基于执行路径全过程的系统窗口期滑动测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210529915.2A CN102968376B (zh) | 2012-12-10 | 2012-12-10 | 基于执行路径全过程的系统窗口期滑动测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968376A true CN102968376A (zh) | 2013-03-13 |
CN102968376B CN102968376B (zh) | 2015-01-21 |
Family
ID=47798528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210529915.2A Active CN102968376B (zh) | 2012-12-10 | 2012-12-10 | 基于执行路径全过程的系统窗口期滑动测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102968376B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020177369A1 (zh) * | 2019-03-01 | 2020-09-10 | 晶晨半导体(上海)股份有限公司 | 硬件设备的调试方法、装置、计算机设备及存储介质 |
CN113156799A (zh) * | 2021-02-26 | 2021-07-23 | 合肥宏晶微电子科技股份有限公司 | 时钟测试方法、装置、量产测试方法及测试平台 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1085419A2 (en) * | 1999-09-17 | 2001-03-21 | Nortel Networks Corporation | Method and system for describing predicates in disjuncts in procedures for test coverage estimation |
JP2005316710A (ja) * | 2004-04-28 | 2005-11-10 | Mitsubishi Electric Corp | ソフトウェア試験支援装置 |
CN101145125A (zh) * | 2006-09-11 | 2008-03-19 | 中兴通讯股份有限公司 | 一种测量多任务操作系统任务cpu占用率的方法 |
CN101299193A (zh) * | 2008-04-07 | 2008-11-05 | 谢维信 | 一种提高计算机内核定时器控制精度的方法 |
-
2012
- 2012-12-10 CN CN201210529915.2A patent/CN102968376B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1085419A2 (en) * | 1999-09-17 | 2001-03-21 | Nortel Networks Corporation | Method and system for describing predicates in disjuncts in procedures for test coverage estimation |
JP2005316710A (ja) * | 2004-04-28 | 2005-11-10 | Mitsubishi Electric Corp | ソフトウェア試験支援装置 |
CN101145125A (zh) * | 2006-09-11 | 2008-03-19 | 中兴通讯股份有限公司 | 一种测量多任务操作系统任务cpu占用率的方法 |
CN101299193A (zh) * | 2008-04-07 | 2008-11-05 | 谢维信 | 一种提高计算机内核定时器控制精度的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020177369A1 (zh) * | 2019-03-01 | 2020-09-10 | 晶晨半导体(上海)股份有限公司 | 硬件设备的调试方法、装置、计算机设备及存储介质 |
CN113156799A (zh) * | 2021-02-26 | 2021-07-23 | 合肥宏晶微电子科技股份有限公司 | 时钟测试方法、装置、量产测试方法及测试平台 |
CN113156799B (zh) * | 2021-02-26 | 2022-11-25 | 宏晶微电子科技股份有限公司 | 时钟测试方法、装置、量产测试方法及测试平台 |
Also Published As
Publication number | Publication date |
---|---|
CN102968376B (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157061B2 (en) | Processor management via thread status | |
CN100538643C (zh) | 用于调度由于事件相关性被部分排序的事务的方法和系统 | |
CN100549979C (zh) | 系统任务的cpu占用率检测方法及系统 | |
CN103823706B (zh) | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 | |
CN102270156A (zh) | 一种实时嵌入式系统定时器管理方法 | |
CN106227591B (zh) | 在异构多核片上系统上进行无线通信调度的方法和装置 | |
CN101826000A (zh) | 流水线微处理器的中断响应确定方法、装置及微处理器核 | |
CN103197971B (zh) | Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法 | |
CN105718257A (zh) | 基于嵌入式系统的定时器装置及定时方法 | |
KR20160082685A (ko) | 멀티코어 프로세서들에서 동시적 함수들의 효율적인 하드웨어 배분, 및 관련 프로세서 시스템들, 방법들, 및 컴퓨터-판독가능 매체들 | |
CN104536835A (zh) | 一种热备份实时控制系统中自适应任务调度方法 | |
CN100501694C (zh) | 处理器利用率的测量装置及方法 | |
CN109344078A (zh) | 应用fpga的嵌入式实时操作系统时间性能测试方法 | |
CN103164321A (zh) | 中央处理器占用率测量方法及装置 | |
CN102968376B (zh) | 基于执行路径全过程的系统窗口期滑动测试方法 | |
CN102053947A (zh) | 全球定位系统基带算法可重构实现的方法 | |
CN110321288A (zh) | 一种用于飞行器上信息处理系统的仿真测试方法 | |
US20210048877A1 (en) | Power Management of an Event-Based Processing System | |
CN109257240B (zh) | 一种监测虚拟化网络功能单元性能的方法和装置 | |
CN109189598A (zh) | 一种中断定位的方法、处理器及终端设备 | |
WO2019029721A1 (zh) | 任务的调度方法、装置、设备及存储介质 | |
CN101639791A (zh) | 一种改善嵌入式实时操作系统中断延迟的方法 | |
US20140173630A1 (en) | Non real-time metrology data management | |
Roy et al. | A high-throughput network processor architecture for latency-critical applications | |
Habibie et al. | Performance Comparison of USArt Communication Between Real TIME Operating System (Rtos) and Native Interrupt |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100094 No. 28, Yongfeng Road, Beijing, Haidian District Patentee after: Beijing Shenzhou Aerospace Software Technology Co.,Ltd. Address before: 100094 No. 28, Yongfeng Road, Beijing, Haidian District Patentee before: BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |