基于执行路径全过程的系统窗口期滑动测试方法.pdf

上传人:62****3 文档编号:1489202 上传时间:2018-06-17 格式:PDF 页数:13 大小:7.46MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210529915.2

申请日:

2012.12.10

公开号:

CN102968376A

公开日:

2013.03.13

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20121210|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

北京神舟航天软件技术有限公司

发明人:

阚宏伟; 程胜; 李红兵; 周志军; 孙磊; 魏明; 黄察夫; 吕紫旭; 靳仕慧; 卓保特; 刘贵; 吴常明; 张春艳; 陶戈丹

地址:

100094 北京市海淀区永丰路28号

优先权:

专利代理机构:

北京北新智诚知识产权代理有限公司 11100

代理人:

张卫华

PDF下载: PDF下载
内容摘要

本发明涉及基于执行路径全过程的系统窗口期滑动测试方法,包括步骤:1)设置时钟相关寄存器;2)注册时钟中断服务程序,使能时钟中断;3)设置时钟中断发生的步进值;4)获取时钟计数器当前计数值;5)若计数值大于步进值,则转到步骤4);6)获取另一时钟计数器的值,作为被测试接口的计时开始值;7)调用被测试接口;8)获取步骤6)中的时钟计数器值作为被测试接口的计时结束值;9)计时结束值减去计时开始值,计算被测试接口的耗时;10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。本发明用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开发和测试的覆盖性难题。

权利要求书

权利要求书一种基于执行路径全过程的系统窗口期滑动测试方法,其特征在于包括以下步骤:
1)设置时钟相关寄存器:预分频计数器,预置数寄存器,计数器控制寄存器;
2)注册时钟中断服务程序,使能时钟中断;
3)设置时钟中断发生的步进值,初始值为1;
4)获取时钟计数器当前计数值;
5)若计数值大于步进值,则转到步骤4),否则继续以下步骤;
6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值;
7)调用被测试接口;
8)获取步骤6)中的时钟计数器值,将其作为被测试接口的计时结束值;
9)计时结束值减去计时开始值,计算被测试接口的耗时;
10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。
如权利要求1所述的基于执行路径全过程的系统窗口期滑动测试方法,其特征在于:
系统调用过程与中断对应时间关系共分为两种:
系统调用过程中不被时钟中断打断;
系统调用过程中被时钟中断打断;
在系统调用过程中执行以下步骤:
1)记录每次系统调用从开始到返同所花费的时间;
2)创建高优先级任务T1和低优先级任务T2,T1用来调用测试用例,T2负责设置全局标志,可以被T1用来判别切换是否成功;
3)在T1中调用测试用例,打印系统调用时间;
4)重复步骤3)直到两种系统调用过程与中断对应时间关系全部出现。

说明书

说明书基于执行路径全过程的系统窗口期滑动测试方法
技术领域
本发明涉及一种基于执行路径全过程的系统窗口期滑动测试方法,属于操作系统开发与测试方法领域。
背景技术
对嵌入式实时操作系统(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。递加步进值,当步进值大于定时器预置计数时,则说明一个滑动周期已经测试完毕,终止。

基于执行路径全过程的系统窗口期滑动测试方法.pdf_第1页
第1页 / 共13页
基于执行路径全过程的系统窗口期滑动测试方法.pdf_第2页
第2页 / 共13页
基于执行路径全过程的系统窗口期滑动测试方法.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《基于执行路径全过程的系统窗口期滑动测试方法.pdf》由会员分享,可在线阅读,更多相关《基于执行路径全过程的系统窗口期滑动测试方法.pdf(13页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102968376 A(43)申请公布日 2013.03.13CN102968376A*CN102968376A*(21)申请号 201210529915.2(22)申请日 2012.12.10G06F 11/36(2006.01)(71)申请人北京神舟航天软件技术有限公司地址 100094 北京市海淀区永丰路28号(72)发明人阚宏伟 程胜 李红兵 周志军孙磊 魏明 黄察夫 吕紫旭靳仕慧 卓保特 刘贵 吴常明张春艳 陶戈丹(74)专利代理机构北京北新智诚知识产权代理有限公司 11100代理人张卫华(54) 发明名称基于执行路径全过程的系统窗口期滑动测试方法(57) 。

2、摘要本发明涉及基于执行路径全过程的系统窗口期滑动测试方法,包括步骤:1)设置时钟相关寄存器;2)注册时钟中断服务程序,使能时钟中断;3)设置时钟中断发生的步进值;4)获取时钟计数器当前计数值;5)若计数值大于步进值,则转到步骤4);6)获取另一时钟计数器的值,作为被测试接口的计时开始值;7)调用被测试接口;8)获取步骤6)中的时钟计数器值作为被测试接口的计时结束值;9)计时结束值减去计时开始值,计算被测试接口的耗时;10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。本发明用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开。

3、发和测试的覆盖性难题。(51)Int.Cl.权利要求书1页 说明书9页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 1 页 说明书 9 页 附图 2 页1/1页21.一种基于执行路径全过程的系统窗口期滑动测试方法,其特征在于包括以下步骤:1)设置时钟相关寄存器:预分频计数器,预置数寄存器,计数器控制寄存器;2)注册时钟中断服务程序,使能时钟中断;3)设置时钟中断发生的步进值,初始值为1;4)获取时钟计数器当前计数值;5)若计数值大于步进值,则转到步骤4),否则继续以下步骤;6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值;7)调用被测试接口;8)获取步。

4、骤6)中的时钟计数器值,将其作为被测试接口的计时结束值;9)计时结束值减去计时开始值,计算被测试接口的耗时;10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。2.如权利要求1所述的基于执行路径全过程的系统窗口期滑动测试方法,其特征在于:系统调用过程与中断对应时间关系共分为两种:系统调用过程中不被时钟中断打断;系统调用过程中被时钟中断打断;在系统调用过程中执行以下步骤:1)记录每次系统调用从开始到返同所花费的时间;2)创建高优先级任务T1和低优先级任务T2,T1用来调用测试用例,T2负责设置全局标志,可以被T1用来判别切换是否成功;3)在T1中调用测试用例,打印系。

5、统调用时间;4)重复步骤3)直到两种系统调用过程与中断对应时间关系全部出现。权 利 要 求 书CN 102968376 A1/9页3基于执行路径全过程的系统窗口期滑动测试方法技术领域0001 本发明涉及一种基于执行路径全过程的系统窗口期滑动测试方法,属于操作系统开发与测试方法领域。背景技术0002 对嵌入式实时操作系统(ERTOS)开发和测试技术的研究主要集中在实时性能参数的测试上,通常包括上下文切换时间(task switching time)、抢占时间(preemption time)、中断延迟时间(interrupt latency time)等。对于系统设计正确性测试,实际测试时划分为。

6、功能性测试,其测试用例设计通常是针对每一项测试要求设计单独的测试用例。0003 现有技术存在的主要问题:0004 1.针对系统功能测试,其测试粒度过大,不能很好的测试系统的正确性,很多问题需要在实际使用过程中才能发现。0005 2.逐项测试的方法不能验证系统的整体工作情况。发明内容0006 为了解决上述问题,本发明提供了一种全新的嵌入式实时操作系统测试方法,它通过对硬件时钟定时器的配置,在测试用例设计时利用设计的逻辑,来验证操作系统在特定接口的任务切换、上下文保存等整个执行路径中,异步中断在不同阶段到来时并执行相关耦合性的其他接口,以此来形成各种交错路径组合,测试和验证操作系统能否正确执行,根。

7、据不同的设置情况,相邻两次中断到来的时间间隔可以精确到一个CPU周期。0007 为实现上述目的,本发明采用的技术方案如下:0008 一种基于执行路径全过程的系统窗口期滑动测试方法,包括以下步骤:0009 1)设置时钟相关寄存器:预分频计数器,预置数寄存器,计数器控制寄存器;0010 2)注册时钟中断服务程序,使能时钟中断;0011 3)设置时钟中断发生的步进值,初始值为1;0012 4)获取时钟计数器当前计数值;0013 5)若计数值大于步进值,则转到步骤4),否则继续以下步骤;0014 6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值;0015 7)调用被测试接口;0016 8)获。

