Functions
JTAGfunc430.c File Reference

Detailed Description

JTAG Control Sequences for Erasing / Programming / Fuse Burning.

Definition in file JTAGfunc430.c.

#include "JTAGfunc430.h"
#include "LowLevelFunc430.h"
#include "Devices430.h"
Include dependency graph for JTAGfunc430.c:

Go to the source code of this file.

Functions

word DR_Shift16 (word data)
 Function for shifting a given 16-bit word into the JTAG data register through TDI. More...
 
word IR_Shift (byte instruction)
 Function for shifting a new instruction into the JTAG instruction register through TDI (MSB first, but with interchanged MSB - LSB, to simply use the same shifting function, Shift(), as used in DR_Shift16). More...
 
void ResetTAP (void)
 Reset target JTAG interface and perform fuse-HW check. More...
 
word ExecutePOR (void)
 Function to execute a Power-On Reset (POR) using JTAG CNTRL SIG register. More...
 
word SetInstrFetch (void)
 Function to set target CPU JTAG FSM into the instruction fetch state. More...
 
void SetPC (word Addr)
 Load a given address into the target CPU's program counter (PC). More...
 
void HaltCPU (void)
 Function to set the CPU into a controlled stop state. More...
 
void ReleaseCPU (void)
 Function to release the target CPU from the controlled stop state. More...
 
word GetDevice (void)
 Function to take target device under JTAG control. Disables the target watchdog. Sets the global DEVICE variable as read from the target device. More...
 
void ReleaseDevice (word Addr)
 Function to release the target device from JTAG control. More...
 
void WriteMem (word Format, word Addr, word Data)
 This function writes one byte/word at a given address ( <0xA00) More...
 
void WriteMemQuick (word StartAddr, word Length, word *DataArray)
 This function writes an array of words into the target memory. More...
 
void WriteFLASH (word StartAddr, word Length, word *DataArray)
 This function programs/verifies an array of words into the FLASH memory by using the FLASH controller. More...
 
word WriteFLASHallSections (const unsigned int *data, const unsigned long *address, const unsigned long *length_of_sections, const unsigned long sections)
 This function programs/verifies a set of data arrays of words into a FLASH memory by using the "WriteFLASH()" function. It conforms with the "CodeArray" structure convention of file "Target_Code_(IDE).s43" or "Target_Code.h". More...
 
word ReadMem (word Format, word Addr)
 This function reads one byte/word from a given address in memory. More...
 
void ReadMemQuick (word StartAddr, word Length, word *DataArray)
 This function reads an array of words from the memory. More...
 
void EraseFLASH (word EraseMode, word EraseAddr)
 This function performs a mass erase (with and w/o info memory) or a segment erase of a FLASH module specified by the given mode and address. Large memory devices get additional mass erase operations to meet the spec. (Could be extended with erase check via PSA) More...
 
word EraseCheck (word StartAddr, word Length)
 This function performs an Erase Check over the given memory range. More...
 
word VerifyMem (word StartAddr, word Length, word *DataArray)
 This function performs a Verification over the given memory range. More...
 
word BlowFuse (void)
 This function blows the security fuse. More...
 
word IsFuseBlown (void)
 This function checks if the JTAG access security fuse is blown. More...
 
void UnlockInfoA (void)
 This Function unlocks segment A of the InfoMemory (Flash) More...
 

Function Documentation

word BlowFuse ( void  )

This function blows the security fuse.

Returns
word (TRUE if burn was successful, FALSE otherwise)

Definition at line 1240 of file JTAGfunc430.c.

Here is the call graph for this function:

word DR_Shift16 ( word  data)

Function for shifting a given 16-bit word into the JTAG data register through TDI.

Parameters
[in]worddata (16-bit data, MSB first)
Returns
word (value is shifted out via TDO simultaneously)

Definition at line 94 of file JTAGfunc430.c.

Here is the call graph for this function:

word EraseCheck ( word  StartAddr,
word  Length 
)

This function performs an Erase Check over the given memory range.

Parameters
[in]wordStartAddr (Start address of memory to be checked)
[in]wordLength (Number of words to be checked)
Returns
word (STATUS_OK if erase check was successful, STATUS_ERROR otherwise)

Definition at line 1220 of file JTAGfunc430.c.

void EraseFLASH ( word  EraseMode,
word  EraseAddr 
)

This function performs a mass erase (with and w/o info memory) or a segment erase of a FLASH module specified by the given mode and address. Large memory devices get additional mass erase operations to meet the spec. (Could be extended with erase check via PSA)

Parameters
[in]wordMode (could be ERASE_MASS or ERASE_MAIN or ERASE_SGMT)
[in]wordAddr (any address within the selected segment)

Definition at line 1044 of file JTAGfunc430.c.

Here is the call graph for this function:

word ExecutePOR ( void  )

Function to execute a Power-On Reset (POR) using JTAG CNTRL SIG register.

Returns
word (STATUS_OK if target is in Full-Emulation-State afterwards, STATUS_ERROR otherwise)

Definition at line 239 of file JTAGfunc430.c.

Here is the call graph for this function:

word GetDevice ( void  )

Function to take target device under JTAG control. Disables the target watchdog. Sets the global DEVICE variable as read from the target device.

Returns
word (STATUS_ERROR if fuse is blown, incorrect JTAG ID or synchronizing time-out; STATUS_OK otherwise)

Definition at line 659 of file JTAGfunc430.c.

