]> git.sur5r.net Git - openocd/blob - src/target/oocd_trace.h
- calculate cycles since last executed instruction when cycle-accurate tracing is...
[openocd] / src / target / oocd_trace.h
1 /***************************************************************************\r
2  *   Copyright (C) 2007 by Dominic Rath                                    *\r
3  *   Dominic.Rath@gmx.de                                                   *\r
4  *                                                                         *\r
5  *   This program is free software; you can redistribute it and/or modify  *\r
6  *   it under the terms of the GNU General Public License as published by  *\r
7  *   the Free Software Foundation; either version 2 of the License, or     *\r
8  *   (at your option) any later version.                                   *\r
9  *                                                                         *\r
10  *   This program is distributed in the hope that it will be useful,       *\r
11  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *\r
12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *\r
13  *   GNU General Public License for more details.                          *\r
14  *                                                                         *\r
15  *   You should have received a copy of the GNU General Public License     *\r
16  *   along with this program; if not, write to the                         *\r
17  *   Free Software Foundation, Inc.,                                       *\r
18  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *\r
19  ***************************************************************************/\r
20 #ifndef OOCD_TRACE_H\r
21 #define OOCD_TRACE_H\r
22 \r
23 #include "command.h"\r
24 \r
25 #include "etm.h"\r
26 \r
27 #include <termios.h>\r
28 #include <unistd.h>\r
29 \r
30 /* registers */\r
31 enum\r
32 {\r
33     OOCD_TRACE_ID = 0x7,\r
34     OOCD_TRACE_ADDRESS = 0x0,\r
35     OOCD_TRACE_TRIGGER_COUNTER = 0x01,\r
36     OOCD_TRACE_CONTROL = 0x2,\r
37     OOCD_TRACE_STATUS = 0x3,\r
38     OOCD_TRACE_SDRAM_COUNTER = 0x4,\r
39 };\r
40 \r
41 /* commands */\r
42 enum\r
43 {\r
44         OOCD_TRACE_NOP = 0x0,\r
45         OOCD_TRACE_READ_REG = 0x10,\r
46         OOCD_TRACE_WRITE_REG = 0x18,\r
47         OOCD_TRACE_READ_RAM = 0x20,\r
48 /*      OOCD_TRACE_WRITE_RAM = 0x28, */\r
49         OOCD_TRACE_RESYNC = 0xf0,\r
50 };\r
51 \r
52 typedef struct oocd_trace_s\r
53 {\r
54         etm_context_t *etm_ctx;\r
55         char *tty;\r
56         int tty_fd;\r
57         struct termios oldtio, newtio;\r
58 } oocd_trace_t;\r
59 \r
60 extern etm_capture_driver_t oocd_trace_capture_driver;\r
61 \r
62 extern int oocd_trace_register_commands(struct command_context_s *cmd_ctx);\r
63 \r
64 #endif /* OOCD_TRACE_TRACE_H */\r