0
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /********************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * rvt_env.c
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * This module interfaces the environment and contains all start/init/stop...
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * functions of the trace module.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 * (C) Texas Instruments, all rights reserved
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 * Version number : 0.1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 * History : 0.1 (7/4/2000) - Created
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 * Date : 7/4/2000
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 * Author : Cristian Livadiotti, c-livadiotti@ti.com
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 ********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 #include "nucleus.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #include <string.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #include "rvf/rvf_api.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #include "rv/rv_general.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #include "rvm/rvm_gen.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #include "rvm/rvm_priorities.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #include "rvt/rvt_gen.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #include "rvt/rvt_def_i.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #include "rvt/rvt_env.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #include "rvt/rvt_env_i.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #include "rvm/rvm_use_id_list.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #include "uart/serialswitch.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #ifndef _WINDOWS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #include "config/swconfig.cfg"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 #include "config/debug.cfg"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 #define TI_RX_HISR_STACK_SIZE (1024)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 static UINT8 TI_RX_HISR_stack[TI_RX_HISR_STACK_SIZE];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 char *p_rvt_lost_msg = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 char *p_rvt_sys_time = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 NU_HISR TI_rcv_HISR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 T_RVF_MB_ID rvt_mb_id = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 T_RVT_STATE rvt_module_state = RVT_NOT_STARTED;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 T_RVF_ADDR_ID rvt_addr_id = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 /* Function Name: rvt_get_info */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 /* Purpose: This function is used to notify the RVM */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 /* of the Trace's Memory Banks requirements. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 /* Input Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 /* &p_info_swe (refer to rvm_gen.h). */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 /* p_info_swe (refer to rvm_gen.h). */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 /* Global Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 /* Note: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 T_RVM_RETURN
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 rvt_get_info (T_RVM_INFO_SWE *p_info_swe)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 if (!p_info_swe)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 return RVM_INVALID_PARAMETER;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 p_info_swe->swe_type = RVM_SWE_TYPE_4;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 p_info_swe->type_info.type4.swe_use_id = RVT_USE_ID;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 p_info_swe->type_info.type4.version = 1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 memcpy (p_info_swe->type_info.type4.swe_name,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 "TRACE",
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 sizeof ("TRACE"));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 p_info_swe->type_info.type4.stack_size = TRACE_TASK_STACK_SIZE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 p_info_swe->type_info.type4.priority = RVM_TRACE_TASK_PRIORITY;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 p_info_swe->type_info.type4.return_path.addr_id = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 p_info_swe->type_info.type4.return_path.callback_func = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 // Memory banks definitions. For now, one memory bank is needed
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 p_info_swe->type_info.type4.nb_mem_bank = 1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 memcpy (p_info_swe->type_info.type4.mem_bank[0].bank_name,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 "RV_TRACE",
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 RVM_NAME_MAX_LEN);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 p_info_swe->type_info.type4.mem_bank[0].initial_params.size = TRACE_MB_SIZE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 p_info_swe->type_info.type4.mem_bank[0].initial_params.watermark = TRACE_MB_WATERMARK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 // Generic functions
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 p_info_swe->type_info.type4.init = rvt_init;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 p_info_swe->type_info.type4.core = (T_RVM_SWE_CORE_FUNC)rvt_task_core;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 p_info_swe->type_info.type4.stop = rvt_stop;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 p_info_swe->type_info.type4.kill = rvt_kill;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 p_info_swe->type_info.type4.set_info = rvt_set_info;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 // Linked SW entities: none, except if Profiler or Nucleus Monitor are defined
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 #if (TI_PROFILER == 1) || (TI_NUC_MONITOR == 1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 p_info_swe->type_info.type4.nb_linked_swe = 1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 p_info_swe->type_info.type4.linked_swe_id[0] = TI_PRF_USE_ID;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 p_info_swe->type_info.type4.nb_linked_swe = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 return RVM_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 /* Function Name: rvt_set_info */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 /* Purpose: This function is used to notify the Trace module */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 /* about mb ids and task id. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 /* Input Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 /* bk_id[]: array of memory bank IDs. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 /* Global Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 /* Note: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 T_RVM_RETURN
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 rvt_set_info (T_RVF_ADDR_ID addr_id,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 T_RV_RETURN_PATH return_path[],
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 T_RVF_MB_ID bk_id[],
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 T_RVM_CB_FUNC rvm_error_ft)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 // Save parameters given by the environment (Addr ID and MB ID respectively)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 rvt_addr_id = addr_id;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 rvt_mb_id = bk_id [0];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 return RVM_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 /* Function Name: rvt_init */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 /* Purpose: This is the initialization function. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 /* It is called by the RVM. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 /* Input Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 /* Global Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 /* Note: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 T_RVM_RETURN
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 rvt_init (void)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 if (rvt_module_state != RVT_NOT_STARTED)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 return RVM_NOT_READY;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 // The stack is entirely filled with the pattern 0xFE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 memset (TI_RX_HISR_stack,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 0xFE,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 TI_RX_HISR_STACK_SIZE);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 // Create the RX HISR
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 if (NU_Create_HISR (&TI_rcv_HISR, \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 "TI_RCV_HISR", \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 rvt_RX_process, \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 2, \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 TI_RX_HISR_stack, \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 TI_RX_HISR_STACK_SIZE) != NU_SUCCESS)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 return RVM_INTERNAL_ERR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 // Initialize the baud rate and the callback function for the RX HISR
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 SER_tr_Init (SER_LAYER_1,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 TR_BAUD_CONFIG,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 rvt_activate_RX_HISR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 #ifdef FRAMING_PROTOCOL
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 // Allocate a buffer that reports the system time (refer to rvf_trace_adapt.c):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 // - 'User ID' (1 byte),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 // - 'Trace Type' (4 bytes),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 // - 'Trace Level' (1 byte),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 // - 'System Time' (RVT_SYS_TIME_LENGTH bytes),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 // - Hexadecimal value (RVT_HEX_VALUE_LENGTH bytes).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 if (rvf_get_buf (rvt_mb_id, \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 (RVT_HDR_LENGTH + RVT_SYS_TIME_LENGTH + RVT_HEX_VALUE_LENGTH), \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 (T_RVF_BUFFER**)&p_rvt_sys_time) != RVF_RED)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 UINT8 *header_p = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 header_p = (UINT8*)p_rvt_sys_time;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 *header_p++ = (UINT8)rv_trace_user_id;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 *header_p++ = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 *header_p++ = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 *header_p++ = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 *header_p++ = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 *header_p++ = RV_TRACE_LEVEL_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 memcpy (header_p,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 RVT_SYS_TIME,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 RVT_SYS_TIME_LENGTH);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 // Allocate a buffer that reports a lack of memory (refer to rvf_trace_adapt.c):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 // - 'User ID' (1 byte),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 // - 'Trace Type' (4 bytes),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 // - 'Trace Level' (1 byte),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 // - 'Lost Message' (RVT_LOST_MSG_LENGTH bytes),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 // - Hexadecimal value (RVT_HEX_VALUE_LENGTH bytes).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 if (rvf_get_buf (rvt_mb_id,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 (RVT_HDR_LENGTH + RVT_LOST_MSG_LENGTH + RVT_HEX_VALUE_LENGTH), \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 (T_RVF_BUFFER**)&p_rvt_lost_msg) != RVF_RED)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 UINT8 *header_p = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 header_p = (UINT8*)p_rvt_lost_msg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 *header_p++ = (UINT8)rv_trace_user_id;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 *header_p++ = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 *header_p++ = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 *header_p++ = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 *header_p++ = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 *header_p++ = RV_TRACE_LEVEL_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 memcpy (header_p,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 RVT_LOST_MSG,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 RVT_LOST_MSG_LENGTH);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 // Allocate a buffer that reports the system time
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 if (rvf_get_buf (rvt_mb_id, \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 (RVT_SYS_TIME_LENGTH + RVT_HEX_VALUE_LENGTH + RVT_HYPERTERM_LENGTH), \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 (T_RVF_BUFFER**)&p_rvt_sys_time) != RVF_RED)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 memcpy (p_rvt_sys_time,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 RVT_SYS_TIME,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 RVT_SYS_TIME_LENGTH);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 // Allocate a buffer that reports a lack of memory
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 if (rvf_get_buf (rvt_mb_id, \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 (RVT_LOST_MSG_LENGTH + RVT_HEX_VALUE_LENGTH + RVT_HYPERTERM_LENGTH), \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 (T_RVF_BUFFER**)&p_rvt_lost_msg) != RVF_RED)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 memcpy (p_rvt_lost_msg,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 RVT_LOST_MSG,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 RVT_LOST_MSG_LENGTH);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 // State RVT as "STARTED"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 rvt_module_state = RVT_STARTED;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 return RVM_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 /* Function Name: rvt_stop */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 /* Purpose: This function is defined for compilation only. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 /* Input Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 /* Global Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 /* Note: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 T_RVM_RETURN
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 rvt_stop (void)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 return RVM_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 /* Function Name: rvt_kill */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 /* Purpose: This function is defined for compilation only. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 /* Input Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 /* Global Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 /* Note: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 /* None. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 T_RVM_RETURN
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 rvt_kill (void)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 return RVM_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 }
|