Here is the call graph for this function:

void HaltCPU ( void  )

Function to set the CPU into a controlled stop state.

Definition at line 311 of file JTAGfunc430.c.

Here is the call graph for this function:

word IR_Shift ( byte  instruction)

Function for shifting a new instruction into the JTAG instruction register through TDI (MSB first, but with interchanged MSB - LSB, to simply use the same shifting function, Shift(), as used in DR_Shift16).

Parameters
[in]byteInstruction (8bit JTAG instruction, MSB first)
Returns
word TDOword (value shifted out from TDO = JTAG ID)

Definition at line 137 of file JTAGfunc430.c.

Here is the call graph for this function:

word IsFuseBlown ( void  )

This function checks if the JTAG access security fuse is blown.

Returns
word (STATUS_OK if fuse is blown, STATUS_ERROR otherwise)

Definition at line 1290 of file JTAGfunc430.c.

Here is the call graph for this function:

word ReadMem ( word  Format,
word  Addr 
)

This function reads one byte/word from a given address in memory.

Parameters
[in]wordFormat (F_BYTE or F_WORD)
[in]wordAddr (address of memory)
Returns
word (content of the addressed memory location)

Definition at line 980 of file JTAGfunc430.c.

Here is the call graph for this function:

void ReadMemQuick ( word  StartAddr,
word  Length,
word *  DataArray 
)

This function reads an array of words from the memory.

Parameters
[in]wordStartAddr (Start address of memory to be read)
[in]wordLength (Number of words to be read)
[out]word*DataArray (Pointer to array for the data)

Definition at line 1013 of file JTAGfunc430.c.

Here is the call graph for this function:

void ReleaseCPU ( void  )

Function to release the target CPU from the controlled stop state.

Definition at line 325 of file JTAGfunc430.c.

Here is the call graph for this function:

void ReleaseDevice ( word  Addr)

Function to release the target device from JTAG control.

Parameters
[in]wordAddr (0xFFFE: Perform Reset, means Load Reset Vector into PC, otherwise: Load Addr into PC)

Definition at line 721 of file JTAGfunc430.c.

Here is the call graph for this function:

void ResetTAP ( void  )

Reset target JTAG interface and perform fuse-HW check.

Definition at line 180 of file JTAGfunc430.c.

Here is the call graph for this function:

word SetInstrFetch ( void  )

Function to set target CPU JTAG FSM into the instruction fetch state.

Returns
word (STATUS_OK if instr. fetch was set, STATUS_ERROR otherwise)

Definition at line 267 of file JTAGfunc430.c.

Here is the call graph for this function:

void SetPC ( word  Addr)

Load a given address into the target CPU's program counter (PC).

Parameters
[in]wordAddr (destination address)

Definition at line 289 of file JTAGfunc430.c.

Here is the call graph for this function:

void UnlockInfoA ( void  )

This Function unlocks segment A of the InfoMemory (Flash)

Definition at line 1307 of file JTAGfunc430.c.

word VerifyMem ( word  StartAddr,
word  Length,
word *  DataArray 
)

This function performs a Verification over the given memory range.

Parameters
[in]wordStartAddr (Start address of memory to be verified)
[in]wordLength (Number of words to be verified)
[in]word*DataArray (Pointer to array with the data)
Returns
word (STATUS_OK if verification was successful, STATUS_ERROR otherwise)

Definition at line 1232 of file JTAGfunc430.c.

void WriteFLASH ( word  StartAddr,
word  Length,
word *  DataArray 
)

This function programs/verifies an array of words into the FLASH memory by using the FLASH controller.

Parameters
[in]wordStartAddr (Start address of FLASH memory)
[in]wordLength (Number of words to be programmed)
[in]word*DataArray (Pointer to array with the data)

Definition at line 797 of file JTAGfunc430.c.

Here is the call graph for this function:

word WriteFLASHallSections ( const unsigned int *  data,
const unsigned long *  address,
const unsigned long *  length_of_sections,
const unsigned long  sections 
)

This function programs/verifies a set of data arrays of words into a FLASH memory by using the "WriteFLASH()" function. It conforms with the "CodeArray" structure convention of file "Target_Code_(IDE).s43" or "Target_Code.h".

Parameters
[in]constunsigned int *DataArray (Pointer to array with the data)
[in]constunsigned long *address (Pointer to array with the startaddresses)
[in]constunsigned long *length_of_sections (Pointer to array with the number of words counting from startaddress)
[in]constunsigned long sections (Number of sections in code file)
Returns
word (STATUS_OK if verification was successful, STATUS_ERROR otherwise)

Definition at line 957 of file JTAGfunc430.c.

Here is the call graph for this function:

void WriteMem ( word  Format,
word  Addr,
word  Data 
)

This function writes one byte/word at a given address ( <0xA00)

Parameters
[in]wordFormat (F_BYTE or F_WORD)
[in]wordAddr (Address of data to be written)
[in]wordData (shifted data)

Definition at line 741 of file JTAGfunc430.c.

Here is the call graph for this function:

void WriteMemQuick ( word  StartAddr,
word  Length,
word *  DataArray 
)

This function writes an array of words into the target memory.

Parameters
[in]wordStartAddr (Start address of target memory)
[in]wordLength (Number of words to be programmed)
[in]word*DataArray (Pointer to array with the data)

Definition at line 769 of file JTAGfunc430.c.

Here is the call graph for this function:


Copyright 2016, Texas Instruments Incorporated