📄 mb86940.h
字号:
/* mb86940.h - Fujitsu SPARClite companion chip *//* Copyright 1984-1991 Wind River Systems, Inc. *//*modification history--------------------01e,22sep92,rrr added support for c++01d,27aug92,ccc added tyCo function prototypes.01c,16jun92,jwt passed through the ansification filter -changed copyright notice01b,25jan92,ccc added Timer and Serial definitions.01a,20jan92,jwt created Interrupt Request Controller (IRC) definitions.*//*This file contains constants for the Fujitsu mb86940 companion chip.The constants SPARCLITE_CCS_OFFSET and SPARCLITE_CCS_BASE must defined whenincluding this header file.*/#ifndef __INCmb86940h#define __INCmb86940h#ifdef __cplusplusextern "C" {#endif#define SLCCS_ADDR(reg) (SPARCLITE_CCS_BASE + (reg * SPARCLITE_CCS_OFFSET))/* SPARClite Companion Chip (MB86940) Interrupt Request Controller (IRC) */#define IRC_TRIGGER0_ADDR SLCCS_ADDR (0x00) /* Trigger Mode 0 */#define IRC_TRIGGER1_ADDR SLCCS_ADDR (0x01) /* Trigger Mode 1 */#define IRC_REQ_SENSE_ADDR SLCCS_ADDR (0x02) /* Request Sense */#define IRC_REQ_CLEAR_ADDR SLCCS_ADDR (0x03) /* Request Clear */#define IRC_MASK_ADDR SLCCS_ADDR (0x04) /* Interrupt Masks */#define IRC_REQUEST_LEVEL_ADDR SLCCS_ADDR (0x05) /* IRL Latch / Clear *//* SPARClite Companion Chip (MB86940) Serial Data Transmitter and Receiver */#define SDTR0_DATA_ADDR SLCCS_ADDR (0x08)#define SDTR0_CSR_ADDR SLCCS_ADDR (0x09)#define SDTR1_DATA_ADDR SLCCS_ADDR (0x0c)#define SDTR1_CSR_ADDR SLCCS_ADDR (0x0d)/* SPARClite Companion Chip (MB86940) Timers */#define TIMER0_PRESCALE_ADDR SLCCS_ADDR (0x10)#define TIMER0_CONTROL_ADDR SLCCS_ADDR (0x11)#define TIMER0_RELOAD_ADDR SLCCS_ADDR (0x12)#define TIMER0_COUNT_ADDR SLCCS_ADDR (0x13)#define TIMER1_PRESCALE_ADDR SLCCS_ADDR (0x14)#define TIMER1_CONTROL_ADDR SLCCS_ADDR (0x15)#define TIMER1_RELOAD_ADDR SLCCS_ADDR (0x16)#define TIMER1_COUNT_ADDR SLCCS_ADDR (0x17)#define TIMER2_CONTROL_ADDR SLCCS_ADDR (0x19)#define TIMER2_RELOAD_ADDR SLCCS_ADDR (0x1a)#define TIMER2_COUNT_ADDR SLCCS_ADDR (0x1b)#define TIMER3_CONTROL_ADDR SLCCS_ADDR (0x1d)#define TIMER3_RELOAD_ADDR SLCCS_ADDR (0x1e)#define TIMER3_COUNT_ADDR SLCCS_ADDR (0x1f)/* Trigger Mode Register Masks */#define IRC_TRIGGER_HIGH 0 /* Active HIGH Trigger */#define IRC_TRIGGER_LOW 1 /* Active LOW Trigger */#define IRC_TRIGGER_RISING 2 /* Rising Edge Trigger */#define IRC_TRIGGER_FALLING 3 /* Falling Edge Trigger */#define IRC_TRIGGER_CH15_MASK 0xC000 /* Interrupt Level 15 */#define IRC_TRIGGER_CH14_MASK 0x3000 /* Interrupt Level 14 */#define IRC_TRIGGER_CH13_MASK 0x0C00 /* Interrupt Level 13 */#define IRC_TRIGGER_CH12_MASK 0x0300 /* Interrupt Level 12 */#define IRC_TRIGGER_CH11_MASK 0x00C0 /* Interrupt Level 11 */#define IRC_TRIGGER_CH10_MASK 0x0030 /* Interrupt Level 10 */#define IRC_TRIGGER_CH9_MASK 0x000C /* Interrupt Level 9 */#define IRC_TRIGGER_CH8_MASK 0x0003 /* Interrupt Level 8 */#define IRC_TRIGGER_CH7_MASK 0xC000 /* Interrupt Level 7 */#define IRC_TRIGGER_CH6_MASK 0x3000 /* Interrupt Level 6 */#define IRC_TRIGGER_CH5_MASK 0x0C00 /* Interrupt Level 5 */#define IRC_TRIGGER_CH4_MASK 0x0300 /* Interrupt Level 4 */#define IRC_TRIGGER_CH3_MASK 0x00C0 /* Interrupt Level 3 */#define IRC_TRIGGER_CH2_MASK 0x0030 /* Interrupt Level 2 */#define IRC_TRIGGER_CH1_MASK 0x000C /* Interrupt Level 1 *//* Request Sense / Clear Level Masks */#define IRC_REQUEST_LEVEL_15 0x8000 /* Interrupt Level 15 */#define IRC_REQUEST_LEVEL_14 0x4000 /* Interrupt Level 14 */#define IRC_REQUEST_LEVEL_13 0x2000 /* Interrupt Level 13 */#define IRC_REQUEST_LEVEL_12 0x1000 /* Interrupt Level 12 */#define IRC_REQUEST_LEVEL_11 0x0800 /* Interrupt Level 11 */#define IRC_REQUEST_LEVEL_10 0x0400 /* Interrupt Level 10 */#define IRC_REQUEST_LEVEL_9 0x0200 /* Interrupt Level 9 */#define IRC_REQUEST_LEVEL_8 0x0100 /* Interrupt Level 8 */#define IRC_REQUEST_LEVEL_7 0x0080 /* Interrupt Level 7 */#define IRC_REQUEST_LEVEL_6 0x0040 /* Interrupt Level 6 */#define IRC_REQUEST_LEVEL_5 0x0020 /* Interrupt Level 5 */#define IRC_REQUEST_LEVEL_4 0x0010 /* Interrupt Level 4 */#define IRC_REQUEST_LEVEL_3 0x0008 /* Interrupt Level 3 */#define IRC_REQUEST_LEVEL_2 0x0004 /* Interrupt Level 2 */#define IRC_REQUEST_LEVEL_1 0x0002 /* Interrupt Level 1 */#define IRC_REQUEST_LEVEL 0x0001 /* Interrupt Level Mask *//* IRL Latch / IRL Clear Register */#define IRC_LATCH_CLEAR_BIT 0x0010 /* Latch Clear Bit */#define IRC_LATCH_CLEAR_LEVEL 0x000F /* Interrupt Level Mask *//* Miscellaneous Interrupt Definitions */#define TIMER1_IACK_ADDR TIMER1_COUNT_ADDR#define TIMER2_IACK_ADDR TIMER2_COUNT_ADDR/* Timer bit definitions */#define TIMER_PRESCALE_INTERNAL 0x0000 /* Internal Clock is Used */#define TIMER_PRESCALE_EXTERNAL 0x8000 /* External Clock is Used */#define TIMER_PRESCALE_SELECT0 0x0000 /* First Output */#define TIMER_PRESCALE_SELECT1 0x0100 /* Second Output */#define TIMER_PRESCALE_SELECT2 0x0200 /* Third Output */#define TIMER_PRESCALE_SELECT3 0x0300 /* Fourth Output */#define TIMER_PRESCALE_SELECT4 0x0400 /* Fifth Output */#define TIMER_PRESCALE_SELECT5 0x0500 /* Sixth Output */#define TIMER_PRESCALE_SELECT6 0x0600 /* Seventh Output */#define TIMER_PRESCALE_SELECT7 0x0700 /* Eighth Output */#define TIMER_CONT_OUT_LOW 0x0000 /* Out pin LOW */#define TIMER_CONT_OUT_HIGH 0x8000 /* Out pin HIGH */#define TIMER_CONT_IN 0x4000 /* In pin mask */#define TIMER_CONT_COUNT_EN 0x0800 /* Enable Count */#define TIMER_CONT_INTERNAL 0x0000 /* Internal Clock */#define TIMER_CONT_EXTERNAL 0x0200 /* External Clock */#define TIMER_CONT_PRESCALE 0x0400 /* Prescaler Output Clock */#define TIMER_CONT_INHIBIT 0x0600 /* Inhibit */#define TIMER_CONT_OUT_SAME 0x0000 /* Out pin remains same */#define TIMER_CONT_OUT_SET 0x0080 /* Out pin set w/mode set */#define TIMER_CONT_OUT_RESET 0x0100 /* Out pin reset w/mode set */#define TIMER_CONT_OUT_INHIBIT 0x0180 /* Inhibit Out pin */#define TIMER_CONT_OUT_NORMAL 0x0000 /* Out noninverted */#define TIMER_CONT_OUT_INVERT 0x0040 /* Out inverted */#define TIMER_CONT_MODE0 0x0000 /* Mode0:Periodic int mode */#define TIMER_CONT_MODE1 0x0008 /* Mode1:Time-out int mode */#define TIMER_CONT_MODE2 0x0010 /* Mode2:Sqr wave gen mode */#define TIMER_CONT_MODE3 0x0018 /* Mode3:CPU WD/One-shot */#define TIMER_CONT_MODE4 0x0020 /* Mode4:Ext Dev WD/One-shot */#define TIMER_CONT_IN_LOW 0x0000 /* IN pin: Low Level */#define TIMER_CONT_IN_HIGH 0x0001 /* IN pin: High Level */#define TIMER_CONT_IN_RISING 0x0002 /* IN pin: Rising Edge */#define TIMER_CONT_IN_FALLING 0x0003 /* IN pin: Falling Edge */#define TIMER_CONT_IN_BOTH 0x0004 /* IN pin: Both Edges *//* SERIAL DATA TRANSMITTER and RECEIVER bit definitions *//* Mode Register - Asynchronous mode */#define FCC_SDTR_1_BIT 0x40 /* 1 stop bit */#define FCC_SDTR_1_5BITS 0x80 /* 1.5 stop bits */#define FCC_SDTR_2_BITS 0xc0 /* 2 stop bits */#define FCC_SDTR_ODD 0x00 /* Odd parity */#define FCC_SDTR_EVEN 0x20 /* Even parity */#define FCC_SDTR_NOPARITY 0x00 /* Disable Parity */#define FCC_SDTR_PARITY 0x10 /* Enable Parity */#define FCC_SDTR_5BITS 0x00 /* 5 data bits */#define FCC_SDTR_6BITS 0x04 /* 6 data bits */#define FCC_SDTR_7BITS 0x08 /* 7 data bits */#define FCC_SDTR_8BITS 0x0c /* 8 data bits */#define FCC_SDTR_SYNC 0x00 /* Synchronous mode */#define FCC_SDTR_1XCLK 0x01 /* Trans/Rec Clock x1 */#define FCC_SDTR_1_16XCLK 0x02 /* Trans/Rec Clock x1/16 */#define FCC_SDTR_1_64XCLK 0x03 /* Trans/Rec Clock x1/64 *//* Command Register */#define FCC_SDTR_EHM 0x80 /* Executes enter hunt mode */#define FCC_SDTR_RESET 0x40 /* Executes reset */#define FCC_SDTR_RTS_HIGH 0x00 /* RTS output High level */#define FCC_SDTR_RTS_LOW 0x20 /* RTS output Low level */#define FCC_SDTR_EFR 0x10 /* Resets all error flags */#define FCC_SDTR_BREAK 0x08 /* TRNDT pin outputs Low */#define FCC_SDTR_REC_DISABLE 0x00 /* Receive disable */#define FCC_SDTR_REC_ENABLE 0x04 /* Receive enable */#define FCC_SDTR_DTR_HIGH 0x00 /* DTR output High level */#define FCC_SDTR_DTR_LOW 0x02 /* DTR output Low level */#define FCC_SDTR_TRN_DISABLE 0x00 /* Transmit disabled */#define FCC_SDTR_TRN_ENABLE 0x01 /* Transmit enabled */#define FCC_TX_START FCC_SDTR_RTS_LOW | \ FCC_SDTR_EFR | \ FCC_SDTR_REC_ENABLE | \ FCC_SDTR_DTR_LOW | \ FCC_SDTR_TRN_ENABLE/* Status Register */#define FCC_SDTR_STAT_DSR 0x80 /* DSR status mask */#define FCC_SDTR_STAT_SYBRK 0x40 /* Syc ch(sync)/Break(async) */#define FCC_SDTR_STAT_FERR 0x20 /* Framing error mask */#define FCC_SDTR_STAT_ORUN 0x10 /* Overrun error mask */#define FCC_SDTR_STAT_PERR 0x08 /* Parity error mask */#define FCC_SDTR_STAT_TEMP 0x04 /* Trans buff/shft reg stat */#define FCC_SDTR_STAT_RRDY 0x02 /* Receive buffer status */#define FCC_SDTR_STAT_TRDY 0x01 /* Transmit buffer status */#ifndef _ASMLANGUAGE#include "tyLib.h"/* serial device descriptor */typedef struct /* TY_CO_DEV */ { TY_DEV tyDev; BOOL created; /* TRUE if device has already been created */ volatile int *cp; /* control port I/O address */ volatile int *dp; /* data port I/O address */ char numChannels; /* number of channels to support */ } TY_CO_DEV;/* function declarations */#if defined(__STDC__) || defined(__cplusplus)IMPORT void tyCoIntTx (int channel);IMPORT void tyCoIntRx (int channel);IMPORT UINT sysAsiGet (void * address);IMPORT void sysAsiSet (void * address, UINT word);IMPORT UINT sys940AsiGeth (void * address);IMPORT void sys940AsiSeth (void * address, UINT word);IMPORT STATUS sysBaudSet (int baudRate);#else /* __STDC__ */IMPORT void tyCoIntTx ();IMPORT void tyCoIntRx ();IMPORT UINT sysAsiGet ();IMPORT void sysAsiSet ();IMPORT UINT sys940AsiGeth ();IMPORT void sys940AsiSeth ();IMPORT STATUS sysBaudSet ();#endif /* __STDC__ */#endif /* _ASMLANGUAGE */#ifdef __cplusplus}#endif#endif /* __INCmb86940h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -