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
38 package ti.sysbios.family.arm.f2838x;
39
40 /*!
41 * ======== TimestampProvider ========
42 *
43 * @p(html)
44 * <h3> Calling Context </h3>
45 * <table border="1" cellpadding="3">
46 * <colgroup span="1"></colgroup> <colgroup span="5" align="center"></colgroup>
47 *
48 * <tr><th> Function </th><th> Hwi </th><th> Swi </th><th> Task </th><th> Main </th><th> Startup </th></tr>
49 * <!-- -->
50 * <tr><td> {@link #get32} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
51 * <tr><td> {@link #get64} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
52 * <tr><td> {@link #getFreq} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
53 * <tr><td colspan="6"> Definitions: <br />
54 * <ul>
55 * <li> <b>Hwi</b>: API is callable from a Hwi thread. </li>
56 * <li> <b>Swi</b>: API is callable from a Swi thread. </li>
57 * <li> <b>Task</b>: API is callable from a Task thread. </li>
58 * <li> <b>Main</b>: API is callable during any of these phases: </li>
59 * <ul>
60 * <li> In your module startup after this module is started (e.g. TimestampProvider_Module_startupDone() returns TRUE). </li>
61 * <li> During xdc.runtime.Startup.lastFxns. </li>
62 * <li> During main().</li>
63 * <li> During BIOS.startupFxns.</li>
64 * </ul>
65 * <li> <b>Startup</b>: API is callable during any of these phases:</li>
66 * <ul>
67 * <li> During xdc.runtime.Startup.firstFxns.</li>
68 * <li> In your module startup before this module is started (e.g. TimestampProvider_Module_startupDone() returns FALSE).</li>
69 * </ul>
70 * </ul>
71 * </td></tr>
72 *
73 * </table>
74 * @p
75 *
76 */
77
78
79 module TimestampProvider inherits ti.sysbios.interfaces.ITimestamp
80 {
81 /*! CM Clock Divider value */
82 enum Div {
83 Div_1 = 0, /*! /1 */
84 Div_2 = 1, /*! /2 */
85 Div_3 = 2, /*! /3 */
86 Div_4 = 3, /*! /4 */
87 Div_5 = 4, /*! /5 */
88 Div_6 = 5, /*! /6 */
89 Div_7 = 6, /*! /7 */
90 Div_8 = 7 /*! /8 */
91 };
92
93 /*!
94 * ======== CMCLKDIV ========
95 * CM Clock Divider value applied to PLLSYSCLK
96 */
97 config Div CMCLKDIV;
98
99 internal:
100
101 const UInt32 IPCCOUNTERL = 0x400FD018;
102 const UInt32 IPCCOUNTERH = 0x400FD01C;
103 }