📄 m5xxreg.h
字号:
/****************************************************************************/
/*
FILE
m5xxreg.h
$Header: /Embedded/MetroTRK/Processor/ppc/Export/m5xxreg.h 5 9/22/98 11:03a Smoore $
DESCRIPTION
API for target-specific implementation.
Register numbers for MPC505 and MPC509.
These register blocks are accessed via the kDSReadRegisters and
kDSWriteRegisters messages. The register number for a specific
register is determined by its corresponding element number in these
structures. The register data in the messages must conform to
the structures defined here in big-endian format.
VERSION
CWDS 1.0
HISTORY
97 FEB 28 LLY Created.
97 MAY 20 LLY Removed register enumeration
97 MAY 27 SCM Reorganized registers according to new message
format.
97 JUN 10 SCM Made some changes to the M821-specific registers.
$History: m5xxreg.h $
//
// ***************** Version 5 *****************
// User: Smoore Date: 9/22/98 Time: 11:03a
// Updated in $/Embedded/MetroTRK/Processor/ppc/Export
// Moved 5xx FP registers into the FP block. Fixed FP block typedef.
//
// ***************** Version 4 *****************
// User: Clayton Date: 9/09/98 Time: 12:50p
// Updated in $/Embedded/MetroTRK/Processor/ppc/Export
// Extracted all common powerPC stuff into ppc_reg.h and cleaned up so
// multiple reg.h files for different processors can be included in a
// debugger plugin.
//
// ***************** Version 3 *****************
// User: Smoore Date: 7/22/98 Time: 10:11a
// Updated in $/Embedded/MetroTRK/Processor/ppc/M5xxExpt
// Updated StopInfo to use new typedefs.
//
// ***************** Version 2 *****************
// User: Smoore Date: 7/15/98 Time: 4:36p
// Updated in $/Embedded/MetroTRK/Processor/ppc/M5xxExpt
// Updated to accomodate latest changes in main source base.
//
// ***************** Version 3 *****************
// User: Smoore Date: 9/23/97 Time: 2:23p
// Updated in $/Embedded/MetroTRK/Processor/ppc/M8xxExpt
// Moved exceptionID from the start of the Extended1 block to the end.
//
// ***************** Version 1 *****************
// User: Smoore Date: 7/14/97 Time: 3:14p
// Created in $/Embedded/MetroTRK/Processor/ppc/M821Expt
// Reorganized CWDS and changed name back to TRK.
//
// ***************** Version 1 *****************
// User: Smoore Date: 7/14/97 Time: 3:06p
// Created in $/Embedded/MetroTRK/MetroTRK/Processor/ppc/M821Expt
// Reorganized CWDS and changed name back to TRK
//
// ***************** Version 1 *****************
// User: Smoore Date: 7/14/97 Time: 2:58p
// Created in $/Embedded/TEMP/MetroTRK/Processor/ppc/M821Expt
// Reorganized CWDS files and changed name back to TRK
//
// ***************** Version 1 *****************
// User: Smoore Date: 7/03/97 Time: 10:22a
// Created in $/Embedded/MIPS2.0/new_TRK/Processors/PPC/M821/Export
// Reorganized CWDS directories and changed name back to TRK
//
// ***************** Version 6 *****************
// User: Smoore QDate: 6/11/97 Time: 10:44 AM
// Updated in $/Embedded/CWDS/M821Expt
// Grouped read-only and inaccessible M821 SPR's at end of extended1
// block.
//
// ***************** Version 5 *****************
// User: Smoore QDate: 6/10/97 Time: 11:37 AM
// Updated in $/CWDS/M821Expt
// Made some changes to the M821-specific registers.
AUTHORS
(c) 1997 Metrowerks Corporation
All rights reserved.
*/
/****************************************************************************/
#pragma once
#include "dstypes.h"
#include "ppc_reg.h" // Generic PowerPC Register Definitions
/****************************************************************************/
/*
* Extended registers block 1
*/
typedef struct Extended1_PPC_5xx
{
Extended1Type MSR;
Extended1Type DAR;
Extended1Type DSISR;
Extended1Type TBL;
Extended1Type TBU;
Extended1Type DEC;
Extended1Type PVR;
Extended1Type SPRG0;
Extended1Type SPRG1; /* used as scratch registers by DS */
Extended1Type SPRG2; /* used as scratch registers by DS */
Extended1Type SPRG3; /* used as scratch registers by DS */
/* The MPC5xx has the following additional registers */
/* Notes: EIE, EID, and NRI are write-only aliases into the MSR - they are not included */
/* DPIR register is fetch-only - it is not included */
Extended1Type SPR_ICADR;
Extended1Type SPR_CMPA; /* writeable only w/debug mode disabled */
Extended1Type SPR_CMPB; /* writeable only w/debug mode disabled */
Extended1Type SPR_CMPC; /* writeable only w/debug mode disabled */
Extended1Type SPR_CMPD; /* writeable only w/debug mode disabled */
Extended1Type SPR_DER; /* writeable only w/debug mode disabled */
Extended1Type SPR_COUNTA; /* writeable only w/debug mode disabled */
Extended1Type SPR_COUNTB; /* writeable only w/debug mode disabled */
Extended1Type SPR_CMPE; /* writeable only w/debug mode disabled */
Extended1Type SPR_CMPF; /* writeable only w/debug mode disabled */
Extended1Type SPR_CMPG; /* writeable only w/debug mode disabled */
Extended1Type SPR_CMPH; /* writeable only w/debug mode disabled */
Extended1Type SPR_LCTRL1; /* writeable only w/debug mode disabled */
Extended1Type SPR_LCTRL2; /* writeable only w/debug mode disabled */
Extended1Type SPR_ICTRL; /* writeable only w/debug mode disabled */
Extended1Type SPR_BAR; /* writeable only w/debug mode disabled */
Extended1Type SPR_DPDR; /* read-only */
Extended1Type SPR_ICDAT; /* read-only */
Extended1Type SPR_ECR; /* not accessible (read-only & reading changes state) */
Extended1Type SPR_ICCST; /* not accessible (read alters & write sends command to cache controller) */
ExceptionCauseType exceptionID; /* same as vector #, e.g. 0x0200 (read-only) */
ui16 pad; /* make struct size even # of longs */
} Extended1_PPC_5xx;
#define DS_EXTENDED1_MIN_REGISTER_5xx 0
#define DS_EXTENDED1_MAX_REGISTER_5xx (sizeof( Extended1_PPC_5xx ) / sizeof( Extended1Type ) - 1)
/*
* full processor state
*/
typedef struct ProcessorState_PPC_5xx
{
Default_PPC Default; /* Default register block */
Float_PPC Float; /* Floating point register block */
Extended1_PPC_5xx Extended1; /* Extended register block */
} ProcessorState_PPC_5xx;
#ifndef MWDEBUGGER_PLUGIN
#define DS_EXTENDED1_MIN_REGISTER DS_EXTENDED1_MIN_REGISTER_5xx
#define DS_EXTENDED1_MAX_REGISTER DS_EXTENDED1_MAX_REGISTER_5xx
#define FPR_START FPR_START_5xx
typedef ProcessorState_PPC_5xx ProcessorState_PPC;
typedef Extended1_PPC_5xx Extended1_PPC;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -