annotate packages/kernel/current/tests/clock0.cxx @ 2:443894e2e912 ecos-v1_2_1-release

Block commit of eCos version 1.2.1
author jlarmour
date Tue, 11 May 1999 12:24:34 +0000
parents 3111d98ba7b3
children c38311975d4f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
1 //==========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
2 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
3 // clock0.cxx
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
4 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
5 // Clock test 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
6 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
7 //==========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
8 //####COPYRIGHTBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
9 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
10 // -------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
11 // The contents of this file are subject to the Cygnus eCos Public License
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
12 // Version 1.0 (the "License"); you may not use this file except in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
13 // compliance with the License. You may obtain a copy of the License at
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
14 // http://sourceware.cygnus.com/ecos
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
15 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
16 // Software distributed under the License is distributed on an "AS IS"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
18 // License for the specific language governing rights and limitations under
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
19 // the License.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
20 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
21 // The Original Code is eCos - Embedded Cygnus Operating System, released
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
22 // September 30, 1998.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
23 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
24 // The Initial Developer of the Original Code is Cygnus. Portions created
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
25 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved.
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
26 // -------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
27 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
28 //####COPYRIGHTEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
29 //==========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
30 //#####DESCRIPTIONBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
31 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
32 // Author(s): dsm
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
33 // Contributors: dsm
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
34 // Date: 1998-02-13
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
35 // Description: Tests some basic clock functions.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
36 // Omissions: Doesn't test likely boundary conditions for
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
37 // CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
38 // Real Time Clock Testing is limited
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
39 // Options:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
40 // CYGIMP_KERNEL_COUNTERS_SINGLE_LIST
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
41 // CYGIMP_KERNEL_COUNTERS_MULTI_LIST
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
42 // CYGVAR_KERNEL_COUNTERS_CLOCK
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
43 // CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
44 // Assumptions: This assumes we have long long support and
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
45 // that counters are 64 bits.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
46 //####DESCRIPTIONEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
47
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
48 #include <pkgconf/kernel.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
49
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
50 #include <cyg/kernel/clock.hxx>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
51
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
52 #include <cyg/infra/testcase.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
54 #include <cyg/kernel/clock.inl>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
55
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
56 #include "testaux.hxx"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
57
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
58 #ifdef CYGVAR_KERNEL_COUNTERS_CLOCK
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
59
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
60 cyg_alarm_fn call_me;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
61
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62 bool flash( void )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
63 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
64 Cyg_Counter counter0 = Cyg_Counter();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
65 Cyg_Counter counter1 = Cyg_Counter(723);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67 CYG_ASSERTCLASSO( counter0, "error" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
68 CYG_ASSERTCLASSO( counter1, "error" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
69
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
70 Cyg_Alarm alarm0 = Cyg_Alarm(&counter0, call_me, 12);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
71
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
72 CYG_ASSERTCLASSO( alarm0, "error" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
73
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
74 Cyg_Clock::cyg_resolution res = {1,2};
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
76 Cyg_Clock clock0(res);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
77
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
78 CYG_ASSERTCLASSO( clock0, "error" );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
79
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
80 return true;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
81 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
82
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
83 // Testing alarms
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
84 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
85 // call_me is a function that will be called when an alarm is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
86 // triggered. It updates a global variable called which is CHECKed
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
87 // explicitly to see if the approriate alarms have been called.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
88
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
89 cyg_uint16 called = 0x0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
90
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
91 void call_me(Cyg_Alarm *alarm, CYG_ADDRWORD data)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
92 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
93 called ^= data;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
94 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
95
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
96 void call_me2(Cyg_Alarm *alarm, CYG_ADDRWORD data)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
97 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
98 call_me(alarm, data^0x10);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
99 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
100
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
101
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
102 void clock0_main(void)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
103 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
104 CYG_TEST_INIT();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
105
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
106 CHECK(flash());
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
107 CHECK(flash());
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
108
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
109 const cyg_uint32 big_number = 3333222111u;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
110 Cyg_Counter counter0 = Cyg_Counter();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
111
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
112 CHECK( 0 == counter0.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
113 CHECK( 0 == counter0.current_value_lo() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
114 CHECK( 0 == counter0.current_value_hi() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
115
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
116 counter0.tick();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118 CHECK( 1 == counter0.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119 CHECK( 1 == counter0.current_value_lo() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120 CHECK( 0 == counter0.current_value_hi() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
122 counter0.tick(6);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
123
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
124 CHECK( 7 == counter0.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
125 CHECK( 7 == counter0.current_value_lo() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
126 CHECK( 0 == counter0.current_value_hi() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
127
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
128 counter0.set_value( 0xfffffffc );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
129
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
130 CHECK( 0xfffffffc == counter0.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
131 CHECK( 0xfffffffc == counter0.current_value_lo() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
132 CHECK( 0 == counter0.current_value_hi() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
133
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
134 counter0.tick( 0x13 ); // Overflows 32 bits
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
135
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
136 CHECK( 0x10000000fULL == counter0.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
137 CHECK( 0xf == counter0.current_value_lo() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
138 CHECK( 0x1 == counter0.current_value_hi() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
140
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
141 Cyg_Counter counter1 = Cyg_Counter(big_number);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
143 CHECK( 0 == counter1.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144 CHECK( 0 == counter1.current_value_lo() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
145 CHECK( 0 == counter1.current_value_hi() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
146
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147 counter1.tick(2);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149 CHECK( 2ll*big_number == counter1.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
150 CHECK( ((2ll*big_number) & 0xffffffff) ==
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
151 counter1.current_value_lo() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
152 CHECK( ((2ll*big_number) >> 32) == counter1.current_value_hi() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
153
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
154 counter1.tick();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
155
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
156 CHECK( 3ll*big_number == counter1.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
157 CHECK( ((3ll*big_number) & 0xffffffff) ==
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
158 counter1.current_value_lo() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
159 CHECK( ((3ll*big_number) >> 32) == counter1.current_value_hi() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
160
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161 counter1.tick();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
162
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
163 CHECK( 4ll*big_number == counter1.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
164 CHECK( ((4ll*big_number) & 0xffffffff) ==
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
165 counter1.current_value_lo() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
166 CHECK( ((4ll*big_number) >> 32) == counter1.current_value_hi() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
167
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
168 counter1.set_value(1222333444555ll);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
169 CHECK( 1222333444555ll == counter1.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
171 counter0.set_value(11);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
172 CHECK( 11 == counter0.current_value() );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
173
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
174 // the call_me functions cause the "called" bits to toggle
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
175 // CHECKing the value of called TEST_CHECKs the parity of # of calls
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
176 // made by each alarm.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
177
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178 Cyg_Alarm alarm0 = Cyg_Alarm(&counter0, call_me, 0x1);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
179 Cyg_Alarm alarm1 = Cyg_Alarm(&counter0, call_me, 0x2);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
180 Cyg_Alarm alarm2 = Cyg_Alarm(&counter0, call_me2, 0x4);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
181
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
182 CHECK( 0x00 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
183 alarm0.initialize(12,3);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
184 alarm2.initialize(21,2);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
185 CHECK( 0x00 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
187 counter0.tick(); // 12 a0
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188 CHECK( 0x01 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
190 alarm1.initialize(13,0);
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
191 counter0.tick(); // 13 a1
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
192 CHECK( 0x03 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
193
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
194 alarm1.initialize(17,0);
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
195 counter0.tick(); // 14
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
196 CHECK( 0x03 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
197
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
198 counter0.tick(); // 15 a0
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
199 CHECK( 0x02 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
200
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
201 counter0.tick(2); // 17 a1
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202 CHECK( 0x00 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
203
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
204 counter0.tick(); // 18 a0
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
205 CHECK( 0x01 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
206
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
207 counter0.tick(3); // 21 a0 a2
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208 CHECK( 0x14 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
209
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
210 counter0.tick(2); // 23 a2
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
211 CHECK( 0x00 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
212
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
213 alarm2.disable();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
214
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
215 counter0.tick(2); // 25 a0(24)
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216 CHECK( 0x01 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
217
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
218 alarm2.enable(); // a2 (enabled at 25)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
219 CHECK( 0x15 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
220
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
221 counter0.tick(); // 26
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222 CHECK( 0x15 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
224 counter0.tick(2); // 28 a0(27) a2(27)
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
225 CHECK( 0x00 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
227 counter0.tick(3); // 31 a0(30) a2(29 31)
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228 CHECK( 0x01 == called );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
229
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
230 Cyg_Clock::cyg_resolution res0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
231
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
232 res0.dividend = 100;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
233 res0.divisor = 3;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235 Cyg_Clock::cyg_resolution res1;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
237 Cyg_Clock clock0 = Cyg_Clock(res0);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
238
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
239 res1 = clock0.get_resolution();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
240 CHECK( res0.dividend == res1.dividend );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
241 CHECK( res0.divisor == res1.divisor );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
242
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
243 res1.dividend = 12;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
244 res1.divisor = 25;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
245
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
246 clock0.set_resolution(res1);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
247 res0 = clock0.get_resolution();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
248 CHECK( res0.dividend == res1.dividend );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249 CHECK( res0.divisor == res1.divisor );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
250
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 res0 = Cyg_Clock::real_time_clock->get_resolution();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
253 CYG_TEST_PASS_FINISH("Clock 0 OK");
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
254 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
255
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
256 externC void
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257 cyg_start( void )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
258 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
259 clock0_main();
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
260 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
261
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
262 #else // def CYGVAR_KERNEL_COUNTERS_CLOCK
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
263
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264 externC void
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
265 cyg_start( void )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
266 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
267 CYG_TEST_INIT();
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
268 CYG_TEST_NA( "Kernel real-time clock disabled");
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
269 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
270
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
271 #endif // def CYGVAR_KERNEL_COUNTERS_CLOCK
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
272 // EOF clock0.cxx