Main Page | Data Structures | File List | Data Fields | Globals

MSP430_Debug.h

Go to the documentation of this file.
00001 /* 00002 * MSP430_Debug.h 00003 * 00004 * API for accessing debugging functionality of MSP430 library. 00005 * 00006 * Copyright (C) 2004 - 2011 Texas Instruments Incorporated - http://www.ti.com/ 00007 * 00008 * 00009 * Redistribution and use in source and binary forms, with or without 00010 * modification, are permitted provided that the following conditions 00011 * are met: 00012 * 00013 * Redistributions of source code must retain the above copyright 00014 * notice, this list of conditions and the following disclaimer. 00015 * 00016 * Redistributions in binary form must reproduce the above copyright 00017 * notice, this list of conditions and the following disclaimer in the 00018 * documentation and/or other materials provided with the 00019 * distribution. 00020 * 00021 * Neither the name of Texas Instruments Incorporated nor the names of 00022 * its contributors may be used to endorse or promote products derived 00023 * from this software without specific prior written permission. 00024 * 00025 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00026 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00027 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00028 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00029 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00030 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00031 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00032 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00033 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00034 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00035 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 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 /* MSP430_DEBUG_TYPES */ 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