📄 voyager_reg.h
字号:
/*---------------------------------------------------------------------------
*
* Copyright (c) 2000 by National Semiconductor Corporation
*
* National Semiconductor Corporation
*
* All rights reserved.
*
*
*----------------------------------------------------------------------------
*
* File: voyager_regs.h
*
* Description: defines all voyager registers.
* contains bit field definition for allmost all registers bits
*
* Notes: Not all modules are covered by bit field definitions
*
* Project: Voyager
*
* Author: Lidor Arvats
* Date: 16.4.2000
* Version: $0.3
*
*--------------------------------------------------------------------------*/
#ifndef __v_reg__
#define __v_reg__
#ifdef _CR16_
#include <asm.h>
#endif
/***************************************************************************/
/* General utilities */
/***************************************************************************/
// structure used by bit-field definitions
struct _BITS {
unsigned B0 : 1;
unsigned B1 : 1;
unsigned B2 : 1;
unsigned B3 : 1;
unsigned B4 : 1;
unsigned B5 : 1;
unsigned B6 : 1;
unsigned B7 : 1;
unsigned B8 : 1;
unsigned B9 : 1;
unsigned B10 : 1;
unsigned B11 : 1;
unsigned B12 : 1;
unsigned B13 : 1;
unsigned B14 : 1;
unsigned B15 : 1;
};
// general macros
// #define _BIT(reg,bit) (*(struct _BITS *)&(reg)).B##bit
#define _BIT(reg,bit) (1 << bit)
#define ATOMIC_OP(exp) do { _di(); exp; _ei(); } while (0)
/***************************************************************************/
/***************************************************************************/
/* Voyager Registers Definitions */
/***************************************************************************/
#define TEST2 (*((volatile unsigned short *)0xFF1C))
#define TEST3 (*((volatile unsigned short *)0xFF1E))
#define SSD (*((volatile unsigned char *)0xFBD4))
// Bus Interface Unit (BIU)
#define BCFG (*((volatile unsigned char *)0xF980))
#define IOCFG (*((volatile unsigned short *)0xF982))
#define SZCFG0 (*((volatile unsigned short *)0xF984))
#define SZCFG1 (*((volatile unsigned short *)0xF986))
#define SZCFG2 (*((volatile unsigned short *)0xF988))
// Direct Memory Access (DMA)
#define ADCA0 (*((volatile unsigned long *)0xFA00))
#define ADRA0 (*((volatile unsigned long *)0xFA04))
#define ADCB0 (*((volatile unsigned long *)0xFA08))
#define ADRB0 (*((volatile unsigned long *)0xFA0C))
#define BLTC0 (*((volatile unsigned long *)0xFA10))
#define BLTR0 (*((volatile unsigned long *)0xFA14))
#define CNTL0 (*((volatile unsigned short *)0xFA1C))
#define STAT0 (*((volatile unsigned char *)0xFA1E))
#define ADCA1 (*((volatile unsigned long *)0xFA20))
#define ADRA1 (*((volatile unsigned long *)0xFA24))
#define ADCB1 (*((volatile unsigned long *)0xFA28))
#define ADRB1 (*((volatile unsigned long *)0xFA2C))
#define BLTC1 (*((volatile unsigned long *)0xFA30))
#define BLTR1 (*((volatile unsigned long *)0xFA34))
#define CNTL1 (*((volatile unsigned short *)0xFA3C))
#define STAT1 (*((volatile unsigned char *)0xFA3E))
#define ADCA2 (*((volatile unsigned long *)0xFA40))
#define ADRA2 (*((volatile unsigned long *)0xFA44))
#define ADCB2 (*((volatile unsigned long *)0xFA48))
#define ADRB2 (*((volatile unsigned long *)0xFA4C))
#define BLTC2 (*((volatile unsigned long *)0xFA50))
#define BLTR2 (*((volatile unsigned long *)0xFA54))
#define CNTL2 (*((volatile unsigned short *)0xFA5C))
#define STAT2 (*((volatile unsigned char *)0xFA5E))
#define ADCA3 (*((volatile unsigned long *)0xFA60))
#define ADRA3 (*((volatile unsigned long *)0xFA64))
#define ADCB3 (*((volatile unsigned long *)0xFA68))
#define ADRB3 (*((volatile unsigned long *)0xFA6C))
#define BLTC3 (*((volatile unsigned long *)0xFA70))
#define BLTR3 (*((volatile unsigned long *)0xFA74))
#define CNTL3 (*((volatile unsigned short *)0xFA7C))
#define STAT3 (*((volatile unsigned char *)0xFA7E))
// Interrupt Control Unit (ICU)
#define IVCT (*((volatile unsigned char *)0xFE00))
#define NMISTAT (*((volatile unsigned char *)0xFE02))
#define PFAIL (*((volatile unsigned short *)0xFE04))
#define NMIMNTR (*((volatile unsigned short *)0xFE06))
#define ISTAT0 (*((volatile unsigned short *)0xFE0A))
#define ISTAT1 (*((volatile unsigned short *)0xFE0C))
#define IENAM0 (*((volatile unsigned short *)0xFE0E))
#define IENAM1 (*((volatile unsigned short *)0xFE10))
#define IECLR0 (*((volatile unsigned short *)0xFE12))
#define IECLR1 (*((volatile unsigned short *)0xFE14))
#define IDBG (*((volatile unsigned short *)0xFE1A))
#define ITEST0 (*((volatile unsigned short *)0xFE1C))
#define ITEST1 (*((volatile unsigned short *)0xFE1E))
// Multi Input Wake-Up (MIWU)
#define WKEDG1 (*((volatile unsigned char *)0xFFC0))
#define WKEDG2 (*((volatile unsigned char *)0xFFC2))
#define WKEDG3 (*((volatile unsigned char *)0xFFC4))
#define WKEDG4 (*((volatile unsigned char *)0xFFC6))
#define WKPND1 (*((volatile unsigned char *)0xFFCC))
#define WKPND2 (*((volatile unsigned char *)0xFFD0))
#define WKPND3 (*((volatile unsigned char *)0xFFD4))
#define WKPND4 (*((volatile unsigned char *)0xFFD8))
#define WKPCL1 (*((volatile unsigned char *)0xFFCA))
#define WKPCL2 (*((volatile unsigned char *)0xFFCE))
#define WKPCL3 (*((volatile unsigned char *)0xFFD2))
#define WKPCL4 (*((volatile unsigned char *)0xFFD6))
#define WKEN1 (*((volatile unsigned char *)0xFFD8))
#define WKEN2 (*((volatile unsigned char *)0xFFDA))
#define WKEN3 (*((volatile unsigned char *)0xFFDC))
#define WKEN4 (*((volatile unsigned char *)0xFFDE))
// General Purpose I/O ports (GPIO)
#define PADIR (*((volatile unsigned char *)0xFE20))
#define PADIN (*((volatile unsigned char *)0xFE22))
#define PADOUT (*((volatile unsigned char *)0xFE24))
#define PAWPU (*((volatile unsigned char *)0xFE26))
#define PAALT (*((volatile unsigned char *)0xFE28))
#define PBDIR (*((volatile unsigned char *)0xFE2A))
#define PBDIN (*((volatile unsigned char *)0xFE2C))
#define PBDOUT (*((volatile unsigned char *)0xFE2E))
#define PBWPU (*((volatile unsigned char *)0xFE30))
#define PBALT (*((volatile unsigned char *)0xFE32))
#define PCDIR (*((volatile unsigned char *)0xFE34))
#define PCDIN (*((volatile unsigned char *)0xFE36))
#define PCDOUT (*((volatile unsigned char *)0xFE38))
#define PCWPU (*((volatile unsigned char *)0xFE3A))
#define PCALT (*((volatile unsigned char *)0xFE3C))
#define PDDIR (*((volatile unsigned char *)0xFE3E))
#define PDDIN (*((volatile unsigned char *)0xFE40))
#define PDDOUT (*((volatile unsigned char *)0xFE42))
#define PDWPU (*((volatile unsigned char *)0xFE44))
#define PDALT (*((volatile unsigned char *)0xFE46))
#define PEDIN (*((volatile unsigned char *)0xFE48))
#define PEWPU (*((volatile unsigned char *)0xFE4A))
#define PEALT (*((volatile unsigned char *)0xFE4C))
#define KBSIN (*((volatile unsigned char *)0xFE4E))
#define KBSINPU (*((volatile unsigned char *)0xFE50))
#define KBSOUT (*((volatile unsigned short *)0xFE52))
#define PFDIR (*((volatile unsigned char *)0xFE54))
#define PFDIN (*((volatile unsigned char *)0xFE56))
#define PFDOUT (*((volatile unsigned char *)0xFE58))
#define PFWPU (*((volatile unsigned char *)0xFE5A))
#define PFALT (*((volatile unsigned char *)0xFE5C))
//#define PHDIR (*((volatile unsigned char *)0xFB00))
//#define PHDIN (*((volatile unsigned char *)0xFB02))
//#define PHDOUT (*((volatile unsigned char *)0xFB04))
//#define PIDIR (*((volatile unsigned char *)0xFB06))
//#define PIDIN (*((volatile unsigned char *)0xFB08))
//#define PIDOUT (*((volatile unsigned char *)0xFB0A))
//#define PJDIR (*((volatile unsigned char *)0xFB0C))
//#define PJDIN (*((volatile unsigned char *)0xFB0E))
//#define PJDOUT (*((volatile unsigned char *)0xFB10))
//#define PKDIR (*((volatile unsigned char *)0xFB12))
//#define PKDIN (*((volatile unsigned char *)0xFB14))
//#define PKDOUT (*((volatile unsigned char *)0xFB16))
//#define PLDIR (*((volatile unsigned char *)0xFB18))
//#define PLDIN (*((volatile unsigned char *)0xFB1A))
//#define PLDOUT (*((volatile unsigned char *)0xFB1C))
//#define PMDIR (*((volatile unsigned char *)0xFB1E))
//#define PMDIN (*((volatile unsigned char *)0xFB20))
//#define PMDOUT (*((volatile unsigned char *)0xFB22))
// PS/2 Ports
#define PSDAT (*((volatile unsigned char *)0xFE80))
#define PSTAT (*((volatile unsigned char *)0xFE82))
#define PSCON (*((volatile unsigned char *)0xFE84))
#define PSOSIG (*((volatile unsigned char *)0xFE86))
#define PSISIG (*((volatile unsigned char *)0xFE88))
#define PSIEN (*((volatile unsigned char *)0xFE8A))
// Multi function Timers (MFT16)
#define T1CNT1 (*((volatile unsigned short *)0xFD80))
#define T1CRA (*((volatile unsigned short *)0xFD82))
#define T1CRB (*((volatile unsigned short *)0xFD84))
#define T1CNT2 (*((volatile unsigned short *)0xFD86))
#define T1PRSC (*((volatile unsigned char *)0xFD88))
#define T1CKC (*((volatile unsigned char *)0xFD8A))
#define T1CTRL (*((volatile unsigned char *)0xFD8C))
#define T1ICTL (*((volatile unsigned char *)0xFD8E))
#define T1ICLR (*((volatile unsigned char *)0xFD90))
#define T2CNT1 (*((volatile unsigned short *)0xFDA0))
#define T2CRA (*((volatile unsigned short *)0xFDA2))
#define T2CRB (*((volatile unsigned short *)0xFDA4))
#define T2CNT2 (*((volatile unsigned short *)0xFDA6))
#define T2PRSC (*((volatile unsigned char *)0xFDA8))
#define T2CKC (*((volatile unsigned char *)0xFDAA))
#define T2CTRL (*((volatile unsigned char *)0xFDAC))
#define T2ICTL (*((volatile unsigned char *)0xFDAE))
#define T2ICLR (*((volatile unsigned char *)0xFDB0))
// Pulse Width Modulation (PWM)
#define PRSC (*((volatile unsigned char *)0xFD00))
#define CTR (*((volatile unsigned char *)0xFD02))
#define PWMPOL (*((volatile unsigned char *)0xFD04))
#define PWMCNT (*((volatile unsigned char *)0xFD06))
#define DCR0 (*((volatile unsigned char *)0xFD08))
#define DCR1 (*((volatile unsigned char *)0xFD0A))
#define DCR2 (*((volatile unsigned char *)0xFD0C))
#define DCR3 (*((volatile unsigned char *)0xFD0E))
#define DCR4 (*((volatile unsigned char *)0xFD10))
#define DCR5 (*((volatile unsigned char *)0xFD12))
#define DCR6 (*((volatile unsigned char *)0xFD14))
#define DCR7 (*((volatile unsigned char *)0xFD16))
//Universal Synchronous/Asynchronous Receiver Transmiter (USART)
#define UTBUF (*((volatile unsigned char *)0xFD20))
#define URBUF (*((volatile unsigned char *)0xFD22))
#define UICTRL (*((volatile unsigned char *)0xFD24))
#define USTAT (*((volatile unsigned char *)0xFD26))
#define UFRS (*((volatile unsigned char *)0xFD28))
#define UMDSL (*((volatile unsigned char *)0xFD2A))
#define UBAUD (*((volatile unsigned char *)0xFD2C))
#define UPSR (*((volatile unsigned char *)0xFD2E))
#define UMCTRL (*((volatile unsigned char *)0xFD30))
// Timer and Watchdog (TWD)
#define TWCFG (*((volatile unsigned char *)0xFEE0))
#define TWCP (*((volatile unsigned char *)0xFEE2))
#define TWDT0 (*((volatile unsigned short *)0xFEE4))
#define T0CSR (*((volatile unsigned char *)0xFEE6))
#define WDCNT (*((volatile unsigned char *)0xFEE8))
#define WDSDM (*((volatile unsigned char *)0xFEEA))
// Analog to Digital Converter (ADC)
#define ADCSTS (*((volatile unsigned char *)0xFF20))
#define ADCCNF (*((volatile unsigned char *)0xFF22))
#define ACLKCTL (*((volatile unsigned char *)0xFF24))
#define ADLYCTL (*((volatile unsigned char *)0xFF26))
#define TLOCOTL (*((volatile unsigned char *)0xFF28))
#define ADCPINX (*((volatile unsigned char *)0xFF2A))
#define ADCPD (*((volatile unsigned char *)0xFF2C))
#define TCHANCTL (*((volatile unsigned char *)0xFF30))
#define TCHANDAT (*((volatile unsigned char *)0xFF32))
#define VCHN1CTL (*((volatile unsigned char *)0xFF34))
#define VCHN1DAT (*((volatile unsigned short *)0xFF36))
#define VCHN2CTL (*((volatile unsigned char *)0xFF38))
#define VCHN2DAT (*((volatile unsigned short *)0xFF3A))
#define VCHN3CTL (*((volatile unsigned char *)0xFF3C))
#define VCHN3DAT (*((volatile unsigned short *)0xFF3E))
// Digital to Analog Converter (DAC)
#define DACCTRL (*((volatile unsigned char *)0xFF40))
#define DACDAT0 (*((volatile unsigned char *)0xFF42))
#define DACDAT1 (*((volatile unsigned char *)0xFF44))
#define DACDAT2 (*((volatile unsigned char *)0xFF46))
#define DACDAT3 (*((volatile unsigned char *)0xFF48))
// ACCESS.bus interfaces (ACB)
#define ACB1SDA (*((volatile unsigned char *)0xFF60))
#define ACB1ST (*((volatile unsigned char *)0xFF62))
#define ACB1CST (*((volatile unsigned char *)0xFF64))
#define ACB1CTL1 (*((volatile unsigned char *)0xFF66))
#define ACB1ADDR (*((volatile unsigned char *)0xFF68))
#define ACB1CTL2 (*((volatile unsigned char *)0xFF6A))
#define ACB1CTL3 (*((volatile unsigned char *)0xFF6C))
#define ACB1ADDR2 (*((volatile unsigned char *)0xFF6E))
#define ACB2SDA (*((volatile unsigned char *)0xFFE0))
#define ACB2ST (*((volatile unsigned char *)0xFFE2))
#define ACB2CST (*((volatile unsigned char *)0xFFE4))
#define ACB2CTL1 (*((volatile unsigned char *)0xFFE6))
#define ACB2ADDR (*((volatile unsigned char *)0xFFE8))
#define ACB2CTL2 (*((volatile unsigned char *)0xFFEA))
#define ACB2CTL3 (*((volatile unsigned char *)0xFFEC))
#define ACB2ADDR2 (*((volatile unsigned char *)0xFFEE))
// Analog Comperators Monitor (ACM)
#define ACMCTS (*((volatile unsigned char *)0xFD40))
#define ACMCNF (*((volatile unsigned char *)0xFD42))
#define ACMTIM (*((volatile unsigned char *)0xFD44))
#define THRDAT (*((volatile unsigned char *)0xFD46))
#define CMPRES (*((volatile unsigned char *)0xFD48))
#define VOLDAT0 (*((volatile unsigned char *)0xFD50))
#define VOLDAT1 (*((volatile unsigned char *)0xFD52))
#define VOLDAT2 (*((volatile unsigned char *)0xFD54))
#define VOLDAT3 (*((volatile unsigned char *)0xFD56))
#define VOLDAT4 (*((volatile unsigned char *)0xFD58))
#define VOLDAT5 (*((volatile unsigned char *)0xFD5A))
#define VOLDAT6 (*((volatile unsigned char *)0xFD5C))
#define VOLDAT7 (*((volatile unsigned char *)0xFD5E))
// Flash Interface
#define IBAI (*((volatile unsigned short *)0xF880))
#define IBD (*((volatile unsigned short *)0xF882))
#define FCWP0 (*((volatile unsigned short *)0xF890))
#define FCWP1 (*((volatile unsigned short *)0xF892))
#define FCWP2 (*((volatile unsigned short *)0xF894))
#define FLCR (*((volatile unsigned short *)0xF8C0))
#define FLSR (*((volatile unsigned short *)0xF8C2))
#define FLPSLR (*((volatile unsigned char *)0xF8C4))
#define FLSTART (*((volatile unsigned char *)0xF8C6))
#define FLTRAN (*((volatile unsigned char *)0xF8CA))
#define FLPROG (*((volatile unsigned char *)0xF8D0))
#define FLPERASE (*((volatile unsigned char *)0xF8D2))
#define FLSERASE0 (*((volatile unsigned char *)0xF8D4))
#define FLSERASE1 (*((volatile unsigned char *)0xF8D6))
#define FLEND (*((volatile unsigned char *)0xF8D8))
#define FLSEND (*((volatile unsigned char *)0xF8DC))
#define FLRCV (*((volatile unsigned char *)0xF8DE))
#define FLAR0 (*((volatile unsigned char *)0xF8E0))
#define FLAR1 (*((volatile unsigned char *)0xF8E2))
// Power Management (PMC)
#define PMCSR (*((volatile unsigned char *)0xFF80))
// High Frequency Clock Generator (HFCG)
#define HFCGCTRL1 (*((volatile unsigned char *)0xFFA0))
#define HFCGML (*((volatile unsigned char *)0xFFA2))
#define HFCGMH (*((volatile unsigned char *)0xFFA4))
#define HFCGN (*((volatile unsigned char *)0xFFA6))
#define HFCGIL (*((volatile unsigned char *)0xFFA8))
#define HFCGIH (*((volatile unsigned char *)0xFFAA))
#define HFCGP (*((volatile unsigned char *)0xFFAC))
#define HFCGCTRL2 (*((volatile unsigned char *)0xFFAE))
// Debugger Interface
#define DBGRXD0 (*((volatile unsigned short *)0xFDC0))
#define DBGRXD2 (*((volatile unsigned short *)0xFDC2))
#define DBGRXD8 (*((volatile unsigned short *)0xFDC8))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -