FreeCalypso > hg > ffs-editor
comparison src/cs/riviera/rvt/ti_profiler/ti_profiler.h @ 0:92470e5d0b9e
src: partial import from FC Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 15 May 2020 01:28:16 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:92470e5d0b9e |
---|---|
1 /************************************************************************************ | |
2 * ti_profiler.h : contains ti profiling and Nucleus Monitoring module header * | |
3 * * | |
4 * * | |
5 * Author: Philippe Martinez * | |
6 * * | |
7 * version: 1.1 * | |
8 * * | |
9 * Date: 07/16/2001 * | |
10 * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved * | |
11 ************************************************************************************/ | |
12 | |
13 | |
14 #ifndef _TI_PROFILER_H_ | |
15 #define _TI_PROFILER_H_ | |
16 | |
17 #define INFINITE_LOOP ( 1 ) | |
18 #define L1_TRACER ( 1 ) // Add debug traces into Layer 1 stream | |
19 | |
20 // Log buffer size in 32 bit words (profiler only) | |
21 #define PR_BUFFER_SIZE ( 20000 ) | |
22 #define PR_BUFFER_THRESHOLD ( PR_BUFFER_SIZE - 95 ) | |
23 | |
24 | |
25 // buffer OP code (profiler only) | |
26 #define C_OP_CODE_START_PR ( 0xfffffff0 ) | |
27 #define C_OP_CODE_STOP_PR ( 0xfffffffe ) | |
28 | |
29 #define C_OP_CODE_BEGIN_BUFFER ( 0xfffffff0 ) | |
30 #define C_OP_CODE_TDMA_BEGIN ( 0xfffffff2 ) | |
31 #define C_OP_CODE_TDMA_END ( 0xfffffff4 ) | |
32 #define C_OP_CODE_END_BUFFER ( 0xfffffff8 ) | |
33 | |
34 // Rx message ID code (profiler only) | |
35 #define TI_PROFILER_END_PROFILING ( 0x0000 ) | |
36 #define TI_PROFILER_START_PROFILING ( 0x0001 ) | |
37 | |
38 #define TI_PROFILER_OUTPUT_BUFFER ( 0xffff ) | |
39 | |
40 | |
41 // Timer used (profiler only) | |
42 #define PR_TIMER_NUM ( 1 ) | |
43 | |
44 #define PR_TIMER_RESET_VALUE ( 21 ) // load value 50 us | |
45 | |
46 // define the length of cutted element buffer in order to | |
47 // Generate rvt messages. (profiler only) | |
48 #define TRACE_MESSAGE_SIZE ( 50 ) // x4 = n bytes | |
49 | |
50 // Nucleus monitoring buffer size (bytes) for rvt (Nucleus Monitoring only) | |
51 #define NUC_MONITOR_BUFFER_SIZE ( 240 ) | |
52 | |
53 // Nucleus Monitoring Buffer (Nucleus Monitoring only) | |
54 #define C_OP_CODE_NUC_MON_THREAD_IDS ( 0xff ) | |
55 #define C_OP_CODE_FN_LOG ( 0x00 ) | |
56 #define C_OP_CODE_LISR_FLAG ( 0xC0 ) | |
57 #define C_OP_CODE_THREAD_FLAG ( 0x80 ) | |
58 #define C_OP_CODE_QUEUE_FLAG ( 0x40 ) | |
59 | |
60 // Rx message ID code (Nucleus Monitoring only) | |
61 #define TI_NUC_MONITOR_OUTPUT_BUFFER ( 0xfff0 ) | |
62 #define TI_NUC_MONITOR_START ( 0x0002 ) | |
63 #define TI_NUC_MONITOR_STOP ( 0x0003 ) | |
64 | |
65 // ID Thread NULL (Nucleus Monitoring only) | |
66 #define NUC_MONITOR_ID_IDLE ( 0xff ) | |
67 | |
68 // Nuleus monitoring : Number max of component of same type | |
69 // that can be monitored (Nucleus Monitoring only) | |
70 #define NUC_MONITOR_MAX_ID ( 64 ) | |
71 | |
72 // Define LISR doubled buffer Size (Nucleus Monitoring only) | |
73 #define C_NUC_LISR_BUF_PG_NB ( 2 ) | |
74 #define C_NUC_LISR_LOG_SZ ( 5 ) // bytes | |
75 | |
76 // Must be strickly < NUC_MONITOR_BUFFER_SIZE (Nucleus Monitoring only) | |
77 #define C_NUC_MAX_LISR ( 20 * C_NUC_LISR_LOG_SZ ) | |
78 | |
79 // Define LISR doubled buffer Size (Nucleus Monitoring only) | |
80 #define C_NUC_THREAD_BUF_PG_NB ( 2 ) | |
81 #define C_NUC_THREAD_LOG_SZ ( 3 ) // bytes | |
82 | |
83 // Must be strickly < NUC_MONITOR_BUFFER_SIZE (Nucleus Monitoring only) | |
84 #define C_NUC_MAX_THREAD ( 30 * C_NUC_THREAD_LOG_SZ ) | |
85 | |
86 // Differents state of profiling | |
87 typedef enum | |
88 { | |
89 PROFILER_STOPPED, | |
90 PROFILER_RUNNING, | |
91 PROFILER_FREEZED, | |
92 PROFILER_TO_BE_RAN, | |
93 PROFILER_TO_BE_UNFREEZED, | |
94 PROFILER_TO_BE_STOPPED | |
95 } T_PROFILER_STATE; | |
96 | |
97 // Differents state of nucleus monitoring (Nucleus Monitoring only) | |
98 typedef enum | |
99 { | |
100 NUC_MONITOR_STOPPED, | |
101 NUC_MONITOR_RUNNING, | |
102 NUC_MONITOR_TO_BE_RUN, | |
103 NUC_MONITOR_TO_BE_STARTED, | |
104 NUC_MONITOR_TO_BE_STOP, | |
105 NUC_MONITOR_WAITING | |
106 } T_NUC_MONITOR_STATE; | |
107 | |
108 typedef enum | |
109 { | |
110 LOGGING, | |
111 FLUSH | |
112 } T_PROFILER_BUFFER_STATE; | |
113 | |
114 typedef enum | |
115 { | |
116 NOT_ACTIVE, | |
117 ACTIVE_BY_TI, | |
118 ACTIVE_BY_EXT, | |
119 ACTIVE_BY_HOST | |
120 } T_PROFILER_HANDLER; | |
121 | |
122 typedef enum | |
123 { | |
124 NO_EVENT, | |
125 NO_SLEEP_EVENT, | |
126 EVENT2, | |
127 EVENT3, | |
128 EVENT4 | |
129 } T_PROFILER_EVENTS; | |
130 | |
131 typedef struct | |
132 { | |
133 SYS_UWORD16 msg_id; | |
134 SYS_UWORD8 event_number; | |
135 SYS_UWORD8 arg1; | |
136 SYS_UWORD8 *p_buffer; | |
137 SYS_UWORD8 buffer_size; | |
138 } T_PROFILER_MSG_UART; | |
139 | |
140 typedef struct | |
141 { | |
142 T_RV_HDR header; | |
143 SYS_UWORD16 msg_id; | |
144 SYS_UWORD8 event_number; | |
145 SYS_UWORD8 arg1; | |
146 SYS_UWORD8 *p_buffer; | |
147 SYS_UWORD8 buffer_size; | |
148 } T_PROFILER_MSG; | |
149 | |
150 #endif | |
151 |