⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gba.h

📁 avr上的RTOS
💻 H
字号:
#ifndef _ARCH_GBA_H_#define _ARCH_GBA_H_/* * Copyright (C) 2005 by egnite Software GmbH. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. Neither the name of the copyright holders nor the names of *    contributors may be used to endorse or promote products derived *    from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY EGNITE SOFTWARE GMBH AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL EGNITE * SOFTWARE GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * For additional information see http://www.ethernut.de/ *//* * $Log: gba.h,v $ * Revision 1.1  2005/10/24 10:31:13  haraldkipp * Moved from parent directory. * * Revision 1.2  2005/04/05 17:50:47  haraldkipp * Use register names in gba.h. * * Revision 1.1  2004/11/24 15:26:34  haraldkipp * Will fill this later * *//*! * \brief Internal work RAM */#define WRAM_START      0x03000000      /* Start of internal work RAM */#define WRAM_END        (WRAM_START + 0x8000)   /* End of internal work RAM */#define INT_VECTOR      (WRAM_END - 4)  /* Interrupt vector address. *//*! * \brief Display control */#define REG_DISPCNT     0x04000000      /* Display control */#define REG_STAT        0x04000004      /* Display status */#define REG_VCOUNT      0x04000006      /* Vertical counter */#define REG_BG0CNT      0x04000008      /* BG 0 control */#define REG_BG1CNT      0x0400000a      /* BG 1 control */#define REG_BG2CNT      0x0400000c      /* BG 2 control */#define REG_BG3CNT      0x0400000e      /* BG 3 control */#define REG_BG0HOFS     0x04000010      /* BG 0 horizontal offset */#define REG_BG0VOFS     0x04000012      /* BG 0 vertical offset */#define REG_BG1HOFS     0x04000014      /* BG 1 horizontal offset */#define REG_BG1VOFS     0x04000016      /* BG 1 vertical offset */#define REG_BG2HOFS     0x04000018      /* BG 2 horizontal offset */#define REG_BG2VOFS     0x0400001a      /* BG 2 vertical offset */#define REG_BG3HOFS     0x0400001c      /* BG 3 horizontal offset */#define REG_BG3VOFS     0x0400001e      /* BG 3 vertical offset */#define REG_BG2PA       0x04000020      /* BG 2 Rotation/scaling parameter A */#define REG_BG2PB       0x04000022      /* BG 2 Rotation/scaling parameter B */#define REG_BG2PC       0x04000024      /* BG 2 Rotation/scaling parameter C */#define REG_BG2PD       0x04000026      /* BG 2 Rotation/scaling parameter D */#define REG_BG2X        0x04000028      /* BG 2 Reference point X coordinate */#define REG_BG2Y        0x0400002c      /* BG 2 Reference point Y coordinate */#define REG_BG3PA       0x04000030      /* BG 3 Rotation/scaling parameter A */#define REG_BG3PB       0x04000032      /* BG 3 Rotation/scaling parameter B */#define REG_BG3PC       0x04000034      /* BG 3 Rotation/scaling parameter C */#define REG_BG3PD       0x04000036      /* BG 3 Rotation/scaling parameter D */#define REG_BG3X        0x04000038      /* BG 3 Reference point X coordinate */#define REG_BG3Y        0x0400003c      /* BG 3 Reference point Y coordinate */#define REG_WINCNT      0x04000040      /* Window control */#define REG_WININ       0x04000048      /* Inside window control */#define REG_WINOUT      0x0400004a      /* Outside window control */#define REG_MOSAIC      0x0400004c      /* Mosaic size */#define REG_BLDCNT      0x04000050      /* Blending control */#define REG_BLDALPHA    0x04000052      /* Alpha blending */#define REG_BLDY        0x04000054      /* Brightness fading *//*! * \brief Sound control */#define REG_SOUND1CNT   0x04000060      /* Channel 1 control */#define REG_SOUND2CNT   0x04000068      /* Channel 2 control */#define REG_SOUND3CNT   0x04000070      /* Channel 3 control */#define REG_SOUND4CNT   0x04000078      /* Channel 4 control */#define REG_SOUNDCNT    0x04000080      /* Sound control */#define REG_SOUNDBIAS   0x04000088      /* Sound PWM control */#define REG_WAVE_RAM0   0x04000090      /* Channel 3 wave pattern RAM bank 0 */#define REG_WAVE_RAM1   0x04000094      /* Channel 3 wave pattern RAM bank 1 */#define REG_WAVE_RAM2   0x04000098      /* Channel 3 wave pattern RAM bank 2 */#define REG_WAVE_RAM3   0x0400009c      /* Channel 3 wave pattern RAM bank 3 */#define REG_FIFO_A      0x040000a0      /* Channel A FIFO */#define REG_FIFO_B      0x040000a4      /* Channel B FIFO *//*! * \brief DMA control */#define REG_DMA0SAD     0x040000b0      /* DMA 0 source address */#define REG_DMA0DAD     0x040000b4      /* DMA 0 destination address */#define REG_DMA0CNT     0x040000b8      /* DMA 0 word count */#define REG_DMA1SAD     0x040000bc      /* DMA 1 source address */#define REG_DMA1DAD     0x040000c0      /* DMA 1 destination address */#define REG_DMA1CNT     0x040000c4      /* DMA 1 word count */#define REG_DMA2SAD     0x040000c8      /* DMA 2 source address */#define REG_DMA2DAD     0x040000cc      /* DMA 2 destination address */#define REG_DMA2CNT     0x040000d0      /* DMA 2 word count */#define REG_DMA3SAD     0x040000d4      /* DMA 3 source address */#define REG_DMA3DAD     0x040000d8      /* DMA 3 destination address */#define REG_DMA3CNT     0x040000dc      /* DMA 3 word count *//*! * \brief Timer control */#define REG_TMR0CNT     0x04000100      /* Timer 0 control */#define REG_TMR1CNT     0x04000104      /* Timer 1 control */#define REG_TMR2CNT     0x04000108      /* Timer 2 control */#define REG_TMR3CNT     0x0400010c      /* Timer 3 control *//*! * \brief Serial communication control */#define REG_SIODATA32   0x04000120      /* 32-bit serial data */#define REG_SIOCNT      0x04000128      /* Serial communication control */#define REG_SIODATA8    0x0400012a      /* 8-bit serial data *//*! * \brief Keyboard control */#define REG_KEYINPUT    0x04000130      /* Key status */#define REG_KEYCNT      0x04000132      /* Key control *//*! * \brief General I/O control */#define REG_RCNT        0x04000134      /* General I/O control *//*! * \brief JOY Bus control */#define REG_JOYCNT      0x04000140      /* JOY Bus control */#define REG_JOYSTAT     0x04000158      /* JOY Bus status */#define REG_JOY_RECV    0x04000150      /* JOY Bus receive data */#define REG_JOY_TRANS   0x04000154      /* JOY Bus transmit data *//*! * \brief Interrupt control */#define REG_IE          0x04000200      /* Interrupt enable */#define REG_IF          0x04000202      /* Interrupt flags */#define REG_WAITCNT     0x04000204      /* Game Pak wait state control */#define REG_IME         0x04000208      /* Interrupt master enable *//*! * \brief Interrupt flags. */#define INT_VBLANK      0x0001      /* V blank interrupt flag. */#define INT_HBLANK      0x0002      /* H blank interrupt flag. */#define INT_VCOUNT      0x0004      /* V counter interrupt flag. */#define INT_TMR0        0x0008      /* Timer 0 interrupt flag. */#define INT_TMR1        0x0010      /* Timer 1 interrupt flag. */#define INT_TMR2        0x0020      /* Timer 2 interrupt flag. */#define INT_TMR3        0x0040      /* Timer 3 interrupt flag. */#define INT_SIO         0x0080      /* Serial communication interrupt flag. */#define INT_DMA0        0x0100      /* DMA 0 interrupt flag. */#define INT_DMA1        0x0200      /* DMA 1 interrupt flag. */#define INT_DMA2        0x0400      /* DMA 2 interrupt flag. */#define INT_DMA3        0x0800      /* DMA 3 interrupt flag. */#define INT_KEYPAD      0x1000      /* Key Pad interrupt flag. */#define INT_GAMEPAK     0x2000      /* Game Pak interrupt flag. *//*! * \brief Power management control */#define REG_HALTCNT     0x04000300      /* Power down control */#define outw(_reg, _val)    (*((volatile unsigned short *)(_reg)) = (_val))#define outdw(_reg, _val)   (*((volatile unsigned long *)(_reg)) = (_val))#define inw(_reg)           (*((volatile unsigned short *)(_reg)))#define indw(_reg)          (*((volatile unsigned long *)(_reg)))#define GBAKEY_A        0x0001#define GBAKEY_B        0x0002#define GBAKEY_SELECT   0x0003#define GBAKEY_START    0x0008#define GBAKEY_RIGHT    0x0010#define GBAKEY_LEFT     0x0020#define GBAKEY_UP       0x0040#define GBAKEY_DOWN     0x0080#define GBAKEY_R        0x0100#define GBAKEY_L        0x0200/*! * \brief Timer control. */#define TMR_PRE_64      0x00010000  /* Prescaler 64 */#define TMR_PRE_256     0x00020000  /* Prescaler 256 */#define TMR_PRE_1024    0x00030000  /* Prescaler 1024 */#define TMR_IRQ_ENA     0x00400000  /* Interrupt request enable */#define TMR_ENA         0x00800000  /* Timer enable. *//*! * \brief SIO control. */#define SIO_BAUD_9600     0x0000#define SIO_BAUD_38400    0x0001#define SIO_BAUD_57600    0x0002#define SIO_BAUD_115200   0x0003#define SIO_CTS_ENA       0x0004#define SIO_PARITY_ODD    0x0008#define SIO_TX_FULL       0x0010#define SIO_RX_EMPTY      0x0020#define SIO_ERROR         0x0040#define SIO_DATA_8BIT     0x0080#define SIO_FIFO_ENA      0x0100#define SIO_PARITY_ENA    0x0200#define SIO_SEND_ENA      0x0400#define SIO_RECV_ENA      0x0800#define SIO_MODE_32BIT    0x1000#define SIO_MODE_MULTI    0x2000#define SIO_MODE_UART     0x3000#define SIO_IRQ_ENA       0x4000#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -