📄 jtagfuncsbw.h
字号:
/*==========================================================================*\
| |
| JTAGfuncSBW.h |
| |
| JTAG Function Prototypes and Definitions |
|----------------------------------------------------------------------------|
| Project: JTAG Functions |
| Developed using: IAR Embedded Workbench 3.40B [Kickstart] |
|----------------------------------------------------------------------------|
| Author: STO |
| Version: 1.4 |
| Initial Version: 04-17-02 |
| Last Change: 02-20-06 |
|----------------------------------------------------------------------------|
| Version history: |
| 1.0 04/02 FRGR Initial version. |
| 1.1 06/02 ALB2 Formatting changes, added comments. |
| 1.2 08/02 ALB2 Initial code release with Lit# SLAA149. |
| 1.3 01/06 STO Minor cosmetic changes |
| 1.4 02/06 STO renamed from JTAGfunc.h |
|----------------------------------------------------------------------------|
| Designed 2002 by Texas Instruments Germany |
\*==========================================================================*/
#ifndef __BYTEWORD__
#define __BYTEWORD__
typedef unsigned int word;
typedef unsigned char byte;
#endif
/****************************************************************************/
/* Define section for constants */
/****************************************************************************/
// Constants for the JTAG instruction register (IR, requires LSB first).
// The MSB has been interchanged with LSB due to use of the same shifting
// function as used for the JTAG data register (DR, requires MSB first).
// Instructions for the JTAG control signal register
#define IR_CNTRL_SIG_16BIT 0xC8 // 0x13 original values
#define IR_CNTRL_SIG_CAPTURE 0x28 // 0x14
#define IR_CNTRL_SIG_RELEASE 0xA8 // 0x15
// Instructions for the JTAG Fuse
#define IR_PREPARE_BLOW 0x44 // 0x22
#define IR_EX_BLOW 0x24 // 0x24
// Instructions for the JTAG data register
#define IR_DATA_16BIT 0x82 // 0x41
#define IR_DATA_QUICK 0xC2 // 0x43
// Instructions for the JTAG PSA mode
#define IR_DATA_PSA 0x22 // 0x44
#define IR_SHIFT_OUT_PSA 0x62 // 0x46
// Instructions for the JTAG address register
#define IR_ADDR_16BIT 0xC1 // 0x83
#define IR_ADDR_CAPTURE 0x21 // 0x84
#define IR_DATA_TO_ADDR 0xA1 // 0x85
// Bypass instruction
#define IR_BYPASS 0xFF // 0xFF
// JTAG identification value for all existing Flash-based MSP430 devices
#define JTAG_ID 0x89
// Constants for data formats, dedicated addresses
#define F_BYTE 8
#define F_WORD 16
#define V_RESET 0xFFFE
// Constants for VPP connection at Blow-Fuse
#define VPP_ON_TDI 0
#define VPP_ON_TEST 1
/****************************************************************************/
/* Function prototypes */
/****************************************************************************/
// Low level JTAG functions
static word DR_Shift16_sbw(word Data);
#define DR_Shift16 DR_Shift16_sbw
static word IR_Shift_sbw(byte Instruction);
#define IR_Shift IR_Shift_sbw
static void ResetTAP_sbw(void);
static word ExecutePUC(void);
static word SetInstrFetch(void);
static void SetPC(word Addr);
static void HaltCPU(void);
static void ReleaseCPU_sbw(void);
static word VerifyPSA_sbw(word StartAddr, word Length, word *DataArray);
#define VerifyPSA VerifyPSA_sbw
// High level JTAG functions
word GetDevice_sbw(void);
#define GetDevice GetDevice_sbw
void ReleaseDevice(word Addr);
void WriteMem(word Format, word Addr, word Data);
void WriteMemQuick(word StartAddr, word Length, word *DataArray);
void WriteFLASH(word StartAddr, word Length, word *DataArray);
word WriteFLASHallSections(word *DataArray);
word ReadMem(word Format, word Addr);
void ReadMemQuick(word StartAddr, word Length, word *DataArray);
void EraseFLASH(word EraseMode, word EraseAddr);
word EraseCheck(word StartAddr, word Length);
word VerifyMem(word StartAddr, word Length, word *DataArray);
word BlowFuse(void);
word IsFuseBlown(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -