1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34 35
36
37 package ti.sysbios.family.arm.ducati;
38
39 import xdc.rov.ViewInfo;
40
41 /*!
42 * ======== TimestampProvider ========
43 * Ducati Cortex M3 TimestampProvider delegate for use
44 * with {@link xdc.runtime.Timestamp}
45 *
46 * The timestamp counters used in Ducati are CTM counters 2,3,4,5.
47 * Each core uses two counters in chained mode to achieve 64 bits.
48 * Core 0 uses counters 2,3.
49 * Core 1 uses counters 4,5.
50 * Which ever core is started first will start both sets of counters
51 * synchronously so that both cores effectively share a common timestamp.
52 * By default, the CTM counters are clocked at 2 times the CPU clock.
53 *
54 *
55 * @p(html)
56 * <h3> Calling Context </h3>
57 * <table border="1" cellpadding="3">
58 * <colgroup span="1"></colgroup> <colgroup span="5" align="center"></colgroup>
59 *
60 * <tr><th> Function </th><th> Hwi </th><th> Swi </th><th> Task </th><th> Main** </th><th> Startup*** </th></tr>
61 * <!-- -->
62 * <tr><td> {@link #get32} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
63 * <tr><td> {@link #get64} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
64 * <tr><td> {@link #getFreq} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
65 *
66 * </table>
67 * @p
68 */
69
70 @ModuleStartup
71
72 module TimestampProvider inherits ti.sysbios.interfaces.ITimestamp
73 {
74
75 /*! @_nodoc */
76 metaonly struct ModuleView {
77 String timestamp;
78 }
79
80 @Facet
81 metaonly config ViewInfo.Instance rovViewInfo =
82 ViewInfo.create({
83 viewMap: [
84 [
85 'Module',
86 {
87 type: ViewInfo.MODULE,
88 viewInitFxn: 'viewInitModule',
89 structName: 'ModuleView'
90 }
91 ],
92 ]
93 });
94
95 /*!
96 * Counter Input Select. The default value of 0 selects the
97 * 2x CPU clock as the clock source for the timestamp counters.
98 *
99 * See Table 28-22 of the OMAP4430 TRM for details of the
100 * various events that can be counted.
101 */
102 config UInt8 inpsel = 0;
103 }
104 105 106 107
108