8、取步骤6)中的时钟计数器值,将其作为被测试接口的计时结束值;0017 9)计时结束值减去计时开始值,计算被测试接口的耗时;0018 10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。0019 本发明的有益效果是:0020 在实际使用中,根据不同硬件平台特性,包括晶振频率、预分频计数器、预置数寄存器、计数器控制寄存器的不同设置,可以控制相邻两次时钟中断产生的时间间隔,在最优说 明 书CN 102968376 A2/9页4情况下可以保证两次中断的间隔为一个CPU周期。由于引入类似高度可控的中断源,可以打破被测试接口的任意执行路径,所以只要将其有限的耦合性相关接口路径。

9、引入到重入路径中,就可以列举出所有的执行路径组合,以此用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开发和测试的覆盖性难题。附图说明0021 图1为系统调用时段说明图;0022 图2为测试用例工作流程图。具体实施方式0023 本发明提供了一种基于执行路径全过程的系统窗口期滑动测试方法。0024 一种基于执行路径全过程的系统窗口期滑动测试方法,包括以下步骤:0025 1)设置时钟相关寄存器:预分频计数器,预置数寄存器,计数器控制寄存器;0026 2)注册时钟中断服务程序,使能时钟中断;0027 3)设置时钟中断发生的步进值,初始值为1;0028 4)获。

10、取时钟计数器当前计数值;0029 5)若计数值大于步进值,则转到步骤4),否则继续以下步骤;0030 6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值;0031 7)调用被测试接口;0032 8)获取步骤6)中的时钟计数器值,将其作为被测试接口的计时结束值;0033 9)计时结束值减去计时开始值,计算被测试接口的耗时;0034 10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。0035 系统调用过程与中断对应时间关系共分为两种:0036 系统调用过程中不被时钟中断打断;0037 系统调用过程中被时钟中断打断;0038 在系统调用过程中执行以下步骤:00。

11、39 1)记录每次系统调用从开始到返回所花费的时间;0040 2)创建高优先级任务T1和低优先级任务T2,T1用来调用测试用例,T2负责设置全局标志,可以被T1用来判别切换是否成功;0041 3)在T1中调用测试用例,打印系统调用时间;0042 4)重复步骤3)直到两种系统调用过程与中断对应时间关系全部出现。0043 本发明属于操作系统功能和性能测试中采用的一种高精度测试方法,主要用于测试系统调用过程中,异步时钟中断到来时系统的响应情况。其工作原理是通过配置计数器控制寄存器及相关寄存器,调整时钟中断发生的时机,使中断连同其服务程序在被测接口整个执行路径中发生,从而观察在不同时间点中断发生时的各。

12、种路径交错组合是否能使操作系统正常工作及其各项性能指标所产生的变化等。在实际使用中,根据不同硬件平台特性,包括晶振频率、预分频计数器、预置数寄存器、计数器控制寄存器的不同设置,可以控制相邻两次时钟中断产生的时间间隔,在最优情况下可以保证两次中断的间隔为一个CPU周说 明 书CN 102968376 A3/9页5期。由于引入类似高度可控的中断源,可以任意打破被测试接口的任意执行路径,所以只要将其有限的耦合性相关接口路径引入到重入路径中,就可以列举出所有的执行路径组合,以此用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开发和测试的覆盖性难题。0044 下。

13、面详细说明。0045 本发明方法包括以下步骤:0046 1)设置两个时钟相关寄存器:预分频计数器,预置数寄存器,计数器控制寄存器,以初始化时钟相关寄存器,此处假设时钟计数器是按照从大到小计数的,其中一个作为系统时钟,一个作为计数时钟,计数时钟的时钟周期要大于系统时钟周期,且以大于被测接口执行时间为宜,避免在测试被测接口时计数时钟发生中断,而造成一定的计时误差;0047 2)注册时钟中断服务程序,使能时钟中断,以开启时钟,并在时钟中断到来时,调用中断服务程序进行计时处理;0048 3)设置一步进值,其初始值为1,该步进值用于控制系统时钟窗口期;0049 4)获取系统时钟计数器当前的计数值;005。

