MSP430_Debug.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00072
#ifndef MSP430_DEBUG_H
00073
#define MSP430_DEBUG_H
00074
00075
#include "MSP430.h"
00076
00077
#if defined(__cplusplus)
00078
extern "C" {
00079
#endif
00080
00081
#ifndef MSP430_DEBUG_TYPES
00082
#define MSP430_DEBUG_TYPES
00083
00085
#undef R0
00086
#undef R1
00087
#undef R2
00088
#undef R3
00089
#undef R4
00090
#undef R5
00091
#undef R6
00092
#undef R7
00093
#undef R8
00094
#undef R9
00095
#undef R10
00096
#undef R11
00097
#undef R12
00098
#undef R13
00099
#undef R14
00100
#undef R15
00101
#undef PC
00102
#undef SP
00103
#undef SR
00104
#undef CG1
00105
#undef CG2
00106
#undef VCC
00107
00109 typedef enum DEVICE_REGISTERS {
00110
R0 = 0,
00111
R1 = 1,
00112
R2 = 2,
00113
R3 = 3,
00114
R4 = 4,
00115
R5 = 5,
00116
R6 = 6,
00117
R7 = 7,
00118
R8 = 8,
00119
R9 = 9,
00120
R10 = 10,
00121
R11 = 11,
00122
R12 = 12,
00123
R13 = 13,
00124
R14 = 14,
00125
R15 = 15,
00126 }
DEVICE_REGISTERS_t;
00127
00128
#define PC R0
00129
#define SP R1
00130
#define SR R2
00131
#define CG1 R2
00132
#define CG2 R3
00133
00135
#define MASKREG(REG) (1 << REG)
00136
00137
#define ALL_REGS 0xffff
00138
00140 typedef enum RUN_MODES {
00141
FREE_RUN = 1,
00142
SINGLE_STEP = 2,
00143
RUN_TO_BREAKPOINT = 3,
00144 }
RUN_MODES_t;
00145
00147 typedef enum STATE_MODES {
00148
STOPPED = 0,
00149
RUNNING = 1,
00150
SINGLE_STEP_COMPLETE = 2,
00151
BREAKPOINT_HIT = 3,
00152
LPMX5_MODE = 4,
00153
LPMX5_WAKEUP = 5,
00154 }
STATE_MODES_t;
00155
00157 typedef enum EMEX_MODE {
00159
EMEX_NONE = 0,
00161
EMEX_LOW = 1,
00163
EMEX_MEDIUM = 2,
00165
EMEX_HIGH = 3,
00167
EMEX_EXTRA_SMALL_5XX = 4,
00169
EMEX_SMALL_5XX = 5,
00171
EMEX_MEDIUM_5XX =6,
00173
EMEX_LARGE_5XX = 7
00174 }
EMEX_MODE_t;
00175
00177 typedef enum DEVICE_CLOCK_CONTROL {
00178
GCC_NONE = 0,
00179
GCC_STANDARD = 1,
00180
GCC_EXTENDED = 2
00181 }
DEVICE_CLOCK_CONTROL_t;
00182
00183
#if ! defined(uController)
00187 typedef struct EEM_GCLKCTRL {
00188
00189 CHAR* GENCLKCTRLF;
00190 CHAR* GENCLKCTRLE;
00191 CHAR* GENCLKCTRLD;
00192 CHAR* GENCLKCTRLC;
00193 CHAR* GENCLKCTRLB;
00194 CHAR* GENCLKCTRLA;
00195 CHAR* GENCLKCTRL9;
00196 CHAR* GENCLKCTRL8;
00197 CHAR* GENCLKCTRL7;
00198 CHAR* GENCLKCTRL6;
00199 CHAR* GENCLKCTRL5;
00200 CHAR* GENCLKCTRL4;
00201 CHAR* GENCLKCTRL3;
00202 CHAR* GENCLKCTRL2;
00203 CHAR* GENCLKCTRL1;
00204 CHAR* GENCLKCTRL0;
00205 }
EemGclkCtrl_t;
00206
00210 typedef struct EEM_MCLKCTRL {
00212 CHAR*
MCLKCTRL0F;
00213 CHAR*
MCLKCTRL0E;
00214 CHAR*
MCLKCTRL0D;
00215 CHAR*
MCLKCTRL0C;
00216 CHAR*
MCLKCTRL0B;
00217 CHAR*
MCLKCTRL0A;
00218 CHAR*
MCLKCTRL09;
00219 CHAR*
MCLKCTRL08;
00220 CHAR*
MCLKCTRL07;
00221 CHAR*
MCLKCTRL06;
00222 CHAR*
MCLKCTRL05;
00223 CHAR*
MCLKCTRL04;
00224 CHAR*
MCLKCTRL03;
00225 CHAR*
MCLKCTRL02;
00226 CHAR*
MCLKCTRL01;
00227 CHAR*
MCLKCTRL00;
00228
00230 CHAR*
MCLKCTRL1F;
00231 CHAR*
MCLKCTRL1E;
00232 CHAR*
MCLKCTRL1D;
00233 CHAR*
MCLKCTRL1C;
00234 CHAR*
MCLKCTRL1B;
00235 CHAR*
MCLKCTRL1A;
00236 CHAR*
MCLKCTRL19;
00237 CHAR*
MCLKCTRL18;
00238 CHAR*
MCLKCTRL17;
00239 CHAR*
MCLKCTRL16;
00240 CHAR*
MCLKCTRL15;
00241 CHAR*
MCLKCTRL14;
00242 CHAR*
MCLKCTRL13;
00243 CHAR*
MCLKCTRL12;
00244 CHAR*
MCLKCTRL11;
00245 CHAR*
MCLKCTRL10;
00246 }
EemMclkCtrl_t;
00247
#endif // end of def uController
00248
00258
00259
#define TCE_SMCLK (1 << 0)
00260
#define ST_ACLK (1 << 1)
00261
#define ST_SMCLK (1 << 2)
00262
#define TCE_MCLK (1 << 3)
00263
#define JT_FLLO (1 << 4)
00264
#define ST_TACLK (1 << 5)
00266
00267
#define ECLK_SYN (1 << 0)
00268
//#define ST_ACLK (1 << 1)
00269
//#define ST_SMCLK (1 << 2)
00270
#define ST_MCLK (1 << 3)
00271
//#define JT_FLLO (1 << 4)
00272
#define FORCE_SYN (1 << 5)
00294
00295
00296
#define EEM_EN (1 << 0)
00297
00298
#define CLEAR_STOP (1 << 1)
00299
00300
#define EMU_CLK_EN (1 << 2)
00301
00302
#define EMU_FEAT_EN (1 << 3)
00303
00304
#define DEB_TRIG_LATCH (1 << 4)
00305
00308
#define EEM_STOPPED (1 << 7)
00309
00311
#define EMU_MODE_F44X_100 0x0000
00312
00313
#define EMU_MODE_F43X_100 0x4000
00314
00315
#define EMU_MODE_F4XX_64 0x5000
00316
00317
#define EMU_MODE_F4XX_80 0x6000
00318
00319
#endif
00320
00345 DLL430_SYMBOL
STATUS_T WINAPI
MSP430_Registers(LONG* registers, LONG mask, LONG rw);
00346
00347
#define MSP430_Read_Registers(REGISTERS, MASK) MSP430_Registers(REGISTERS, MASK, READ)
00348
#define MSP430_Write_Registers(REGISTERS, MASK) MSP430_Registers(REGISTERS, MASK, WRITE)
00349
00366 DLL430_SYMBOL
STATUS_T WINAPI
MSP430_ExtRegisters(LONG address, CHAR * buffer, LONG count,LONG rw);
00367
00368
#define MSP430_Read_ExtRegister(ADDRESS, BUFFER) MSP430_ExtRegisters(ADDRESS, BUFFER,1 ,READ)
00369
#define MSP430_Write_ExtRegister(ADDRESS, BUFFER) MSP430_ExtRegisters(ADDRESS, BUFFER, 1, WRITE)
00370
00394 DLL430_SYMBOL
STATUS_T WINAPI
MSP430_Register(LONG* reg, LONG regNb, LONG rw);
00395
00396
#define MSP430_Read_Register(REG, REGNB) MSP430_Register(REG, REGNB, READ)
00397
#define MSP430_Write_Register(REG, REGNB) MSP430_Register(REG, REGNB, WRITE)
00398
00399
00430 DLL430_SYMBOL
STATUS_T WINAPI
MSP430_Run(LONG mode, LONG releaseJTAG);
00431
00469 DLL430_SYMBOL
STATUS_T WINAPI
MSP430_State(LONG* state, LONG stop, LONG* pCPUCycles);
00470
00471
00497
#ifndef uController
00498
STATUS_T WINAPI
MSP430_CcGetClockNames(LONG localDeviceId,
EemGclkCtrl_t** CcClockNames);
00499
#endif
00500
00501
00527
#if ! defined(uController)
00528
DLL430_SYMBOL
STATUS_T WINAPI
MSP430_CcGetModuleNames(LONG localDeviceId,
EemMclkCtrl_t** CcModuleNames);
00529
#endif
00530
00531
00532
00533
#if defined(__cplusplus)
00534
}
00535
#endif
00536
00537
#endif // MSP430_DEBUG_H