source: arch/logtrace/trace_config.h

このファイルの最終更新内容7 で kominami が 2015/09/12 9:22:12 に更新しました

TOPPERS/ASP 1.9.1

ファイルサイズ: 5.6 KB
Rev 
[7]1/*
2 *  TOPPERS Software
3 *      Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
6 *                              Toyohashi Univ. of Technology, JAPAN
7 *  Copyright (C) 2004-2012 by Embedded and Real-Time Systems Laboratory
8 *              Graduate School of Information Science, Nagoya Univ., JAPAN
9 *
10 *  Ÿåµ­Ãøºîž¢ŒÔ€Ï¡€°Ê²Œ€Î(1)¡Á(4)€ÎŸò·ï€òËþ€¿€¹Ÿì¹ç€ËžÂ€ê¡€ËÜ¥œ¥Õ¥È¥Š¥§
11 *  ¥¢¡ÊËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò²þÊÑ€·€¿€â€Î€òŽÞ€à¡¥°Ê²ŒÆ±€ž¡Ë€ò»ÈÍÑ¡ŠÊ£Àœ¡Š²þ
12 *  ÊÑ¡ŠºÆÇÛÉۡʰʲŒ¡€ÍøÍрȞƀ֡ˀ¹€ë€³€È€ò̵œþ€ÇµöÂú€¹€ë¡¥
13 *  (1) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¥œ¡Œ¥¹¥³¡Œ¥É€Î·Á€ÇÍøÍÑ€¹€ëŸì¹ç€Ë€Ï¡€Ÿåµ­€ÎÃøºî
14 *      ž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­€Î̵ÊÝŸÚµ¬Äꀬ¡€€œ€Î€Þ€Þ€Î·Á€Ç¥œ¡Œ
15 *      ¥¹¥³¡Œ¥ÉÃæ€ËŽÞ€Þ€ì€Æ€€€ë€³€È¡¥
16 *  (2) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¡€¥é¥€¥Ö¥é¥ê·ÁŒ°€Ê€É¡€ÂŸ€Î¥œ¥Õ¥È¥Š¥§¥¢³«È¯€Ë»È
17 *      Íрǀ­€ë·Á€ÇºÆÇÛÉÛ€¹€ëŸì¹ç€Ë€Ï¡€ºÆÇÛÉÛ€ËÈŒ€Š¥É¥­¥å¥á¥ó¥È¡ÊÍøÍÑ
18 *      ŒÔ¥Þ¥Ë¥å¥¢¥ë€Ê€É¡Ë€Ë¡€Ÿåµ­€ÎÃøºîž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­
19 *      €Î̵ÊÝŸÚµ¬Äê€ò·ÇºÜ€¹€ë€³€È¡¥
20 *  (3) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¡€µ¡Žï€ËÁȀ߹þ€à€Ê€É¡€ÂŸ€Î¥œ¥Õ¥È¥Š¥§¥¢³«È¯€Ë»È
21 *      Íрǀ­€Ê€€·Á€ÇºÆÇÛÉÛ€¹€ëŸì¹ç€Ë€Ï¡€Œ¡€Î€€€º€ì€«€ÎŸò·ï€òËþ€¿€¹€³
22 *      €È¡¥
23 *    (a) ºÆÇÛÉÛ€ËÈŒ€Š¥É¥­¥å¥á¥ó¥È¡ÊÍøÍьԥޥ˥奢¥ë€Ê€É¡Ë€Ë¡€Ÿåµ­€ÎÃø
24 *        ºîž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­€Î̵ÊÝŸÚµ¬Äê€ò·ÇºÜ€¹€ë€³€È¡¥
25 *    (b) ºÆÇÛÉۀηÁÂÖ€ò¡€ÊÌ€ËÄê€á€ëÊýË¡€Ë€è€Ã€Æ¡€TOPPERS¥×¥í¥ž¥§¥¯¥È€Ë
26 *        Êó¹ð€¹€ë€³€È¡¥
27 *  (4) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ÎÍøÍрˀè€êÄŸÀÜŪ€Þ€¿€ÏŽÖÀÜŪ€ËÀž€ž€ë€€€«€Ê€ë»
28 *      ³²€«€é€â¡€Ÿåµ­Ãøºîž¢ŒÔ€ª€è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€òÌÈÀÕ€¹€ë€³€È¡¥
29 *      €Þ€¿¡€ËÜ¥œ¥Õ¥È¥Š¥§¥¢€Î¥æ¡Œ¥¶€Þ€¿€Ï¥š¥ó¥É¥æ¡Œ¥¶€«€é€Î€€€«€Ê€ëÍý
30 *      ͳ€ËŽð€Å€¯ÀÁµá€«€é€â¡€Ÿåµ­Ãøºîž¢ŒÔ€ª€è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€ò
31 *      ÌÈÀÕ€¹€ë€³€È¡¥
32 *
33 *  ËÜ¥œ¥Õ¥È¥Š¥§¥¢€Ï¡€ÌµÊÝŸÚ€ÇÄó¶¡€µ€ì€Æ€€€ë€â€Î€Ç€¢€ë¡¥Ÿåµ­Ãøºîž¢ŒÔ€ª
34 *  €è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€Ï¡€ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ËŽØ€·€Æ¡€ÆÃÄê€Î»ÈÍÑÌÜŪ
35 *  €ËÂЀ¹€ëŬ¹çÀ­€âŽÞ€á€Æ¡€€€€«€Ê€ëÊÝŸÚ€â¹Ô€ï€Ê€€¡¥€Þ€¿¡€ËÜ¥œ¥Õ¥È¥Š¥§
36 *  ¥¢€ÎÍøÍрˀè€êÄŸÀÜŪ€Þ€¿€ÏŽÖÀÜŪ€ËÀž€ž€¿€€€«€Ê€ë»³²€ËŽØ€·€Æ€â¡€€œ
37 *  €ÎÀÕÇ€€òÉé€ï€Ê€€¡¥
38 *
39 *  $Id$
40 */
41
42/*
43 *              ¥È¥ì¡Œ¥¹¥í¥°€ËŽØ€¹€ëÀßÄê
44 *
45 *  €³€Î¥€¥ó¥¯¥ë¡Œ¥É¥Õ¥¡¥€¥ë€Ï¡€target_config.h€ª€è€Ótarget_syssvc.h€Î
46 *  €ß€«€é¥€¥ó¥¯¥ë¡Œ¥É€µ€ì€ë¡¥€Þ€¿¡€¥È¥ì¡Œ¥¹¥í¥°µ¡Çœ€ÎœéŽü²œ€äµ­Ï¿€Î³«
47 *  »Ï¡¿Ää»ß¡€¥È¥ì¡Œ¥¹¥í¥°€Î¥À¥ó¥×€ò¹Ô€Š¥×¥í¥°¥é¥à€«€é¥€¥ó¥¯¥ë¡Œ¥É€¹€ë
48 *  €³€È€òÁÛÄꀷ€Æ€€€ë¡¥
49 */
50
51#ifndef TOPPERS_TRACE_CONFIG_H
52#define TOPPERS_TRACE_CONFIG_H
53
54/*
55 *  ¥È¥ì¡Œ¥¹¥í¥°¥Ð¥Ã¥Õ¥¡€Î¥µ¥€¥º
56 */
57#ifndef TCNT_TRACE_BUFFER
58#define TCNT_TRACE_BUFFER       1024
59#endif /* TCNT_TRACE_BUFFER */
60
61/*
62 *  ¥È¥ì¡Œ¥¹»þ¹ï€ÎŒèÆÀÊýË¡
63 */
64#ifndef TRACE_GET_TIM
65#define TRACE_GET_TIM()         (current_time)
66#endif /* TRACE_GET_TIM */
67
68#ifndef TOPPERS_MACRO_ONLY
69
70/*
71 *  ¥È¥ì¡Œ¥¹¥í¥°€Î¥Ç¡Œ¥¿¹œÂ€
72 *
73 *  ¥·¥¹¥Æ¥à¥í¥°µ¡Çœ€Î¥í¥°ŸðÊó€Î¥Ç¡Œ¥¿¹œÂ€€ÈƱ€ž€â€Î€òÍÑ€€€ë¡¥
74 */
75#include <t_syslog.h>
76typedef SYSLOG  TRACE;
77
78/*
79 *  ¥È¥ì¡Œ¥¹¥í¥°¥Ð¥Ã¥Õ¥¡€È€œ€ì€Ë¥¢¥¯¥»¥¹€¹€ë€¿€á€Î¥Ý¥€¥ó¥¿
80 */
81extern TRACE    trace_buffer[];         /* ¥È¥ì¡Œ¥¹¥í¥°¥Ð¥Ã¥Õ¥¡ */
82extern uint_t   trace_count;            /* ¥È¥ì¡Œ¥¹¥í¥°¥Ð¥Ã¥Õ¥¡Ãæ€Î¥í¥°€Î¿ô */
83extern uint_t   trace_head;                     /* ÀèÆ¬€Î¥È¥ì¡Œ¥¹¥í¥°€Î³ÊÇŒ°ÌÃÖ */
84extern uint_t   trace_tail;                     /* Œ¡€Î¥È¥ì¡Œ¥¹¥í¥°€Î³ÊÇŒ°ÌÃÖ */
85extern uint_t   trace_lost;                     /* Œº€ï€ì€¿¥È¥ì¡Œ¥¹€Î¿ô */
86
87#endif /* TOPPERS_MACRO_ONLY */
88
89/*
90 *  ¥È¥ì¡Œ¥¹¥â¡Œ¥É€ÎÄêµÁ
91 */
92#define TRACE_STOP                      UINT_C(0x00)    /* ¥È¥ì¡Œ¥¹Ää»ß */
93#define TRACE_RINGBUF           UINT_C(0x01)    /* ¥ê¥ó¥°¥Ð¥Ã¥Õ¥¡¥â¡Œ¥É */
94#define TRACE_AUTOSTOP          UINT_C(0x02)    /* Œ«Æ°Ää»ß¥â¡Œ¥É */
95#define TRACE_CLEAR                     UINT_C(0x04)    /* ¥È¥ì¡Œ¥¹¥í¥°€Î¥¯¥ê¥¢ */
96
97#ifndef TOPPERS_MACRO_ONLY
98
99/*
100 *  ¥È¥ì¡Œ¥¹¥í¥°µ¡Çœ€ÎœéŽü²œ
101 *
102 *  ¥È¥ì¡Œ¥¹¥í¥°µ¡Çœ€òœéŽü²œ€¹€ë¡¥œéŽü²œ¥ë¡Œ¥Á¥ó€È€·€ÆÅÐÏ¿€¹€ë€³€È€òÁÛ
103 *  Äꀷ€Æ€€€ë¡¥°ú¿ô€Ë€è€êŒ¡€Îưºî€ò¹Ô€Š¡¥
104 *
105 *  TRACE_STOP¡§œéŽü²œ€Î€ß€Ç¥È¥ì¡Œ¥¹€Ï³«»Ï€·€Ê€€¡¥
106 *  TRACE_RINGBUF¡§¥ê¥ó¥°¥Ð¥Ã¥Õ¥¡¥â¡Œ¥É€Ç¥È¥ì¡Œ¥¹€ò³«»Ï¡¥
107 *  TRACE_AUTOSTOP¡§Œ«Æ°Ää»ß¥â¡Œ¥É€Ç¥È¥ì¡Œ¥¹€ò³«»Ï¡¥
108 */
109extern void     trace_initialize(intptr_t exinf);
110
111/*
112 *  ¥È¥ì¡Œ¥¹¥í¥°€Î³«»Ï
113 *
114 *  ¥È¥ì¡Œ¥¹¥í¥°€Îµ­Ï¿€ò³«»Ï¡¿Ää»ß€¹€ë¡¥°ú¿ô€Ë€è€êŒ¡€Îưºî€ò¹Ô€Š¡¥
115 *
116 *  TRACE_STOP¡§¥È¥ì¡Œ¥¹€òÄä»ß¡¥
117 *  TRACE_RINGBUF¡§¥ê¥ó¥°¥Ð¥Ã¥Õ¥¡¥â¡Œ¥É€Ç¥È¥ì¡Œ¥¹€ò³«»Ï¡¥
118 *  TRACE_AUTOSTOP¡§Œ«Æ°Ää»ß¥â¡Œ¥É€Ç¥È¥ì¡Œ¥¹€ò³«»Ï¡¥
119 *  TRACE_CLEAR¡§¥È¥ì¡Œ¥¹¥í¥°€ò¥¯¥ê¥¢¡¥
120 */
121extern ER       trace_sta_log(MODE mode);
122
123/*
124 *  ¥È¥ì¡Œ¥¹¥í¥°€Îœñ¹þ€ß
125 */
126extern ER       trace_wri_log(TRACE *p_trace);
127
128/*
129 *  ¥È¥ì¡Œ¥¹¥í¥°€ÎÆÉœÐ€·
130 */
131extern ER       trace_rea_log(TRACE *p_trace);
132
133/*
134 *  ¥È¥ì¡Œ¥¹¥í¥°€Î¥À¥ó¥×¡Êtrace_dump.c¡Ë
135 *
136 *  ¥È¥ì¡Œ¥¹¥í¥°€ò¥À¥ó¥×€¹€ë¡¥œªÎ»œèÍý¥ë¡Œ¥Á¥ó€È€·€ÆÅÐÏ¿€¹€ë€³€È€âÁÛÄê
137 *  €·€Æ€€€ë¡¥°ú¿ô€È€·€Æ¡€¥À¥ó¥×Àè€È€Ê€ëÊž»úœÐÎÏŽØ¿ô€Ø€Î¥Ý¥€¥ó¥¿€òÅÏ€¹¡¥
138 *  ¥¿¡Œ¥²¥Ã¥È°Íž€ÎÄã¥ì¥Ù¥ëÊž»úœÐÎÏ€òÍøÍÑ€¹€ëŸì¹ç€Ë€Ï¡€target_putc€òÅÏ
139 *  €¹¡¥
140 */
141extern void     trace_dump(intptr_t exinf);
142
143/*
144 *  ¥È¥ì¡Œ¥¹¥í¥°€òœÐÎÏ€¹€ë€¿€á€Î¥é¥€¥Ö¥é¥êŽØ¿ô
145 */
146extern void     trace_write_0(uint_t type);
147extern void     trace_write_1(uint_t type, intptr_t arg1);
148extern void     trace_write_2(uint_t type, intptr_t arg1, intptr_t arg2);
149extern void     trace_write_3(uint_t type, intptr_t arg1, intptr_t arg2,
150                                                                                                                intptr_t arg3);
151
152/*
153 *  ¥È¥ì¡Œ¥¹¥í¥°€òœÐÎÏ€¹€ë€¿€á€Î¥Þ¥¯¥í
154 */
155
156#define trace_0(type) \
157                                trace_write_0(type)
158
159#define trace_1(type, arg1) \
160                                trace_write_1(type, (intptr_t)(arg1))
161
162#define trace_2(type, arg1, arg2) \
163                                trace_write_2(type, (intptr_t)(arg1), (intptr_t)(arg2))
164
165#define trace_3(type, arg1, arg2, arg3) \
166                                trace_write_3(type, (intptr_t)(arg1), (intptr_t)(arg2), \
167                                                (intptr_t)(arg3))
168
169#endif /* TOPPERS_MACRO_ONLY */
170
171/*
172 *  ¥È¥ì¡Œ¥¹¥í¥°ÊýË¡€ÎÀßÄê
173 */
174#define LOG_TSKSTAT(p_tcb)              trace_2(LOG_TYPE_TSKSTAT, p_tcb, p_tcb->tstat)
175
176#define LOG_DSP_LEAVE(p_tcb)    trace_1(LOG_TYPE_DSP|LOG_LEAVE, p_tcb)
177
178#define LOG_SYSLOG_WRI_LOG_ENTER(prio, p_syslog) \
179                                                                trace_wri_log((TRACE *) p_syslog)
180
181#endif /* TOPPERS_TRACE_CONFIG_H */
詳しい使い方は TracBrowser を参照してください。