14、0 5)若计数值大于步进值,则转到步骤4),此步骤5)的意图是排除掉窗口期以外的值;0051 6)获取计数时钟的值,该值用于被测试接口的计时开始值;0052 7)调用被测试接口;0053 8)获取计数时钟值,该值用于被测试接口的计时结束值;0054 9)取计时开始值减去计时结束值,用作被测试接口的耗时,由于计数时钟计数器是从大到小计数的,故计时开始值大于计时结束值;0055 10)增加步进值,若小于1)中设置的系统时钟计数器的初始值,则继续扩大窗口期,转到4),否则说明已经到达最大的时钟窗口期,终止。0056 系统调用过程与中断对应时间关系共分为两种,如图1所示:0057 1.系统调用过程中不。

15、被时钟中断打断;0058 2.系统调用过程中被时钟中断打断。0059 测试流程如下所示:0060 此处假设目标板有两个时钟定时器timer1和timer2,并且timer2为系统时钟中断触发寄存器,具体步骤如下:0061 1)设置timer1为计数器,记录每次系统调用从开始到返同所花费的时间;0062 2)创建任务T1(high priority)和T2(low priority),T1用来调用测试用例,T2负责设置全局标志,可以被T1用来判别切换是否成功;0063 3)在T1中调用测试用例,打印系统调用时间;0064 4)重复步骤3)直到图1中两种情况全部出现。0065 测试用例如图2所示:。

16、0066 1)获取系统时钟定时器timer2的值,如果值大于步进值scale,则转到1),否则转到2);0067 2)获取定时器timer1的值,用于被测试接口计时开始值;0068 3)调用被测试接口tsk_delay;说 明 书CN 102968376 A4/9页60069 4)再次获取定时器timer1的值,用于被测试接口计时结束值;0070 5)计算被测试接口时间值time,打印该值;0071 6)步进值scale增加delta,delta为相邻两次系统调用时刻的间隔;0072 7)如果步进值scale大于系统时钟定时器间隔max_limit,则终止;否则转到1)。0073 实现范例:0。

17、074 代码用C语言实现,硬件平台为SPARC V8,操作系统为SZOS。0075 系统时钟配置部分与具体硬件平台有关,以下代码为珠海欧比特公司的S698-MIL芯片最小系统开发板所使用的配置:0076 0077 sz_clk_enable()函数设置系统定时器timer2和定时器timer1的预分频数为0;系统定时器timer2预置计数为晶振频率,定时器timer1的预置计数为晶振频率除以用户设置的每秒钟时钟节拍数,再减去一,该预置计数即为定时器时间间隔;设置定时器控制寄存器,开启定时器定时功能,并设置定时器计数溢出时自动加载预置计数;使能系统时钟timer2的中断。0078 以下代码为用户。

18、任务中所应使用的代码结构:0079 说 明 书CN 102968376 A5/9页70080 说 明 书CN 102968376 A6/9页8说 明 书CN 102968376 A7/9页90081 0082 说 明 书CN 102968376 A8/9页100083 以上程序简要说明如下:0084 在main()中首先初始化串口,再创建低优先级任务tsk_20ms,该任务优先级为100,任务栈为大小是9000的stack0,任务运行体为tsk_20ms()函数;创建高优先级任务tsk_1ms,该任务优先级为90,任务栈为大小是9000的stack1,任务运行体为tsk_1ms()函数;main()退出后,tsk_1ms()将运行。0085 在tsk_1ms()中,设置步进值scale初始值为1,然后进入循环体,获取系统定时器计数器当前计数值,直到值小于步进值scale才停止获取。接下来获取定时器timer1的计数值,用来作为被测试接口tsk_delay()的开始计时值。调用被测试接口tsk_delay(),延迟一个时钟节拍,此时若在将任务tsk_1ms放置延迟队列前定时器中断发生,任务会发说 明 书CN 102968376 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1