00001 /*--------------------------------------------------------------------
00002 * jtag_commander.cpp -- JTAG Commander Class Definition
00003 *--------------------------------------------------------------------
00004 * $Id: jtag_commander.h,v 1.1 2003/04/08 08:59:53 cgaudin Exp $
00005 *--------------------------------------------------------------------
00006 * This file is part of JTAG Framework
00007 * (c) 2002 Julien Pilet <julien.pilet@epfl.ch> and
00008 * Stephane Magnenat <stephane.magnenat@epfl.ch>
00009 *--------------------------------------------------------------------
00010 * JTAG Framework is free software; you can redistribute it
00011 * and/or modify it under the terms of the GNU General Public License
00012 * as published by the Free Software Foundation; either version 2 of
00013 * the License, or (at your option) any later version.
00014 *
00015 * JTAG Framework is distributed in the hope that it will be useful,
00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00018 * GNU General Public License for more details.
00019 *
00020 * You should have received a copy of the GNU General Public License
00021 * along with Foobar; if not, write to:
00022 * Free Software Foundation, Inc.,
00023 * 59 Temple Place,
00024 * Suite 330, Boston, MA 02111-1307 USA
00025 *--------------------------------------------------------------------
00026 *! \file
00027 *
00028 * \brief JTAG Commander Abstract Class Definition
00029 *
00030 * \author Julien Pilet <julien.pilet@epfl.ch>
00031 * \author Stephane Magnenat <stephane.magnenat@epfl.ch>
00032 * \author Cedric Gaudin <cedric.gaudin@epfl.ch>
00033 */
00034
00035 #ifndef _JTAG_COMMANDER_
00036 #define _JTAG_COMMANDER_
00037
00038 class JTAG_Commander
00039 {
00040 public:
00041
00043 virtual bool init( int argc ,
00044 char **argv ) = 0;
00045
00047 virtual void jtag_ireg( unsigned long value ) = 0;
00048
00050 virtual bool jtag_shiftdr( void ) = 0;
00051
00053 virtual bool jtag_updatedr( void ) = 0;
00054
00056 virtual unsigned long jtag_dreg( int bit_count ,
00057 unsigned long data ) = 0;
00058
00060 virtual bool jtag_reset( bool cold ) = 0;
00061
00063 virtual void jtag_idle() = 0;
00064
00066 virtual bool cpu_reset( bool state ) = 0;
00067
00069 virtual void flush() = 0;
00070
00071 };
00072
00073 #endif // _JTAG_COMMANDER_
1.2.15