1 /*
2 * Copyright (c) 2012, Texas Instruments Incorporated
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 * */
32 /*
33 * ======== TimestampProvider.xdc ========
34 *
35 *
36 */
37
38 package ti.sysbios.family.msp430;
39
40 /*!
41 * ======== TimestampProvider ========
42 * MSP430 Timestamp Provider
43 *
44 * @p(html) 45 * <h3> Calling Context </h3>
46 * <table border="1" cellpadding="3">
47 * <colgroup span="1"></colgroup> <colgroup span="5" align="center"></colgroup>
48 *
49 * <tr><th> Function </th><th> Hwi </th><th> Swi </th><th> Task </th><th> Main** </th><th> Startup*** </th></tr>
50 * <!-- -->
51 * <tr><td> {@link #get32} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
52 * <tr><td> {@link #get64} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
53 * <tr><td> {@link #getFreq} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
54 *
55 * </table>
56 * @p 57 */
58
59 @ModuleStartup /* To get Clock Timer Handle */
60
61 module TimestampProvider inherits xdc.runtime.ITimestampProvider
62 {
63 // -------- Module Types --------
64
65 /*! Input clock sources for dedicated Timestamp timer */
66 enum Source {
67 Source_ACLK, /*! ACLK */
68 Source_SMCLK /*! SMCLK */
69 };
70
71 /*!
72 * ======== timerId ========
73 * Id of the timer to use for creating timestamps
74 *
75 * A value of {@link Timer#ANY Timer.ANY} (-1) indicates any timer
76 * supported by {@link Timer} is ok.
77 */
78 config UInt timerId = Timer.ANY;
79
80 /*!
81 *
82 * ======== useClockTimer ========
83 * Use the same timer as Clock
84 *
85 * Set this parameter when you want TimestampProvider to use the same
86 * timer as the BIOS {@link ti.sysbios.knl.Clock Clock} module.
87 *
88 * This parameter overrides the {@link #timerId timeId} setting.
89 */
90 config Bool useClockTimer;
91
92 /*!
93 *
94 * ======== clockSource ========
95 * Input clock source for dedicated timer
96 *
97 * If the TimestampProvider is to use a different timer than the one
98 * used by the {@link ti.sysbios.knl.Clock Clock} module, this
99 * parameter specifies the input clock source for that dedicated timer.
100 *
101 * For example, to use a dedicated timer for Timestamps, and to have it
102 * run off of SMCLK, add the following to the application config script:
103 *
104 * @p(code) 105 * var Timestamp = xdc.useModule('ti.sysbios.family.msp430.TimestampProvider');
106 * Timestamp.useClockTimer = false;
107 * Timestamp.clockSource = Timestamp.Source_SMCLK;
108 * @p 109 */
110 config Source clockSource = Source_ACLK;
111
112 /*!
113 * ======== startTimer ========
114 * Function that starts timer before main
115 *
116 * @_nodoc Internal use.
117 */
118 Void startTimer();
119
120 /*!
121 * ======== rolloverFunc ========
122 * Timer rollover interrupt handler
123 *
124 * @_nodoc Internal use.
125 */
126 Void rolloverFunc(UArg unused);
127
128 internal: /* not for client use */
129
130 /*
131 * ======== Module_State ========
132 */
133 struct Module_State {
134 Timer.Handle timer; /* timer instance used */
135 volatile UInt32 rollovers; /* timer rollover counts */
136 }
137 }
138 /*
139 * @(#) ti.sysbios.family.msp430; 1, 0, 0, 0,238; 9-20-2012 14:59:10; /db/vtree/library/trees/avala/avala-r17x/src/ xlibrary
140 141 */
142