?? custom.c
字號:
/********************************************************* * WARNING: file is automatically generated do not modify * * File: custom.c (generated by fab_custom.c) * * Abstract: This code that simulates the dragonball's * intelligent peripheral modules and system * interface logic. * * WARNING: file is automatically generated do not modify *********************************************************/#include <ctype.h>#include <assert.h>#include <stdio.h>#include <time.h>#include <sys/types.h>#include <sys/time.h>#include <unistd.h>#include "config.h"#include "sysdeps.h"#include "shared.h"#include "memory.h"#include "custom.h"#include "newcpu.h"extern int sram_protect;/* dragonball register locations */#define SCR 0xf000#define GRPBASEA 0xf100#define GRPBASEC 0xf104#define GRPMASKA 0xf108#define GRPMASKC 0xf10c#define CSA0 0xf110#define CSA1 0xf114#define CSA2 0xf118#define CSA3 0xf11c#define CSC0 0xf130#define CSC1 0xf134#define CSC2 0xf138#define CSC3 0xf13c#define PLLCR 0xf200#define PLLFSR 0xf202#define PCTLR 0xf207#define IVR 0xf300#define ICR 0xf302#define IMR 0xf304#define IWR 0xf308#define ISR 0xf30c#define IPR 0xf310#define PCDIR 0xf410#define PCDATA 0xf411#define PCSEL 0xf413#define PDDIR 0xf418#define PDDATA 0xf419#define PDPUEN 0xf41a#define PDPOL 0xf41c#define PDIRQEN 0xf41d#define PDIRQEDGE 0xf41f#define PEDIR 0xf420#define PEDATA 0xf421#define PEPUEN 0xf422#define PESEL 0xf423#define PFDIR 0xf428#define PFDATA 0xf429#define PFPUEN 0xf42a#define PFSEL 0xf42b#define PGDIR 0xf430#define PGDATA 0xf431#define PGPUEN 0xf432#define PGSEL 0xf433#define PJDIR 0xf438#define PJDATA 0xf439#define PJSEL 0xf43b#define PKDIR 0xf440#define PKDATA 0xf441#define PKPUEN 0xf442#define PKSEL 0xf443#define PMDIR 0xf448#define PMDATA 0xf449#define PMPUEN 0xf44a#define PMSEL 0xf44b#define PWMC 0xf500#define PWMP 0xf502#define PWMW 0xf504#define TCTL1 0xf600#define TPRER1 0xf602#define TCMP1 0xf604#define TCN1 0xf608#define TSTAT1 0xf60a#define TCTL2 0xf60c#define TPRER2 0xf60e#define TCMP2 0xf610#define TCN2 0xf614#define TSTAT2 0xf616#define WCSR 0xf618#define WCN 0xf61c#define SPIMDATA 0xf800#define SPIMCONT 0xf802#define USTCNT 0xf900#define UBAUD 0xf902#define URX 0xf904#define UTX 0xf906#define UMISC 0xf908#define LSSA 0xfa00#define LVPW 0xfa05#define LXMAX 0xfa08#define LYMAX 0xfa0a#define LCXP 0xfa18#define LCYP 0xfa1a#define LCWCH 0xfa1c#define LBLKC 0xfa1f#define LPICF 0xfa20#define LPXCD 0xfa25#define LCKCON 0xfa27#define LLBAR 0xfa29#define LOTCR 0xfa2b#define LPOSR 0xfa2d#define LFRCM 0xfa31#define LGPMR 0xfa32#define RTCHMS 0xfb00#define RTCALARM 0xfb04#define RTCCTL 0xfb0c#define RTCISR 0xfb0e#define RTCIENR 0xfb10/* * Hmmm... We need to differentiate the debugger using the * UART from other programs (PPP, etc.) using it. We check * the global variable dbgInDebugger (at address 0x110) to * see if we're in the debugger. * * - Ian */#define IN_DEBUGGER (get_byte(0x110))#define DEBUGGER_WRITING (CustShptr->gdb_writefd >= 0 && IN_DEBUGGER)#define DEBUGGER_READING (CustShptr->gdb_writefd >= 0 && IN_DEBUGGER)/* dragonball register definitions */static union { UBYTE x; struct { unsigned WDTH8 :1; unsigned RSVD :1; unsigned DMAP :1; unsigned SO :1; unsigned BETEN :1; unsigned PRV :1; unsigned WPV :1; unsigned BETO :1; } anon;} db_SCR;static union { UWORD x; struct { unsigned V :1; unsigned :3; unsigned GMA :12; } anon;} db_GRPBASEA, db_GRPBASEC;static union { UWORD x; struct { unsigned :4; unsigned GMA :12; } anon;} db_GRPMASKA, db_GRPMASKC;static union { ULONG x; struct { unsigned WAIT :3; unsigned RO :1; unsigned :4; unsigned AM :8; unsigned BSW :1; unsigned :7; unsigned AC :8; } anon;} db_CSA0, db_CSA1, db_CSA2, db_CSA3, db_CSC0, db_CSC1, db_CSC2, db_CSC3;static union { UWORD x; struct { unsigned :3; unsigned DISPLL :1; unsigned CLKEN :1; unsigned :3; unsigned SYSCLKSEL :3; unsigned PIXCLKSEL :3; unsigned :2; } anon;} db_PLLCR;static union { UWORD x; struct { unsigned PC :8; unsigned QC :4; unsigned :2; unsigned PROT :1; unsigned CLK32 :1; } anon;} db_PLLFSR;static union { UBYTE x; struct { unsigned WIDTH :5; unsigned :1; unsigned STOP :1; unsigned PCEN :1; } anon;} db_PCTLR;static union { UBYTE x; struct { unsigned LEVEL :3; unsigned VECTOR :5; } anon;} db_IVR;static union { UWORD x; struct { unsigned :8; unsigned POL6 :1; unsigned POL3 :1; unsigned POL2 :1; unsigned POL1 :1; unsigned ET6 :1; unsigned ET3 :1; unsigned ET2 :1; unsigned ET1 :1; } anon;} db_ICR;static union { ULONG x; struct { unsigned SPIM :1; unsigned TMR2 :1; unsigned UART :1; unsigned WDT :1; unsigned RTC :1; unsigned LCDC :1; unsigned KB :1; unsigned PWM :1; unsigned INT0 :1; unsigned INT1 :1; unsigned INT2 :1; unsigned INT3 :1; unsigned INT4 :1; unsigned INT5 :1; unsigned INT6 :1; unsigned INT7 :1; unsigned IRQ1 :1; unsigned IRQ2 :1; unsigned IRQ3 :1; unsigned IRQ6 :1; unsigned PEN :1; unsigned SPIS :1; unsigned TMR1 :1; unsigned IRQ7 :1; unsigned :8; } anon;} db_IMR, db_IWR, db_ISR, db_IPR;static union { UBYTE x; struct { unsigned MOCLK :1; unsigned UDS :1; unsigned LDS :1; unsigned :1; unsigned NMI :1; unsigned DTACK :1; unsigned WE :1; unsigned :1; } anon;} db_PCDIR, db_PCDATA, db_PCSEL;static union { UBYTE x; struct { unsigned BB0 :1; unsigned B1 :1; unsigned B2 :1; unsigned B3 :1; unsigned B4 :1; unsigned B5 :1; unsigned B6 :1; unsigned B7 :1; } anon;} db_PDDIR, db_PDDATA, db_PDPUEN, db_PDPOL, db_PDIRQEN, db_PDIRQEDGE;static union { UBYTE x; struct { unsigned A :8; } anon;} db_PEDIR, db_PEDATA, db_PEPUEN, db_PESEL, db_PFDIR, db_PFDATA, db_PFPUEN, db_PFSEL;static union { UBYTE x; struct { unsigned UART_TXD :1; unsigned UART_RXD :1; unsigned PWMOUT :1; unsigned TOUT2 :1; unsigned TIN2 :1; unsigned TOUT1 :1; unsigned TIN1 :1; unsigned RTCOUT :1; } anon;} db_PGDIR, db_PGDATA, db_PGPUEN, db_PGSEL;static union { UBYTE x; struct { unsigned A :8; } anon;} db_PJDIR, db_PJDATA, db_PJSEL;static union { UBYTE x; struct { unsigned SPIM_TXD :1; unsigned SPIM_RXD :1; unsigned SPIM_CLKO :1; unsigned SPIS_EN :1; unsigned SPIS_RXD :1; unsigned SPIS_CLKI :1; unsigned PCMCIA_CE2 :1; unsigned PCMCIA_CE1 :1; } anon;} db_PKDIR, db_PKDATA, db_PKPUEN, db_PKSEL;static union { UBYTE x; struct { unsigned CTS :1; unsigned RTS :1; unsigned IRQ6 :1; unsigned IRQ3 :1; unsigned IRQ2 :1; unsigned IRQ1 :1; unsigned PEN_IRQ :1; unsigned UART_GPIO :1; } anon;} db_PMDIR, db_PMDATA, db_PMPUEN, db_PMSEL;static union { UWORD x; struct { unsigned CLKSEL :3; unsigned :1; unsigned PWMEN :1; unsigned POL :1; unsigned :1; unsigned PIN :1; unsigned LOAD :1; unsigned :5; unsigned IRQEN :1; unsigned PWMIRQ :1; } anon;} db_PWMC;static union { UWORD x; struct { unsigned PERIOD :16; } anon;} db_PWMP;static union { UWORD x; struct { unsigned WIDTH :16; } anon;} db_PWMW;static union { UWORD x; struct { unsigned TEN :1; unsigned CLKSOURCE :3; unsigned IRQEN :1; unsigned OM :1; unsigned CAPTURE_EDGE :2; unsigned FRR :1; unsigned :7; } anon;} db_TCTL1;static union { UWORD x; struct { unsigned PRESCALE :8; unsigned :8; } anon;} db_TPRER1;static union { UWORD x; struct { unsigned COMPARE :16; } anon;} db_TCMP1;static union { UWORD x; struct { unsigned COUNT :16; } anon;} db_TCN1;static union { UWORD x; struct { unsigned COMP :1; unsigned CAPT :1; unsigned :14; } anon;} db_TSTAT1;static union { UWORD x; struct { unsigned TEN :1; unsigned CLKSOURCE :3; unsigned IRQEN :1; unsigned OM :1; unsigned CAPTURE_EDGE :2; unsigned FRR :1; unsigned :7; } anon;} db_TCTL2;static union { UWORD x; struct { unsigned PRESCALE :8; unsigned :8; } anon;} db_TPRER2;static union { UWORD x; struct { unsigned COMPARE :16; } anon;} db_TCMP2;static union { UWORD x; struct { unsigned COUNT :16; } anon;} db_TCN2;static union { UWORD x; struct { unsigned COMP :1; unsigned CAPT :1; unsigned :14; } anon;} db_TSTAT2;static union { UWORD x; struct { unsigned WDEN :1; unsigned FI :1; unsigned LOCK :1; unsigned WDRST :1; unsigned :12; } anon;} db_WCSR;static union { UWORD x; struct { unsigned COUNT :16; } anon;} db_WCN;static union { UWORD x; struct { unsigned DATA :16; } anon;} db_SPIMDATA;static union { UWORD x; struct { unsigned BITCOUNT :4; unsigned POL :1; unsigned PHA :1; unsigned IRQEN :1; unsigned SPIMIRQ :1; unsigned XCH :1; unsigned SPMEN :1; unsigned :3; unsigned DATARATE :3; } anon;} db_SPIMCONT;static union { UWORD x; struct { unsigned TX_AVAIL_ENABLE :1; unsigned TX_HALF_ENABLE :1; unsigned TX_EMPTY_ENABLE :1; unsigned RX_READY_ENABLE :1; unsigned RX_HALF_ENABLE :1; unsigned RX_FULL_ENABLE :1; unsigned CTS_DELTA_ENABLE :1; unsigned GPIO_DELTA_ENABLE :1; unsigned BITS_8 :1; unsigned STOP_BITS :1; unsigned ODD_EVEN :1; unsigned PARITY_ENABLE :1; unsigned RX_CLK_CONT :1; unsigned TX_ENABLE :1; unsigned RX_ENABLE :1; unsigned UART_ENABLE :1; } anon;} db_USTCNT;static union { UWORD x; struct { unsigned PRESCALER :6; unsigned :2; unsigned DIVIDE :3; unsigned BAUD_SRC :1; unsigned GPIO_SRC :1; unsigned GPIO_DIR :1; unsigned GPIO :1; unsigned GPIO_DELTA :1; } anon;} db_UBAUD;static union { UWORD x; struct { unsigned DATA :8; unsigned PARITY_ERROR :1; unsigned BREAK :1; unsigned FRAME_ERROR :1; unsigned OVRUN :1; unsigned :1; unsigned DATA_READY :1; unsigned FIFO_HALF :1; unsigned FIFO_FULL :1; } anon;} db_URX;static union { UWORD x; struct { unsigned DATA :8; unsigned CTS_DELTA :1; unsigned CTS_STATUS :1; unsigned :1; unsigned IGNORE_CTS :1; unsigned SEND_BREAK :1; unsigned TX_AVAIL :1; unsigned FIFO_HALF :1; unsigned FIFO_EMPTY :1; } anon;} db_UTX;static union { UWORD x; struct { unsigned :2; unsigned TX_POL :1; unsigned RX_POL :1; unsigned IRDA_LOOP :1; unsigned IRDA_ENABLE :1; unsigned RTS :1; unsigned RTS_CONT :1; unsigned :4; unsigned LOOP :1; unsigned FORCE_PERR :1; unsigned CLK_SRC :1; unsigned :1; } anon;} db_UMISC;static union { ULONG x; struct { unsigned SSA :32; } anon;} db_LSSA;static union { UBYTE x; struct { unsigned VPW :8; } anon;} db_LVPW;static union { UWORD x; struct { unsigned XMAX :10; unsigned :6; } anon;} db_LXMAX;static union { UWORD x; struct { unsigned YMAX :10; unsigned :6; } anon;} db_LYMAX;static union { UWORD x; struct { unsigned CXP :10; unsigned :4; unsigned CC :2; } anon;} db_LCXP;static union { UWORD x; struct { unsigned CYP :10; unsigned :6; } anon;} db_LCYP;static union { UWORD x; struct { unsigned CH :5; unsigned :3; unsigned CW :5; unsigned :3; } anon;} db_LCWCH;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -