⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jtagfunc430x.h

📁 msp430的jtag程序下载的源代码
💻 H
字号:
/*==========================================================================*\
|                                                                            |
| JTAGfunc.h                                                                 |
|                                                                            |
| JTAG Function Prototypes and Definitions                                   |
|----------------------------------------------------------------------------|
| Project:              JTAG Functions                                       |
| Developed using:      IAR Embedded Workbench 3.40B [Kickstart]             |
|----------------------------------------------------------------------------|
| Author:               STO                                                  |
| Version:              1.3                                                  |
| Initial Version:      04-17-02                                             |
| Last Change:          05-11-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                               |
|----------------------------------------------------------------------------|
| 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
word DR_Shift16(word Data);
unsigned long DR_Shift20(unsigned long address);
word IR_Shift(byte Instruction);
void ResetTAP(void);
word ExecutePUC_430X(void);
word SetInstrFetch(void);
void SetPC_430X(unsigned long Addr);
void HaltCPU(void);
void ReleaseCPU(void);
word VerifyPSA_430X(unsigned long StartAddr, unsigned long Length, word *DataArray);

// High level JTAG functions
word GetDevice_430X(void);
#define GetDevice GetDevice_430X
void ReleaseDevice_430X(unsigned long Addr);
#define ReleaseDevice ReleaseDevice_430X
void WriteMem_430X(word Format, unsigned long Addr, word Data);
#define WriteMem WriteMem_430X
void WriteMemQuick_430X(unsigned long StartAddr, unsigned long Length, word *DataArray);
#define WriteMemQuick WriteMemQuick_430X
void WriteFLASH_430X(unsigned long StartAddr, unsigned long Length, word *DataArray);
#define WriteFLASH WriteFLASH_430X
word WriteFLASHallSections_430X(word *DataArray);
#define WriteFLASHallSections WriteFLASHallSections_430X
word ReadMem_430X(word Format, unsigned long Addr);
#define ReadMem ReadMem_430X
void ReadMemQuick_430X(unsigned long StartAddr, unsigned long Length, word *DataArray);
#define ReadMemQuick ReadMemQuick_430X
void EraseFLASH_430X(word EraseMode, unsigned long EraseAddr);
#define EraseFLASH EraseFLASH_430X
word EraseCheck_430X(unsigned long StartAddr, unsigned long Length);
#define EraseCheck EraseCheck_430X
word VerifyMem_430X(unsigned long StartAddr, unsigned long Length, word *DataArray);
#define VerifyMem VerifyMem_430X
word BlowFuse(void);
word IsFuseBlown(void);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -