[PATCH] arm/gba: Remove
Aun-Ali Zaidi
admin at kodeit.net
Fri Dec 11 23:21:26 UTC 2015
updates #2449.
---
c/src/lib/libbsp/arm/acinclude.m4 | 2 -
c/src/lib/libbsp/arm/gba/Makefile.am | 70 --
c/src/lib/libbsp/arm/gba/README | 3 -
c/src/lib/libbsp/arm/gba/bsp_specs | 14 -
c/src/lib/libbsp/arm/gba/clock/clockdrv.c | 97 ---
c/src/lib/libbsp/arm/gba/configure.ac | 23 -
c/src/lib/libbsp/arm/gba/console/conio.c | 450 ----------
c/src/lib/libbsp/arm/gba/console/console.c | 257 ------
c/src/lib/libbsp/arm/gba/console/defaultfont.h | 602 --------------
c/src/lib/libbsp/arm/gba/include/arm_mode_bits.h | 46 --
c/src/lib/libbsp/arm/gba/include/asm_macros.h | 55 --
c/src/lib/libbsp/arm/gba/include/bsp.h | 61 --
c/src/lib/libbsp/arm/gba/include/conio.h | 101 ---
c/src/lib/libbsp/arm/gba/include/gba.h | 107 ---
c/src/lib/libbsp/arm/gba/include/gba_registers.h | 965 ----------------------
c/src/lib/libbsp/arm/gba/irq/irq.c | 71 --
c/src/lib/libbsp/arm/gba/irq/irq.h | 74 --
c/src/lib/libbsp/arm/gba/make/custom/gba.cfg | 24 -
c/src/lib/libbsp/arm/gba/preinstall.am | 99 ---
c/src/lib/libbsp/arm/gba/start/logo.S | 25 -
c/src/lib/libbsp/arm/gba/start/start.S | 396 ---------
c/src/lib/libbsp/arm/gba/startup/bspgetworkarea.c | 21 -
c/src/lib/libbsp/arm/gba/startup/bspreset.c | 14 -
c/src/lib/libbsp/arm/gba/startup/bspstart.c | 58 --
c/src/lib/libbsp/arm/gba/startup/linkcmds | 386 ---------
c/src/lib/libbsp/arm/gba/timer/timer.c | 134 ---
26 files changed, 4155 deletions(-)
delete mode 100644 c/src/lib/libbsp/arm/gba/Makefile.am
delete mode 100644 c/src/lib/libbsp/arm/gba/README
delete mode 100644 c/src/lib/libbsp/arm/gba/bsp_specs
delete mode 100644 c/src/lib/libbsp/arm/gba/clock/clockdrv.c
delete mode 100644 c/src/lib/libbsp/arm/gba/configure.ac
delete mode 100644 c/src/lib/libbsp/arm/gba/console/conio.c
delete mode 100644 c/src/lib/libbsp/arm/gba/console/console.c
delete mode 100644 c/src/lib/libbsp/arm/gba/console/defaultfont.h
delete mode 100644 c/src/lib/libbsp/arm/gba/include/arm_mode_bits.h
delete mode 100644 c/src/lib/libbsp/arm/gba/include/asm_macros.h
delete mode 100644 c/src/lib/libbsp/arm/gba/include/bsp.h
delete mode 100644 c/src/lib/libbsp/arm/gba/include/conio.h
delete mode 100644 c/src/lib/libbsp/arm/gba/include/gba.h
delete mode 100644 c/src/lib/libbsp/arm/gba/include/gba_registers.h
delete mode 100644 c/src/lib/libbsp/arm/gba/irq/irq.c
delete mode 100644 c/src/lib/libbsp/arm/gba/irq/irq.h
delete mode 100644 c/src/lib/libbsp/arm/gba/make/custom/gba.cfg
delete mode 100644 c/src/lib/libbsp/arm/gba/preinstall.am
delete mode 100644 c/src/lib/libbsp/arm/gba/start/logo.S
delete mode 100644 c/src/lib/libbsp/arm/gba/start/start.S
delete mode 100644 c/src/lib/libbsp/arm/gba/startup/bspgetworkarea.c
delete mode 100644 c/src/lib/libbsp/arm/gba/startup/bspreset.c
delete mode 100644 c/src/lib/libbsp/arm/gba/startup/bspstart.c
delete mode 100644 c/src/lib/libbsp/arm/gba/startup/linkcmds
delete mode 100644 c/src/lib/libbsp/arm/gba/timer/timer.c
diff --git a/c/src/lib/libbsp/arm/acinclude.m4 b/c/src/lib/libbsp/arm/acinclude.m4
index 607a3b6..3a70e0a 100644
--- a/c/src/lib/libbsp/arm/acinclude.m4
+++ b/c/src/lib/libbsp/arm/acinclude.m4
@@ -12,8 +12,6 @@ AC_DEFUN([RTEMS_CHECK_BSPDIR],
AC_CONFIG_SUBDIRS([csb337]);;
edb7312 )
AC_CONFIG_SUBDIRS([edb7312]);;
- gba )
- AC_CONFIG_SUBDIRS([gba]);;
gdbarmsim )
AC_CONFIG_SUBDIRS([gdbarmsim]);;
gp32 )
diff --git a/c/src/lib/libbsp/arm/gba/Makefile.am b/c/src/lib/libbsp/arm/gba/Makefile.am
deleted file mode 100644
index e2d69ce..0000000
--- a/c/src/lib/libbsp/arm/gba/Makefile.am
+++ /dev/null
@@ -1,70 +0,0 @@
-ACLOCAL_AMFLAGS = -I ../../../../aclocal
-
-include $(top_srcdir)/../../../../automake/compile.am
-
-include_bspdir = $(includedir)/bsp
-
-dist_project_lib_DATA = bsp_specs
-
-include_HEADERS = include/bsp.h
-include_HEADERS += include/arm_mode_bits.h
-include_HEADERS += include/asm_macros.h
-include_HEADERS += include/gba_registers.h
-include_HEADERS += include/conio.h
-include_HEADERS += ../../shared/include/tm27.h
-include_HEADERS += include/gba.h
-
-include_bsp_HEADERS =
-
-nodist_include_HEADERS = include/bspopts.h
-nodist_include_HEADERS += ../../shared/include/coverhd.h
-nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
-DISTCLEANFILES = include/bspopts.h
-noinst_PROGRAMS =
-
-noinst_LIBRARIES = libbspstart.a
-libbspstart_a_SOURCES = start/start.S
-project_lib_DATA = start.$(OBJEXT)
-
-dist_project_lib_DATA += startup/linkcmds
-
-noinst_LIBRARIES += libbsp.a
-libbsp_a_SOURCES =
-
-# startup
-libbsp_a_SOURCES += ../../shared/bsplibc.c ../../shared/bsppost.c \
- startup/bspgetworkarea.c \
- ../../shared/bsppredriverhook.c ../../shared/bspclean.c \
- startup/bspreset.c ../../shared/bootcard.c ../../shared/sbrk.c \
- ../../shared/gnatinstallhandler.c \
- startup/bspstart.c
-libbsp_a_SOURCES += ../../shared/cpucounterread.c
-libbsp_a_SOURCES += ../../shared/cpucounterdiff.c
-# clock
-libbsp_a_SOURCES += clock/clockdrv.c
-libbsp_a_SOURCES += ../../shared/clockdrv_shell.h
-# console
-libbsp_a_SOURCES += console/conio.c console/console.c \
- console/defaultfont.h
-# timer
-libbsp_a_SOURCES += timer/timer.c
-
-# irq
-include_bsp_HEADERS += ../../shared/include/irq-generic.h \
- ../../shared/include/irq-info.h \
- irq/irq.h
-libbsp_a_SOURCES += ../../shared/src/irq-default-handler.c
-libbsp_a_SOURCES += ../../shared/src/irq-generic.c
-libbsp_a_SOURCES += ../../shared/src/irq-info.c
-libbsp_a_SOURCES += ../../shared/src/irq-legacy.c
-libbsp_a_SOURCES += ../../shared/src/irq-server.c
-libbsp_a_SOURCES += ../../shared/src/irq-shell.c
-libbsp_a_SOURCES += irq/irq.c
-
-# Cache
-libbsp_a_SOURCES += ../../../libcpu/shared/src/cache_manager.c
-libbsp_a_SOURCES += ../../shared/include/cache_.h
-libbsp_a_CPPFLAGS = -I$(srcdir)/../../shared/include
-
-include $(srcdir)/preinstall.am
-include $(top_srcdir)/../../../../automake/local.am
diff --git a/c/src/lib/libbsp/arm/gba/README b/c/src/lib/libbsp/arm/gba/README
deleted file mode 100644
index 445f73e..0000000
--- a/c/src/lib/libbsp/arm/gba/README
+++ /dev/null
@@ -1,3 +0,0 @@
-This is the BSP for Nintendo's GBA and GBA SP. The RTEMS Wiki
-has more detailed information on this BSP.
-
diff --git a/c/src/lib/libbsp/arm/gba/bsp_specs b/c/src/lib/libbsp/arm/gba/bsp_specs
deleted file mode 100644
index 554ded6..0000000
--- a/c/src/lib/libbsp/arm/gba/bsp_specs
+++ /dev/null
@@ -1,14 +0,0 @@
-%rename endfile old_endfile
-%rename startfile old_startfile
-%rename link old_link
-
-*startfile:
-%{!qrtems: %(old_startfile)} \
-%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
-
-*link:
-%{!qrtems: %(old_link)} %{qrtems: -dc -dp -Bstatic -N}
-
-*endfile:
-%{!qrtems: %(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s }
-
diff --git a/c/src/lib/libbsp/arm/gba/clock/clockdrv.c b/c/src/lib/libbsp/arm/gba/clock/clockdrv.c
deleted file mode 100644
index ff17111..0000000
--- a/c/src/lib/libbsp/arm/gba/clock/clockdrv.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * @file clockdrv.c
- *
- * Game Boy Advance Clock driver.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <rtems.h>
-#include <bsp.h>
-#include <bsp/irq.h>
-#include <gba.h>
-#include <assert.h>
-
-void Clock_isr(void * arg);
-void Clock_driver_support_initialize_hardware(void);
-
-#define Clock_driver_support_at_tick()
-
-#define Clock_driver_support_install_isr( _new, _old ) \
- do { \
- rtems_status_code status = RTEMS_SUCCESSFUL; \
- status = rtems_interrupt_handler_install( \
- BSP_IRQ_TIMER3, \
- "Clock", \
- RTEMS_INTERRUPT_UNIQUE, \
- Clock_isr, \
- NULL \
- ); \
- assert(status == RTEMS_SUCCESSFUL); \
- _old = NULL; \
- } while(0)
-
-#define Clock_driver_support_shutdown_hardware() \
- do { \
- rtems_status_code status = RTEMS_SUCCESSFUL; \
- status = rtems_interrupt_handler_remove( \
- BSP_IRQ_TIMER3, \
- Clock_isr, \
- NULL \
- ); \
- assert(status == RTEMS_SUCCESSFUL); \
- } while (0)
-
-
-/*
- * Calculate Tick Times
- * 1 / 16.78Mhz => 59.595 ns
- * 64 / 16.78Mhz => 3.814 us
- * 256 / 16.78Mhz => 15.256 us
- * 1024 / 16.78Mhz => 61.025 us
- */
-#define __TimTickTime_us ((1000000L/__ClockFrequency)*__TimPreScaler)
-#define __TimTickTime_ns ((1000000000L/__ClockFrequency)*__TimPreScaler)
-
-#if (__TimPreScaler==1)
- #define GBA_TMCNT_PS 0x0000
-#elif (__TimPreScaler==64)
- #define GBA_TMCNT_PS 0x0001
-#elif (__TimPreScaler==256)
- #define GBA_TMCNT_PS 0x0002
-#elif (__TimPreScaler==1024)
- #define GBA_TMCNT_PS 0x0003
-#else
- #define GBA_TMCNT_PS 0x0003
-#endif
-
-/**
- * @brief This function set up the clock hardware
- *
- * @param None
- * @return None
- */
-void Clock_driver_support_initialize_hardware(void)
-{
- int tmreload;
-
- tmreload = rtems_configuration_get_nanoseconds_per_tick() / __TimTickTime_ns;
-
- if (tmreload>0xFFFF)
- tmreload = 0xFFFF;
- GBA_REG_TM3CNT = (GBA_TMCNT_PS);
- GBA_REG_TM3D = (0x0000-tmreload);
- GBA_REG_TM3CNT = (0x00c0|GBA_TMCNT_PS);
-}
-
-#define CLOCK_DRIVER_USE_DUMMY_TIMECOUNTER
-
-#include "../../../shared/clockdrv_shell.h"
diff --git a/c/src/lib/libbsp/arm/gba/configure.ac b/c/src/lib/libbsp/arm/gba/configure.ac
deleted file mode 100644
index 94c79cd..0000000
--- a/c/src/lib/libbsp/arm/gba/configure.ac
+++ /dev/null
@@ -1,23 +0,0 @@
-## Process this file with autoconf to produce a configure script.
-
-AC_PREREQ([2.69])
-AC_INIT([rtems-c-src-lib-libbsp-arm-gba],[_RTEMS_VERSION],[https://devel.rtems.org/newticket])
-AC_CONFIG_SRCDIR([bsp_specs])
-RTEMS_TOP(../../../../../..)
-
-RTEMS_CANONICAL_TARGET_CPU
-AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.12.2])
-RTEMS_BSP_CONFIGURE
-
-RTEMS_PROG_CC_FOR_TARGET
-RTEMS_CANONICALIZE_TOOLS
-RTEMS_PROG_CCAS
-
-RTEMS_CHECK_NETWORKING
-AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
-
-RTEMS_BSP_CLEANUP_OPTIONS(1, 1)
-
-# Explicitly list all Makefiles here
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/c/src/lib/libbsp/arm/gba/console/conio.c b/c/src/lib/libbsp/arm/gba/console/conio.c
deleted file mode 100644
index c53793a..0000000
--- a/c/src/lib/libbsp/arm/gba/console/conio.c
+++ /dev/null
@@ -1,450 +0,0 @@
-/**
- * @file conio.c
- *
- * This file contains the GBA conio I/O package.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- * based on MyLib by Rafael Vuijk (aka Dark Fader)
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*****************************************************************************
- * This source file is based on work by Rafael Vuijk (aka Dark Fader)
- *****************************************************************************
- *****************************************************************************
- * MyLib by Rafael Vuijk (aka Dark Fader)
- * :
- * This file is released into the public domain for commercial
- * or non-commercial usage with no restrictions placed upon it.
- *****************************************************************************/
-
-/*---------------------------------------------------------------------------*
- * Includes *
- *---------------------------------------------------------------------------*/
-#include <stdint.h>
-#include <rtems/score/types.h>
-#include <gba.h>
-#include <conio.h>
-#include <stdio.h>
-#include <stdarg.h>
-
-/*---------------------------------------------------------------------------*
- * Defines *
- *---------------------------------------------------------------------------*/
-#define W 60 /**< Screen width */
-#define H 26 /**< Screen height */
-#define CLRSCR_SIZE (W*4 * H*6) /**< Screen size */
-#define DEFAULT_FONT_WIDTH 4 /**< Font width */
-#define DEFAULT_FONT_HEIGHT 6 /**< Font height */
-
-typedef unsigned short Palette[256]; /**< 256 colors */
-typedef unsigned short Palettes[16][16]; /**< 16 palettes with each 16 colors */
-typedef unsigned short Bitmap3[GBA_LCD_HEIGHT][GBA_LCD_WIDTH]; /**< 16 bits, single buffered */
-typedef unsigned char Bitmap4[GBA_LCD_HEIGHT][GBA_LCD_WIDTH]; /**< 8 bits, double buffered */
-typedef unsigned short Bitmap5[GBA_MODE5_HEIGHT][GBA_MODE5_WIDTH];/**< double buffered */
-
-#define VRAM GBA_VRAM_ADDR /**< VRAM address */
-#define VRAM_END (VRAM + 0x18000) /**< VRAM end */
-#define BG_BITMAP0_VRAM (VRAM + 0x0) /**< BG Bitmap 0 RAM */
-#define BG_BITMAP1_VRAM (VRAM + 0xa000) /**< BG Bitmap 1 RAM */
-
-#define bg_bitmap0 (*(Bitmap4 *)BG_BITMAP0_VRAM)
-#define bg_bitmap1 (*(Bitmap4 *)BG_BITMAP1_VRAM)
-#define bg_bitmap3 (*(Bitmap3 *)BG_BITMAP0_VRAM)
-#define bg_bitmap4a (*(Bitmap4 *)BG_BITMAP0_VRAM)
-#define bg_bitmap4b (*(Bitmap4 *)BG_BITMAP1_VRAM)
-#define bg_bitmap5a (*(Bitmap5 *)BG_BITMAP0_VRAM)
-#define bg_bitmap5b (*(Bitmap5 *)BG_BITMAP1_VRAM)
-
-/** Color conversion macro */
-#define RGB(r,g,b) ( (r)<<0 | (g)<<5 | (b)<<10 )
-
-/** BG Affine Transformation Destination Data Structure */
-typedef struct {
- int16_t H_DiffX; /**< Line Direction X Coordinate Difference */
- int16_t V_DiffX; /**< Vertical Direction X Coordinate Difference */
- int16_t H_DiffY; /**< Line Direction Y Coordinate Difference */
- int16_t V_DiffY; /**< Vertical Direction Y Coordinate Difference */
- int32_t StartX; /**< Start X Coordinate */
- int32_t StartY; /**< Start Y Coordinate */
-} BgAffineDestData;
-
-typedef volatile BgAffineDestData vBgAffineDestData;
-#define rBg2Affine (*(vBgAffineDestData *)0x4000020)
-
-/** 256 colors for background(s) */
-#define bg_palette (*(Palette *)(GBA_PAL_RAM_ADDR))
-
-
-int _wherex; /**< Screen X coordinate */
-int _wherey; /**< Screen Y coordinate */
-int _textattr; /**< Text attribute */
-
-/*
- * Forward reference
- */
-static void gba_initconio(void);
-
-/*---------------------------------------------------------------------------*
- * Defaultfont *
- *---------------------------------------------------------------------------*/
-#include "defaultfont.h"
-
-/**
- * @brief gba_gotoxy function set screeen xy-coordinates
- *
- * @param _x screen x coordinate
- * @param _y screen y coordinate
- * @return None
- */
-void gba_gotoxy(int _x, int _y)
-{
- _wherex = _x;
- _wherey = _y;
-}
-
-
-/**
- * @brief gba_putchar function writes char-data to screen memory.
- *
- * Char code is index to font table.
- *
- * Input parameters: char, attribute and cordinates
- * @param c character code
- * @param textattr text attribute
- * @param x screen x coordinate
- * @param y screen y coordinate
- * @return None
- */
-static void gba_putchar(char c, int textattr, int x, int y)
-{
- int f = textattr & 0x0F;
- int b = textattr >> 4;
- uint32_t fmask = f | f<<8 | f<<16 | f<<24;
- uint32_t bmask = b | b<<8 | b<<16 | b<<24;
- uint32_t *dest = (uint32_t *)&bg_bitmap4a[((y<<1) + y) << 1][x<<2];
- const uint32_t *src = (uint32_t *)&(font3x5[(int)c]);
- uint32_t s;
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += GBA_LCD_WIDTH/sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += GBA_LCD_WIDTH/sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += GBA_LCD_WIDTH/sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += GBA_LCD_WIDTH/sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += GBA_LCD_WIDTH/sizeof(uint32_t);
-
- s = *src++;
- *dest = (fmask&s) | (bmask&~s);
- dest += GBA_LCD_WIDTH/sizeof(uint32_t);
-}
-
-
-/**
- * @brief gba_textattr function set textattribute
- *
- * @param _attr text attribute
- * @return None
- */
-void gba_textattr(int _attr)
-{
- _textattr = _attr;
-}
-
-/**
- * @brief gba_textbackground function set text background color
- *
- * @param _color backround color
- * @return None
- *
- */
-void gba_textbackground(int _color)
-{
- _textattr = (_textattr & 0x0F) | (_color << 4);
-}
-
-/**
- * @brief gba_textcolor function set text color
- *
- * @param _colour text color
- * @return None
- */
-void gba_textcolor(int _color)
-{
- _textattr = (_textattr & 0xF0) | (_color);
-}
-
-
-/**
- * @brief gba_clearline function clear line number y
- *
- * Line is filled with spaces
- *
- * @param y line number
- * @return None
- */
-static void gba_clearline(int y)
-{
- int x;
-
- for (x=0 ; x<=W ; x++) {
- gba_putchar(0, _textattr, x, y);
- }
-}
-
-/**
- * @brief gba_nextline function moves cursor to next line and clears it
- *
- * @param None
- * @return None
- */
-static void gba_nextline(void)
-{
- _wherex = 0;
- if (++_wherey >= H) {
- _wherey = 0;
- }
- gba_clearline(_wherey);
-}
-
-/**
- * @brief gba_clrscr function clear screen
- *
- * @param None
- * @return None
- */
-void gba_clrscr(void)
-{
- int y;
-
- for (y=0 ; y<=H ; y++) {
- gba_clearline(y);
- }
- gba_gotoxy(0,0);
-}
-
-/**
- * @brief gba_put function convert ascii char to font index and
- * write char to screen memory
- *
- * @param _c character code
- * @return None
- */
-static void gba_put(char _c)
-{
- /* We have save some memory with reduced fonts */
- _c = _c & 0x7F; /* no extened chars */
- _c = _c - 0x20; /* no cntr chars */
- gba_putchar(_c, _textattr, _wherex, _wherey);
-}
-
-
-/**
- * @brief gba_putch function write ascii chars to screen
- *
- * @param _c character code
- * @return None
- */
-void gba_putch(char _c)
-{
- switch (_c) {
- case ASCII_LF:
- gba_nextline();
- break;
- case ASCII_CR:
- gba_gotoxy(0, _wherey);
- break;
- default:
- gba_put(_c);
- if (++_wherex >= W)
- {
- gba_nextline();
- }
- break;
- }
- return;
-}
-
-/**
- * @brief gba_puts function write ascii string to screen
- *
- * @param _str ASCII string
- * @return None
- */
-void gba_puts(const char *_str)
-{
- while (*_str) {
- gba_putch(*_str++);
- }
- return;
-}
-
-/**
- * @brief gba_printf function do formated printf
- *
- * @param _format printf format string
- * @param ... parameters specified in format string
- * @return None
- */
-int gba_printf(const char *_format, ...)
-{
- char s[256];
- va_list marker;
- va_start(marker, _format);
- int r = vsprintf(s, _format, marker);
- va_end(marker);
- gba_puts(s);
- return r;
-}
-
-/**
- * @brief gba_initconio function initialize console
- *
- * @param None
- * @return None
- */
-static void gba_initconio(void)
-{
- GBA_REG_DISPCNT = GBA_DISP_MODE_4 | GBA_DISP_BG2_ON;/* 256 color bitmapped mode */
- const BgAffineDestData bgAffineReset = {256,0,0,256,0,-256*2};
- rBg2Affine = bgAffineReset;
- bg_palette[BLACK ] = RGB( 0, 0, 0); /* BLACK */
- bg_palette[BLUE ] = RGB( 0, 0,16); /* BLUE */
- bg_palette[GREEN ] = RGB( 0,16, 0); /* GREEN */
- bg_palette[CYAN ] = RGB( 0,16,16); /* CYAN */
- bg_palette[RED ] = RGB(16, 0, 0); /* RED */
- bg_palette[MAGENTA ] = RGB(16, 0,16); /* MAGENTA */
- bg_palette[BROWN ] = RGB(16,16, 0); /* BROWN */
- bg_palette[LIGHTGRAY ] = RGB(24,24,24); /* LIGHTGRAY */
- bg_palette[DARKGRAY ] = RGB(16,16,16); /* DARKGRAY */
- bg_palette[LIGHTBLUE ] = RGB( 0, 0,31); /* LIGHTBLUE */
- bg_palette[LIGHTGREEN ] = RGB( 0,31, 0); /* LIGHTGREEN */
- bg_palette[LIGHTCYAN ] = RGB( 0,31,31); /* LIGHTCYAN */
- bg_palette[LIGHTRED ] = RGB(31, 0, 0); /* LIGHTRED */
- bg_palette[LIGHTMAGENTA] = RGB(31, 0,31); /* LIGHTMAGENTA */
- bg_palette[YELLOW ] = RGB(31,31, 0); /* YELLOW */
- bg_palette[WHITE ] = RGB(31,31,31); /* WHITE */
- gba_textattr(0);
- gba_textcolor(DEF_TEXTCOLOR);
- gba_textbackground(DEF_TEXTBACKGROUND);
- gba_clrscr();
-}
-
-/**
- * @brief gba_textmode function set console mode
- *
- * @param _mode console mode code
- * @return None
- */
-void gba_textmode(int _mode)
-{
- switch (_mode) {
- case CO60: {
- gba_initconio();
- break;
- }
- }
-}
-
-
-/**
- * @brief delay_loop function is simple delay loop
- *
- * @param count loop counter
- * @return None
- */
-static void delay_loop(unsigned int count)
-{
- int i;
-
- for (i = 0; i<count; i++) i = i;
-}
-
-static unsigned char inputch = ASCII_CR; /**< input character value */
-/**
- * @brief gba_getch function read char from game pad keys
- *
- * Character input is done with GBA buttons,
- * up-down-left-right/A/B/R/L/Select/Start
- * - Select-key accept selected character
- * - Start-key read CR (Enter)
- * - A-key select 'A' character
- * - B-key select 'Z' character
- * - R-key select '1' character
- * - L-key select '9' character
- * - up-key increment character ('A'->'B')
- * - down-key decrement character ('B'-'A')
- * - left-key change set of character ('!'->'A'->'a')
- * - right-key change set of character ('a'->'A'->'!')
- *
- * @param None
- * @return Selected char code
- */
-int gba_getch(void)
-{
- int keyx, key = 0;
-
- while(1) {
- key = GBA_KEY();
- while ( (keyx=GBA_KEY())==key );
- switch (key) {
- case GBA_KEY_SELECT:
- gba_put(inputch);
- return inputch;
- break;
- case GBA_KEY_START:
- gba_put(' ');
- inputch = ASCII_CR;
- return inputch;
- break;
- case GBA_KEY_A:
- inputch = 'A';
- break;
- case GBA_KEY_B:
- inputch = 'Z';
- break;
- case GBA_KEY_UP:
- if ((inputch-1) >= 0x20) inputch--;
- break;
- case GBA_KEY_DOWN:
- if ((inputch+1) <= 0x7E) inputch++;
- break;
- case GBA_KEY_LEFT:
- if ((inputch - 0x20) >= 0x20) inputch -= 0x20;
- break;
- case GBA_KEY_RIGHT:
- if ((inputch + 0x20) <= 0x7E) inputch += 0x20;
- break;
- case GBA_KEY_R:
- inputch = '1';
- break;
- case GBA_KEY_L:
- inputch = '9';
- break;
- default:
- break;
- }
-
- gba_put(inputch);
- delay_loop(1000);
- }
-}
diff --git a/c/src/lib/libbsp/arm/gba/console/console.c b/c/src/lib/libbsp/arm/gba/console/console.c
deleted file mode 100644
index 35ec017..0000000
--- a/c/src/lib/libbsp/arm/gba/console/console.c
+++ /dev/null
@@ -1,257 +0,0 @@
-/**
- * @file console.c
- *
- * This file contains the GBA console I/O package.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <bsp.h>
-#include <rtems/bspIo.h>
-#include <rtems/libio.h>
-#include <rtems/termiostypes.h>
-#include <termios.h>
-#include <bsp/irq.h>
-#include <gba.h>
-#include <conio.h>
-
-/**
- * @brief gba_pollRead function read char
- *
- * @param minor unused
- * @return character code
- */
-static int gba_pollRead(int minor)
-{
- return (gba_getch());
-}
-
-/**
- * @brief gba_write function writes chars
- *
- * Input parameters: minor code, buffer pointer and lenght
- * @param minor unused
- * @param *buf buffer pointer
- * @param len lenght of buffer
- * @return character code
- *
- */
-static ssize_t gba_write(int minor, const char *buf, size_t len)
-{
- int i;
-
- for (i=0;i<len;i++) {
- gba_putch((unsigned short)buf[i]);
- }
- return len;
-}
-
-/**
- * @brief gba_setAttributes function is empty
- *
- * @param minor unused
- * @param *t unused
- * @return constant 0
- */
-static int gba_setAttributes(int minor, const struct termios *t)
-{
- return 0;
-}
-
-/** BSP_output_char for printk support */
-BSP_output_char_function_type BSP_output_char = (BSP_output_char_function_type) gba_putch;
-/** BSP_poll_char for printk support */
-BSP_polling_getchar_function_type BSP_poll_char = gba_getch;
-
-/**
- * @brief Console device driver INITIALIZE entry point
- *
- * Initilizes the I/O console driver.
- *
- * @param major diver major number
- * @param minor driver minor mumber
- * @param *arg pointer to parameters
- * @return status code
- */
-rtems_device_driver
-console_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg
-)
-{
- rtems_status_code status;
-
- /* Set up TERMIOS */
- rtems_termios_initialize ();
-
- /* Do device-specific initialization */
- /* Already done in bspstart.c -> gba_textmode(CO60); */
-
- /* Register the device */
- status = rtems_io_register_name ("/dev/console", major, 0);
- if (status != RTEMS_SUCCESSFUL) {
- printk("Error registering console device!\n");
- rtems_fatal_error_occurred (status);
- }
-
- printk("Initialized GBA console\n\n");
-
- return RTEMS_SUCCESSFUL;
-}
-
-/**
- * @brief console_first_open function is empty
- *
- * @param major diver major number
- * @param minor driver minor mumber
- * @param *arg pointer to parameters
- * @return status code
- */
-static int console_first_open(int major, int minor, void *arg)
-{
- return 0;
-}
-
-/**
- * @brief console_last_close function is empty
- *
- * @param major diver major number
- * @param minor driver minor mumber
- * @param *arg pointer to parameters
- * @return status code
- */
-static int console_last_close(int major, int minor, void *arg)
-{
- return 0;
-}
-
-/**
- * @brief Console device driver OPEN entry point
- *
- * @param major diver major number
- * @param minor driver minor mumber
- * @param *arg pointer to parameters
- * @return status code
- */
-rtems_device_driver
-console_open(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg
-)
-{
- rtems_status_code status;
- static rtems_termios_callbacks cb =
- {
- console_first_open, /* firstOpen */
- console_last_close, /* lastClose */
- gba_pollRead, /* pollRead */
- gba_write, /* write */
- gba_setAttributes, /* setAttributes */
- NULL, /* stopRemoteTx */
- NULL, /* startRemoteTx */
- TERMIOS_POLLED /* 1 = outputUsesInterrupts */
- };
-
- status = rtems_termios_open (major, minor, arg, &cb);
-
- if (status != RTEMS_SUCCESSFUL) {
- printk("Error openning console device\n");
- return status;
- }
-
- return RTEMS_SUCCESSFUL;
-}
-
-/**
- * @brief Console device driver CLOSE entry point
- *
- * @param major diver major number
- * @param minor driver minor mumber
- * @param *arg pointer to parameters
- * @return status code
- */
-rtems_device_driver
-console_close(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg
-)
-{
- rtems_device_driver res = RTEMS_SUCCESSFUL;
-
- res = rtems_termios_close (arg);
-
- return res;
-}
-
-/**
- * @brief Console device driver READ entry point.
- *
- * Read characters from the I/O console.
- *
- * @param major diver major number
- * @param minor driver minor mumber
- * @param *arg pointer to parameters
- * @return status code
- */
-rtems_device_driver
-console_read(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg
-)
-{
- return rtems_termios_read (arg);
-}
-
-/**
- * @brief Console device driver WRITE entry point.
- *
- * Write characters to the I/O console.
- *
- * @param major diver major number
- * @param minor driver minor mumber
- * @param *arg pointer to parameters
- * @return status code
-*/
-rtems_device_driver
-console_write(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg
-)
-{
- return rtems_termios_write (arg);
-}
-
-/**
- * @brief Handle ioctl request.
- *
- * @param major diver major number
- * @param minor driver minor mumber
- * @param *arg pointer to parameters
- * @return status code
- */
-rtems_device_driver
-console_control(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg
-)
-{
- return rtems_termios_ioctl (arg);
-}
diff --git a/c/src/lib/libbsp/arm/gba/console/defaultfont.h b/c/src/lib/libbsp/arm/gba/console/defaultfont.h
deleted file mode 100644
index b06b896..0000000
--- a/c/src/lib/libbsp/arm/gba/console/defaultfont.h
+++ /dev/null
@@ -1,602 +0,0 @@
-/**
- * @file
- *
- * @ingroup arm_gba
- *
- * @brief Default font definitions.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/** Font array dot value */
-#define X 255
-/** Generate font row data */
-#define GEN_FONT_DATA(a,b,c,d) ( ((d)<<24) | ((c)<<16) | ((b)<<8) | ((a)<<0) )
-/** array for 3x5 font, font screen size is 4x6 */
-static const unsigned long font3x5[256][6] =
- { { /* ' ' - ascii:0x20 font:0x00 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '!' - ascii:0x21 font:0x01 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* '"' - ascii:0x22 font:0x02 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '#' - ascii:0x23 font:0x03 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* '$' - ascii:0x24 font:0x04 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* '%' - ascii:0x25 font:0x05 */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,0 )
- },{ /* '&' - ascii:0x26 font:0x06 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* ''' - ascii:0x27 font:0x07 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '(' - ascii:0x28 font:0x08 */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X )
- },{ /* ')' - ascii:0x29 font:0x09 */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 )
- },{ /* '*' - ascii:0x2A font:0x0A */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '+' - ascii:0x2B font:0x0B */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '´' - ascii:0x2C font:0x0C */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '-' - ascii:0x2D font:0x0D */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '.' - ascii:0x2E font:0x0E */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* '/' - ascii:0x2F font:0x0F */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( X,0,0,0 )
- },{ /* '0' - ascii:0x30 font:0x10 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '1' - ascii:0x31 font:0x11 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '2' - ascii:0x32 font:0x12 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '3' - ascii:0x33 font:0x13 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '4' - ascii:0x34 font:0x14 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X )
- },{ /* '5' - ascii:0x35 font:0x15 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '6' - ascii:0x36 font:0x16 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '7' - ascii:0x37 font:0x17 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* '8' - ascii:0x38 font:0x18 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '9' - ascii:0x39 font:0x19 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* ':' - ascii:0x3A font:0x1A */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- },{ /* ';' - ascii:0x3B font:0x1B */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* '<' - ascii:0x3C font:0x1C */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X )
- },{ /* '=' - ascii:0x3D font:0x1D */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '>' - ascii:0x3E font:0x1E */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 )
- },{ /* '?' - ascii:0x3F font:0x1F */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* '@' - ascii:0x40 font:0x20 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'A' - ascii:0x41 font:0x21 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'B' - ascii:0x42 font:0x22 */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 'C' - ascii:0x43 font:0x23 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'D' - ascii:0x44 font:0x24 */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- },{ /* 'E' - ascii:0x45 font:0x25 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'F' - ascii:0x46 font:0x26 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'G' - ascii:0x47 font:0x27 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'H' - ascii:0x48 font:0x28 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'I' - ascii:0x49 font:0x29 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'J' - ascii:0x4A font:0x2A */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'K' - ascii:0x4B font:0x2B */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'L' - ascii:0x4C font:0x2C */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'M' - ascii:0x4D font:0x2D */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'N' - ascii:0x4E font:0x2E */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'O' - ascii:0x4F font:0x2F */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'P' - ascii:0x50 font:0x30 */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'Q' - ascii:0x51 font:0x31 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'R' - ascii:0x52 font:0x33 */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'S' - ascii:0x53 font:0x33 */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 'T' - ascii:0x54 font:0x34 */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* 'U' - ascii:0x55 font:0x35 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'V' - ascii:0x56 font:0x36 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* 'W' - ascii:0x57 font:0x37 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- },{ /* 'X' - ascii:0x58 font:0x38 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'Y' - ascii:0x59 font:0x39 */
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* 'Z' - ascii:0x5A font:0x3A */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '[' - ascii:0x5B font:0x3B */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '\' - ascii:0x5C font:0x3C */
- GEN_FONT_DATA( X,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* ']' - ascii:0x5D font:0x3D */
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '^' - ascii:0x5E font:0x3E */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '_' - ascii:0x5F font:0x3F */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '´' - ascii:0x60 font:0x30 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* 'a' - ascii:0x31 font:0x31 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'b' - ascii:0x62 font:0x32 */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 'c' - ascii:0x63 font:0x33 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'd' - ascii:0x64 font:0x34 */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- },{ /* 'e' - ascii:0x65 font:0x35 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'f' - ascii:0x66 font:0x36 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'g' - ascii:0x67 font:0x37 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 'h' - ascii:0x68 font:0x38 */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'i' - ascii:0x69 font:0x39 */
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'j' - ascii:0x6A font:0x3A */
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'k' - ascii:0x6B font:0x3B */
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'l' - ascii:0x6C font:0x3C */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* 'm' - ascii:0x6D font:0x3D */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'n' - ascii:0x6E font:0x3E */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'o' - ascii:0x6F font:0x6F */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 )
- },{ /* 'p' - ascii:0x70 font:0x40 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'q' - ascii:0x71 font:0x41 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,0,X )
- },{ /* 'r' - ascii:0x72 font:0x43 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 )
- },{ /* 's' - ascii:0x73 font:0x43 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* 't' - ascii:0x74 font:0x44 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,X ),
- },{ /* 'u' - ascii:0x75 font:0x45 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* 'v' - ascii:0x76 font:0x46 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- },{ /* 'w' - ascii:0x77 font:0x47 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,X,0,X ),
- },{ /* 'x' - ascii:0x78 font:0x48 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,X )
- },{ /* 'y' - ascii:0x79 font:0x49 */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- },{ /* 'z' - ascii:0x7A font:0x4A */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,X )
- },{ /* '{' - ascii:0x7B font:0x4B */
- GEN_FONT_DATA( 0,0,X,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,X,X )
- },{ /* '\' - ascii:0x7C font:0x4C */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* '}' - ascii:0x7D font:0x4D */
- GEN_FONT_DATA( 0,X,X,0 ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,X,0 ),
- GEN_FONT_DATA( 0,X,X,0 )
- },{ /* '~' - ascii:0x7E font:0x4E */
- GEN_FONT_DATA( 0,0,0,0 ),
- GEN_FONT_DATA( 0,X,0,0 ),
- GEN_FONT_DATA( 0,X,X,X ),
- GEN_FONT_DATA( 0,0,0,X ),
- GEN_FONT_DATA( 0,0,0,0 )
- },{ /* DEL - ascii:0x7F font:0x4F */
- GEN_FONT_DATA( X,X,X,X ),
- GEN_FONT_DATA( X,X,X,X ),
- GEN_FONT_DATA( X,X,X,X ),
- GEN_FONT_DATA( X,X,X,X ),
- GEN_FONT_DATA( X,X,X,X )
- }
- };
diff --git a/c/src/lib/libbsp/arm/gba/include/arm_mode_bits.h b/c/src/lib/libbsp/arm/gba/include/arm_mode_bits.h
deleted file mode 100644
index bd9630f..0000000
--- a/c/src/lib/libbsp/arm/gba/include/arm_mode_bits.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * @file
- *
- * @ingroup arm_gba
- *
- * @brief ARM status register mode bits.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef __ARMMODEBITS_H
-#define __ARMMODEBITS_H
-
-/*-----------------------------------------------------------------------------
- * Definitions
- ----------------------------------------------------------------------------*/
-#define Mode_USR 0x10
-#define Mode_FIQ 0x11
-#define Mode_IRQ 0x12
-#define Mode_SVC 0x13
-#define Mode_ABT 0x17
-#define Mode_ABORT 0x17
-#define Mode_UNDEF 0x1B
-#define Mode_SYS 0x1F /**< only available on ARM Arch v4 */
-#define Mode_Bits 0x1F /**< mask for mode bits */
-#define ModePriv Mode_SVC /**< used supervisor mode */
-
-#define I_Bit 0x80
-#define F_Bit 0x40
-#define Int_Bits 0xC0
-
-#define Mode_SVC_MIRQ (Mode_SVC | I_Bit | F_Bit)
-#define Mode_SVC_UIRQ (Mode_SVC)
-#define Mode_IRQ_MIRQ (Mode_SVC | I_Bit | F_Bit)
-#define Mode_IRQ_UIRQ (Mode_SVC)
-
-#endif /* __ARMMODEBITS_H */
-
diff --git a/c/src/lib/libbsp/arm/gba/include/asm_macros.h b/c/src/lib/libbsp/arm/gba/include/asm_macros.h
deleted file mode 100644
index 4cfadb8..0000000
--- a/c/src/lib/libbsp/arm/gba/include/asm_macros.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * @file
- *
- * @ingroup arm_gba
- *
- * @brief ASM macros.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*-----------------------------------------------------------------------------*
- * Macros
- *-----------------------------------------------------------------------------*/
-#ifdef __asm__
-#define PUBLIC_ARM_FUNCTION(label) .global label ; \
- .type label, function ; \
- .arm ; \
- label:
-
-#define PUBLIC_THUMB_FUNCTION(label) .global label ; \
- .type label, function ; \
- .thumb_func ; \
- label:
-
-#define STATIC_ARM_FUNCTION(label) .type label, function ; \
- .arm ; \
- label:
-
-#define STATIC_THUMB_FUNCTION(label) .type label, function ; \
- .thumb_func ; \
- label:
-
-#define OBJECT(label) .global label ; \
- .type label, object ; \
- label:
-
-#define STATIC_OBJECT(label) .type label, object ; \
- label:
-
-#define WEAK_OBJECT(label) .weak label ; \
- .type label, object ; \
- label:
-
-#define LABEL_END(label) .L##label##_end: ; \
- .size label, .L##label##_end - label
-
-#endif
diff --git a/c/src/lib/libbsp/arm/gba/include/bsp.h b/c/src/lib/libbsp/arm/gba/include/bsp.h
deleted file mode 100644
index fa7df74..0000000
--- a/c/src/lib/libbsp/arm/gba/include/bsp.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * @file
- *
- * @ingroup arm_gba
- *
- * @brief Global BSP definitions.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004
- * Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef LIBBSP_ARM_GBA_H
-#define LIBBSP_ARM_GBA_H
-
-#include <bspopts.h>
-#include <bsp/default-initial-extension.h>
-
-#include <rtems.h>
-#include <rtems/iosupp.h>
-#include <rtems/console.h>
-#include <rtems/clockdrv.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define BSP_FEATURE_IRQ_EXTENSION
-
-/** Define operation count for Tests */
-#define OPERATION_COUNT 10
-
-/** gba_zero_memory library function in start.S */
-extern void gba_zero_memory(int start, int stop);
-/** gba_move_memory library function in start.S */
-extern void gba_move_memory(int from, int toStart, int toEnd);
-/** gba_set_memory library function in start.S */
-extern void gba_set_memory(int start, int stop, int data);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* __BSP_H_ */
-/**
- * @defgroup arm_gba GBA Support
- *
- * @ingroup bsp_arm
- *
- * @brief GBA support package.
- */
-
diff --git a/c/src/lib/libbsp/arm/gba/include/conio.h b/c/src/lib/libbsp/arm/gba/include/conio.h
deleted file mode 100644
index 8b46994..0000000
--- a/c/src/lib/libbsp/arm/gba/include/conio.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * @file
- *
- * @ingroup gba_conio
- *
- * @brief GBA conio I/O package.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _CONIO_H
-#define _CONIO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup gba_conio GBA Conio I/O
- *
- * @ingroup arm_gba
- *
- * @brief GBA Conio I/O support.
- */
-
-/*---------------------------------------------------------------------------*
- * Includes *
- *---------------------------------------------------------------------------*/
-#include <gba.h>
-
-/*---------------------------------------------------------------------------*
- * Defines *
- *---------------------------------------------------------------------------*/
-#define ASCII_BEL 0x07 /**< bell */
-#define ASCII_BS 0x08 /**< backspace */
-#define ASCII_TAB 0x09 /**< horizontal tab */
-#define ASCII_LF 0x0A /**< line feed */
-#define ASCII_CR 0x0D /**< carriage return */
-#define ASCII_XON 0x11 /**< control-Q */
-#define ASCII_XOFF 0x13 /**< control-S */
-#define ASCII_ESC 0x1B /**< escape */
-
-
-enum TEXT_MODES
-{
- CO60 = 0, /**< 60x26 (3x5 font) */
- MAXMODES
-};
-
-enum COLORS
-{
- BLACK,
- BLUE,
- GREEN,
- CYAN,
- RED,
- MAGENTA,
- BROWN,
- LIGHTGRAY,
- DARKGRAY,
- LIGHTBLUE,
- LIGHTGREEN,
- LIGHTCYAN,
- LIGHTRED,
- LIGHTMAGENTA,
- YELLOW,
- WHITE,
- MAXCOLORS
-};
-
-#define DEF_TEXTCOLOR BLACK
-#define DEF_TEXTBACKGROUND WHITE
-
-/*---------------------------------------------------------------------------*
- * Prototypes *
- *---------------------------------------------------------------------------*/
-void gba_textmode(int _mode);
-void gba_clrscr(void);
-void gba_textattr(int _attr);
-void gba_textbackground(int _color);
-void gba_textcolor(int _color);
-void gba_putch(char _c);
-void gba_puts(const char *_str);
-int gba_printf(const char *_format, ...);
-void gba_gotoxy(int _x, int _y);
-int gba_getch(void);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _CONIO_H */
diff --git a/c/src/lib/libbsp/arm/gba/include/gba.h b/c/src/lib/libbsp/arm/gba/include/gba.h
deleted file mode 100644
index 4e25093..0000000
--- a/c/src/lib/libbsp/arm/gba/include/gba.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * @file
- *
- * @ingroup arm_gba
- *
- * @brief GameBoy Advance definitions.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _GBA_H
-#define _GBA_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <gba_registers.h>
-
-/*---------------------------------------------------------------------------*
- * Clock *
- *---------------------------------------------------------------------------*/
-#define __ClockFrequency 16780000L /**< ClockFreguency in Hz */
-#define __TimPreScaler 1024L /**< Prescaler value 1,64,256,1024 */
-
-/*---------------------------------------------------------------------------*
- * Activation defines *
- *---------------------------------------------------------------------------*/
-/**
- * Multiboot/Cart boot Selection.
- *
- * If the variable __gba_multiboot is defined
- * (probably should be in your main project file) then code
- * is generated which will run as a multiboot image (code starts
- * at 0x02000000) or as a normal flash cart / emulator image.
- * (i.e. start.S copies code from ROM to EWRAM if started in cart
- * or emulator.) If this variable is not defined then code is
- * generated for flash cart / emulator only operation (code starts
- * at 0x08000000).
- */
-#define MULTIBOOT volatile const unsigned short __gba_multiboot;
-
-/**
- * IWRAM/EWRAM data Selection.
- *
- * If the variable __gba_iwram_data is defined
- * (probably should be in your main project file) then code
- * is generated which will allocate data section in IWRAM
- * (data starts at 0x03000080).
- * If this variable is not defined then data sections is
- * allocated in EWRAM (data starts at 0x02000000).
- */
-#define IWRAMDATA volatile const unsigned short __gba_iwram_data;
-
-/**
- * IWRAM/EWRAM bss Selection.
- *
- * If the variable __gba_iwram_bss is defined
- * (probably should be in your main project file) then code
- * is generated which will allocate bss section in IWRAM
- * (data starts at 0x03000080).
- * If this variable is not defined then bss sections is
- * allocated in EWRAM (data starts at 0x02000000).
- */
-#define IWRAMBSS volatile const unsigned short __gba_iwram_bss;
-
-
-/*---------------------------------------------------------------------------*
- * Attributes *
- *---------------------------------------------------------------------------*/
-#define CODE_IN_ROM __attribute__ ((section (".text"), long_call))
-#define CODE_IN_IWRAM __attribute__ ((section (".iwram"), long_call))
-#define IN_IWRAM __attribute__ ((section (".iwram")))
-#define IN_EWRAM __attribute__ ((section (".ewram")))
-
-/*---------------------------------------------------------------------------*
- * Console Keypad *
- *---------------------------------------------------------------------------*/
-#define OK_KEY (0==0) /**< TRUE */
-#define NO_KEY (0==1) /**< FALSE */
-#define GBA_KEYS_PRESSED(keys) (( ((~GBA_REG_P1) & (keys)) == (keys)) ? (OK_KEY) : (NO_KEY))
-#define GBA_ANY_KEY(keys) (( ((~GBA_REG_P1) & (keys)) != 0) ? (OK_KEY) : (NO_KEY))
-#define GBA_KEY() ((~GBA_REG_P1)&GBA_KEY_ALL)
-
-/*---------------------------------------------------------------------------*
- * Console Screen *
- *---------------------------------------------------------------------------*/
-#define GBA_LCD_WIDTH 240
-#define GBA_LCD_HEIGHT 160
-#define GBA_MODE5_WIDTH 160
-#define GBA_MODE5_HEIGHT 128
-#define GBA_LCD_ASPECT ((float)(GBA_LCD_WIDTH / GBA_LCD_HEIGHT))
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/c/src/lib/libbsp/arm/gba/include/gba_registers.h b/c/src/lib/libbsp/arm/gba/include/gba_registers.h
deleted file mode 100644
index 4be8543..0000000
--- a/c/src/lib/libbsp/arm/gba/include/gba_registers.h
+++ /dev/null
@@ -1,965 +0,0 @@
-/**
- * @file
- *
- * @ingroup gba_reg
- *
- * @brief Register definitions.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*---------------------------------------------------------------------------+
-| THIS CODE WAS NOT MADE IN ASSOCIATION WITH NINTENDO AND DOES NOT MAKE
-| USE OF ANY INTELLECTUAL PROPERTY CLAIMED BY NINTENDO.
-|
-| GAMEBOY ADVANCE IS A TRADEMARK OF NINTENDO.
-|
-| THIS CODE HAS BEEN PROVIDED "AS-IS" WITHOUT A WARRANTY OF ANY KIND,
-| EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO IMPLIED
-| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.
-| THE ENTIRE RISK AS TO THE QUALITY OR PERFORMANCE OF THE CODE IS WITH YOU.
-|
-| IN NO EVENT, UNLESS AGREED TO IN WRITING, WILL ANY COPYRIGHT HOLDER,
-| OR ANY OTHER PARTY, BE HELD LIABLE FOR ANY DAMAGES RESULTING FROM
-| THE USE OR INABILITY TO USE THIS CODE.
-+----------------------------------------------------------------------------*/
-
-#ifndef _GBA_REGISTERS_H
-#define _GBA_REGISTERS_H
-
-#ifndef __asm__
-extern volatile unsigned int *Regs; /**< Chip registers */
-#endif
-
-/**
- * @defgroup gba_reg Register Definitions
- *
- * @ingroup arm_gba
- *
- * @brief Register definitions.
- */
-
-
-/*---------------------------------------------------------------------------+
-| General address definitions
-+----------------------------------------------------------------------------*/
-/* General Internal Memory */
-#define GBA_BIOS_ADDR 0x00000000 /**< GBA BIOS start address */
-#define GBA_BIOS_END 0x00004000 /**< GBA BIOS end address */
-#define GBA_EXT_RAM_ADDR 0x02000000 /**< On-board RAM start address */
-#define GBA_EXT_RAM_END 0x02040000 /**< On-board RAM end address */
-#define GBA_INT_RAM_ADDR 0x03000000 /**< In-chip RAM start address */
-#define GBA_INT_RAM_END 0x03008000 /**< In-chip RAM end address */
-#define GBA_IO_REGS_ADDR 0x04000000 /**< IO registers start address */
-#define GBA_IO_REGS_END 0x04000400 /**< IO registers end address */
-/* Internal Display Memory */
-#define GBA_PAL_RAM_ADDR 0x05000000 /**< PAL RAM start address */
-#define GBA_PAL_RAM_END 0x05000400 /**< PAL RAM end address */
-#define GBA_VRAM_ADDR 0x06000000 /**< VRAM start address */
-#define GBA_VRAM_END 0x06180000 /**< VRAM end address */
-#define GBA_OAM_ADDR 0x07000000 /**< OAM start address */
-#define GBA_OAM_END 0x07000400 /**< OAM end address */
-/* External Memory (Game Pak) */
-#define GBA_ROM0_ADDR 0x08000000 /**< Card ROM0 start address */
-#define GBA_ROM1_ADDR 0x0A000000 /**< Card ROM1 start address */
-#define GBA_ROM2_ADDR 0x0C000000 /**< Card ROM2 start address */
-#define GBA_SRAM_ADDR 0x0E000000 /**< Card SRAM start address */
-#define GBA_SRAM_END 0x0E010000 /**< Card SRAM end address */
-/* Unused Memory Area */
-#define GBA_MAX_ADDR 0x10000000 /**< Upper 4bits of address bus unused */
-/* Memory pointers */
-#ifndef __asm__
-#define GBA_BASE_BIOS (volatile unsigned char *)GBA_BIOS_ADDR /**< BIOS - System ROM 16KBytes, protected */
-#define GBA_BASE_EXT_RAM (volatile unsigned char *)GBA_EXT_RAM_ADDR /**< WRAM - On-board Work RAM 256KBytes */
-#define GBA_BASE_INT_RAM (volatile unsigned char *)GBA_INT_RAM_ADDR /**< WRAM - In-chip Work RAM 32KBytes */
-#define GBA_BASE_IO_REGS (volatile unsigned char *)GBA_IO_REGS_ADDR /**< I/O Registers */
-#define GBA_BASE_PAL_RAM (volatile unsigned char *)GBA_PAL_RAM_ADDR /**< BG/OBJ Palette RAM 1KBytes */
-#define GBA_BASE_VRAM (volatile unsigned char *)GBA_VRAM_ADDR /**< VRAM - Video RAM 96KBytes */
-#define GBA_BASE_OAM (volatile unsigned char *)GBA_OAM_ADDR /**< OAM - OBJ Attribytes */
-#define GBA_BASE_ROM0 (volatile unsigned char *)GBA_ROM0_ADDR /**< Card ROM 32MB */
-#define GBA_BASE_ROM1 (volatile unsigned char *)GBA_ROM1_ADDR /**< Card ROM 32MB */
-#define GBA_BASE_ROM2 (volatile unsigned char *)GBA_ROM2_ADDR /**< Card ROM 32MB */
-#define GBA_BASE_SRAM (volatile unsigned char *)GBA_SRAM_ADDR /**< Card SRAM 64KBytes */
-#endif
-/*---------------------------------------------------------------------------*
- * Display Control
- *---------------------------------------------------------------------------*/
-#define GBA_DISP_BG_MODE_MASK 0x0007 /**< BG Mode */
-#define GBA_DISP_ON_MASK 0x1f00 /**< OBJ BG ON */
-#define GBA_DISP_WIN_MASK 0x6000 /**< Window ON */
-
-#define GBA_DISP_BG_MODE_SHIFT 0
-#define GBA_DISP_ON_SHIFT 8
-#define GBA_DISP_WIN_SHIFT 13
-
-#define GBA_DISP_MODE_0 0x0000 /**< BG Mode 0 */
-#define GBA_DISP_MODE_1 0x0001 /**< BG Mode 1 */
-#define GBA_DISP_MODE_2 0x0002 /**< BG Mode 2 */
-#define GBA_DISP_MODE_3 0x0003 /**< BG Mode 3 */
-#define GBA_DISP_MODE_4 0x0004 /**< BG Mode 4 */
-#define GBA_DISP_MODE_5 0x0005 /**< BG Mode 5 */
-#define GBA_DISP_BMP_FRAME_NO 0x0010 /**< Bitmap Mode Display Frame */
-#define GBA_DISP_OBJ_HOFF 0x0020 /**< OBJ Processing in H Blank OFF */
-#define GBA_DISP_OBJ_CHAR_2D_MAP 0x0000 /**< OBJ Character Data 2D Mapping */
-#define GBA_DISP_OBJ_CHAR_1D_MAP 0x0040 /**< OBJ Character Data 1D Mapping */
-#define GBA_DISP_LCDC_OFF 0x0080 /**< LCDC OFF */
-#define GBA_DISP_BG0_ON 0x0100 /**< BG0 ON */
-#define GBA_DISP_BG1_ON 0x0200 /**< BG1 ON */
-#define GBA_DISP_BG2_ON 0x0400 /**< BG2 ON */
-#define GBA_DISP_BG3_ON 0x0800 /**< BG3 ON */
-#define GBA_DISP_BG_ALL_ON 0x0f00 /**< All BG ON */
-#define GBA_DISP_OBJ_ON 0x1000 /**< OBJ ON */
-#define GBA_DISP_OBJ_BG_ALL_ON 0x1f00 /**< All OBJ/BG ON */
-#define GBA_DISP_WIN0_ON 0x2000 /**< Window 0 ON */
-#define GBA_DISP_WIN1_ON 0x4000 /**< Window 1 ON */
-#define GBA_DISP_WIN01_ON 0x6000 /**< Window 0,1 ON */
-#define GBA_DISP_OBJWIN_ON 0x8000 /**< OBJ Window ON */
-#define GBA_DISP_WIN_ALL_ON 0xe000 /**< All Window ON */
-#define GBA_DISP_ALL_ON 0x7f00 /**< All ON */
-
-#define GBA_BG_MODE_0 0
-#define GBA_BG_MODE_1 1
-#define GBA_BG_MODE_2 2
-#define GBA_BG_MODE_3 3
-#define GBA_BG_MODE_4 4
-#define GBA_BG_MODE_5 5
-
-#define GBA_BG0_ENABLE 1
-#define GBA_BG1_ENABLE 2
-#define GBA_BG2_ENABLE 4
-#define GBA_BG3_ENABLE 8
-#define GBA_OBJ_ENABLE 16
-
-#define GBA_OBJ_1D_MAP 1
-#define GBA_OBJ_2D_MAP 0
-
-
-/*---------------------------------------------------------------------------+
-| LCD
-+----------------------------------------------------------------------------*/
-/* LCD I/O Register address offsets */
-#define GBA_DISPCNT 0x00000000 /**< LCD Control */
-#define GBA_DISPSTAT 0x00000004 /**< General LCD Status (STAT,LYC) */
-#define GBA_VCOUNT 0x00000006 /**< Vertical Counter (LY) */
-#define GBA_BG0CNT 0x00000008 /**< BG0 Control */
-#define GBA_BG1CNT 0x0000000A /**< BG1 Control */
-#define GBA_BG2CNT 0x0000000C /**< BG2 Control */
-#define GBA_BG3CNT 0x0000000E /**< BG3 Control */
-#define GBA_BG0HOFS 0x00000010 /**< BG0 X-Offset */
-#define GBA_BG0VOFS 0x00000012 /**< BG0 Y-Offset */
-#define GBA_BG1HOFS 0x00000014 /**< BG1 X-Offset */
-#define GBA_BG1VOFS 0x00000016 /**< BG1 Y-Offset */
-#define GBA_BG2HOFS 0x00000018 /**< BG2 X-Offset */
-#define GBA_BG2VOFS 0x0000001A /**< BG2 Y-Offset */
-#define GBA_BG3HOFS 0x0000001C /**< BG3 X-Offset */
-#define GBA_BG3VOFS 0x0000001E /**< BG3 Y-Offset */
-#define GBA_BG2PA 0x00000020 /**< BG2 Rotation/Scaling Parameter A (dx) */
-#define GBA_BG2PB 0x00000022 /**< BG2 Rotation/Scaling Parameter B (dmx) */
-#define GBA_BG2PC 0x00000024 /**< BG2 Rotation/Scaling Parameter C (dy) */
-#define GBA_BG2PD 0x00000026 /**< BG2 Rotation/Scaling Parameter D (dmy) */
-#define GBA_BG2X 0x00000028 /**< BG2 Reference Point X-Coordinate */
-#define GBA_BG2X_L 0x00000028 /**< BG2 Reference Point X-Coordinate low */
-#define GBA_BG2X_H 0x0000002A /**< BG2 Reference Point X-Coordinate high */
-#define GBA_BG2Y 0x0000002C /**< BG2 Reference Point Y-Coordinate */
-#define GBA_BG2Y_L 0x0000002C /**< BG2 Reference Point Y-Coordinate low */
-#define GBA_BG2Y_H 0x0000002E /**< BG2 Reference Point Y-Coordinate high */
-#define GBA_BG3PA 0x00000030 /**< BG3 Rotation/Scaling Parameter A (dx) */
-#define GBA_BG3PB 0x00000032 /**< BG3 Rotation/Scaling Parameter B (dmx) */
-#define GBA_BG3PC 0x00000034 /**< BG3 Rotation/Scaling Parameter C (dy) */
-#define GBA_BG3PD 0x00000036 /**< BG3 Rotation/Scaling Parameter D (dmy) */
-#define GBA_BG3X 0x00000038 /**< BG3 Reference Point X-Coordinate */
-#define GBA_BG3X_L 0x00000038 /**< BG3 Reference Point X-Coordinate low */
-#define GBA_BG3X_H 0x0000003A /**< BG3 Reference Point X-Coordinate high */
-#define GBA_BG3Y 0x0000003C /**< BG3 Reference Point Y-Coordinate */
-#define GBA_BG3Y_L 0x0000003C /**< BG3 Reference Point Y-Coordinate low */
-#define GBA_BG3Y_H 0x0000003E /**< BG3 Reference Point Y-Coordinate hugh */
-#define GBA_WIN0H 0x00000040 /**< Window 0 Horizontal Dimensions */
-#define GBA_WIN1H 0x00000042 /**< Window 1 Horizontal Dimensions */
-#define GBA_WIN0V 0x00000044 /**< Window 0 Vertical Dimensions */
-#define GBA_WIN1V 0x00000046 /**< Window 1 Vertical Dimensions */
-#define GBA_WININ 0x00000048 /**< Control Inside of Window(s) */
-#define GBA_WINOUT 0x0000004A /**< Control Outside of Windows & Inside of OBJ Window */
-#define GBA_MOSAIC 0x0000004C /**< Mosaic Size */
-#define GBA_BLDCNT 0x00000050 /**< Color Special Effects Selection */
-#define GBA_BLDMOD 0x00000050 /**< Color Special Effects Selection X*/
-#define GBA_BLDALPHA 0x00000052 /**< Alpha Blending Coefficients */
-#define GBA_COLEV 0x00000052 /**< Alpha Blending Coefficients X*/
-#define GBA_BLDY 0x00000054 /**< Brightness (Fade-In/Out) Coefficient */
-#define GBA_COLY 0x00000054 /**< Brightness (Fade-In/Out) Coefficient X*/
-/* LCD I/O Register addresses */
-#define GBA_REG_DISPCNT_ADDR GBA_IO_REGS_ADDR + GBA_DISPCNT
-#define GBA_REG_DISPSTAT_ADDR GBA_IO_REGS_ADDR + GBA_DISPSTAT
-#define GBA_REG_VCOUNT_ADDR GBA_IO_REGS_ADDR + GBA_VCOUNT
-#define GBA_REG_BG0CNT_ADDR GBA_IO_REGS_ADDR + GBA_BG0CNT
-#define GBA_REG_BG1CNT_ADDR GBA_IO_REGS_ADDR + GBA_BG1CNT
-#define GBA_REG_BG2CNT_ADDR GBA_IO_REGS_ADDR + GBA_BG2CNT
-#define GBA_REG_BG3CNT_ADDR GBA_IO_REGS_ADDR + GBA_BG3CNT
-#define GBA_REG_BG0HOFS_ADDR GBA_IO_REGS_ADDR + GBA_BG0HOFS
-#define GBA_REG_BG0VOFS_ADDR GBA_IO_REGS_ADDR + GBA_BG0VOFS
-#define GBA_REG_BG1HOFS_ADDR GBA_IO_REGS_ADDR + GBA_BG1HOFS
-#define GBA_REG_BG1VOFS_ADDR GBA_IO_REGS_ADDR + GBA_BG1VOFS
-#define GBA_REG_BG2HOFS_ADDR GBA_IO_REGS_ADDR + GBA_BG2HOFS
-#define GBA_REG_BG2VOFS_ADDR GBA_IO_REGS_ADDR + GBA_BG2VOFS
-#define GBA_REG_BG3HOFS_ADDR GBA_IO_REGS_ADDR + GBA_BG3HOFS
-#define GBA_REG_BG3VOFS_ADDR GBA_IO_REGS_ADDR + GBA_BG3VOFS
-#define GBA_REG_BG2PA_ADDR GBA_IO_REGS_ADDR + GBA_BG2PA
-#define GBA_REG_BG2PB_ADDR GBA_IO_REGS_ADDR + GBA_BG2PB
-#define GBA_REG_BG2PC_ADDR GBA_IO_REGS_ADDR + GBA_BG2PC
-#define GBA_REG_BG2PD_ADDR GBA_IO_REGS_ADDR + GBA_BG2PD
-#define GBA_REG_BG2X_ADDR GBA_IO_REGS_ADDR + GBA_BG2X
-#define GBA_REG_BG2X_L_ADDR GBA_IO_REGS_ADDR + GBA_BG2X_L
-#define GBA_REG_BG2X_H_ADDR GBA_IO_REGS_ADDR + GBA_BG2X_H
-#define GBA_REG_BG2Y_ADDR GBA_IO_REGS_ADDR + GBA_BG2Y
-#define GBA_REG_BG2Y_L_ADDR GBA_IO_REGS_ADDR + GBA_BG2Y_L
-#define GBA_REG_BG2Y_H_ADDR GBA_IO_REGS_ADDR + GBA_BG2Y_H
-#define GBA_REG_BG3PA_ADDR GBA_IO_REGS_ADDR + GBA_BG3PA
-#define GBA_REG_BG3PB_ADDR GBA_IO_REGS_ADDR + GBA_BG3PB
-#define GBA_REG_BG3PC_ADDR GBA_IO_REGS_ADDR + GBA_BG3PC
-#define GBA_REG_BG3PD_ADDR GBA_IO_REGS_ADDR + GBA_BG3PD
-#define GBA_REG_BG3X_ADDR GBA_IO_REGS_ADDR + GBA_BG3X
-#define GBA_REG_BG3X_L_ADDR GBA_IO_REGS_ADDR + GBA_BG3X_L
-#define GBA_REG_BG3X_H_ADDR GBA_IO_REGS_ADDR + GBA_BG3X_H
-#define GBA_REG_BG3Y_ADDR GBA_IO_REGS_ADDR + GBA_BG3Y
-#define GBA_REG_BG3Y_L_ADDR GBA_IO_REGS_ADDR + GBA_BG3Y_L
-#define GBA_REG_BG3Y_H_ADDR GBA_IO_REGS_ADDR + GBA_BG3Y_H
-#define GBA_REG_WIN0H_ADDR GBA_IO_REGS_ADDR + GBA_WIN0H
-#define GBA_REG_WIN1H_ADDR GBA_IO_REGS_ADDR + GBA_WIN1H
-#define GBA_REG_WIN0V_ADDR GBA_IO_REGS_ADDR + GBA_WIN0V
-#define GBA_REG_WIN1V_ADDR GBA_IO_REGS_ADDR + GBA_WIN1V
-#define GBA_REG_WININ_ADDR GBA_IO_REGS_ADDR + GBA_WININ
-#define GBA_REG_WINOUT_ADDR GBA_IO_REGS_ADDR + GBA_WINOUT
-#define GBA_REG_MOSAIC_ADDR GBA_IO_REGS_ADDR + GBA_MOSAIC
-#define GBA_REG_BLDCNT_ADDR GBA_IO_REGS_ADDR + GBA_BLDCNT
-#define GBA_REG_BLDMOD_ADDR GBA_IO_REGS_ADDR + GBA_BLDMOD
-#define GBA_REG_BLDALPHA_ADDR GBA_IO_REGS_ADDR + GBA_BLDALPHA
-#define GBA_REG_COLEV_ADDR GBA_IO_REGS_ADDR + GBA_COLEV
-#define GBA_REG_BLDY_ADDR GBA_IO_REGS_ADDR + GBA_BLDY
-#define GBA_REG_COLY_ADDR GBA_IO_REGS_ADDR + GBA_COLY
-/* LCD I/O Registers */
-#ifndef __asm__
-#define GBA_REG_DISPCNT (*(volatile unsigned short *)(GBA_REG_DISPCNT_ADDR))
-#define GBA_REG_DISPSTAT (*(volatile unsigned short *)(GBA_REG_DISPSTAT_ADDR))
-#define GBA_REG_VCOUNT (*(volatile unsigned short *)(GBA_REG_VCOUNT_ADDR))
-#define GBA_REG_BG0CNT (*(volatile unsigned short *)(GBA_REG_BG0CNT_ADDR))
-#define GBA_REG_BG1CNT (*(volatile unsigned short *)(GBA_REG_BG1CNT_ADDR))
-#define GBA_REG_BG2CNT (*(volatile unsigned short *)(GBA_REG_BG2CNT_ADDR))
-#define GBA_REG_BG3CNT (*(volatile unsigned short *)(GBA_REG_BG3CNT_ADDR))
-#define GBA_REG_BG0HOFS (*(volatile unsigned short *)(GBA_REG_BG0HOFS_ADDR))
-#define GBA_REG_BG0VOFS (*(volatile unsigned short *)(GBA_REG_BG0VOFS_ADDR))
-#define GBA_REG_BG1HOFS (*(volatile unsigned short *)(GBA_REG_BG1HOFS_ADDR))
-#define GBA_REG_BG1VOFS (*(volatile unsigned short *)(GBA_REG_BG1VOFS_ADDR))
-#define GBA_REG_BG2HOFS (*(volatile unsigned short *)(GBA_REG_BG2HOFS_ADDR))
-#define GBA_REG_BG2VOFS (*(volatile unsigned short *)(GBA_REG_BG2VOFS_ADDR))
-#define GBA_REG_BG3HOFS (*(volatile unsigned short *)(GBA_REG_BG3HOFS_ADDR))
-#define GBA_REG_BG3VOFS (*(volatile unsigned short *)(GBA_REG_BG3VOFS_ADDR))
-#define GBA_REG_BG2PA (*(volatile unsigned short *)(GBA_REG_BG2PA_ADDR))
-#define GBA_REG_BG2PB (*(volatile unsigned short *)(GBA_REG_BG2PB_ADDR))
-#define GBA_REG_BG2PC (*(volatile unsigned short *)(GBA_REG_BG2PC_ADDR))
-#define GBA_REG_BG2PD (*(volatile unsigned short *)(GBA_REG_BG2PD_ADDR))
-#define GBA_REG_BG2X (*(volatile unsigned int *)(GBA_REG_BG2X_ADDR))
-#define GBA_REG_BG2X_L (*(volatile unsigned short *)(GBA_REG_BG2X_L_ADDR))
-#define GBA_REG_BG2X_H (*(volatile unsigned short *)(GBA_REG_BG2X_H_ADDR))
-#define GBA_REG_BG2Y (*(volatile unsigned int *)(GBA_REG_BG2Y_ADDR))
-#define GBA_REG_BG2Y_L (*(volatile unsigned short *)(GBA_REG_BG2Y_L_ADDR))
-#define GBA_REG_BG2Y_H (*(volatile unsigned short *)(GBA_REG_BG2Y_H_ADDR))
-#define GBA_REG_BG3PA (*(volatile unsigned short *)(GBA_REG_BG3PA_ADDR))
-#define GBA_REG_BG3PB (*(volatile unsigned short *)(GBA_REG_BG3PB_ADDR))
-#define GBA_REG_BG3PC (*(volatile unsigned short *)(GBA_REG_BG3PC_ADDR))
-#define GBA_REG_BG3PD (*(volatile unsigned short *)(GBA_REG_BG3PD_ADDR))
-#define GBA_REG_BG3X (*(volatile unsigned int *)(GBA_REG_BG3X_ADDR))
-#define GBA_REG_BG3X_L (*(volatile unsigned short *)(GBA_REG_BG3X_L_ADDR))
-#define GBA_REG_BG3X_H (*(volatile unsigned short *)(GBA_REG_BG3X_H_ADDR))
-#define GBA_REG_BG3Y (*(volatile unsigned int *)(GBA_REG_BG3Y_ADDR))
-#define GBA_REG_BG3Y_L (*(volatile unsigned short *)(GBA_REG_BG3Y_L_ADDR))
-#define GBA_REG_BG3Y_H (*(volatile unsigned short *)(GBA_REG_BG3Y_H_ADDR))
-#define GBA_REG_WIN0H (*(volatile unsigned short *)(GBA_REG_WIN0H_ADDR))
-#define GBA_REG_WIN1H (*(volatile unsigned short *)(GBA_REG_WIN1H_ADDR))
-#define GBA_REG_WIN0V (*(volatile unsigned short *)(GBA_REG_WIN0V_ADDR))
-#define GBA_REG_WIN1V (*(volatile unsigned short *)(GBA_REG_WIN1V_ADDR))
-#define GBA_REG_WININ (*(volatile unsigned short *)(GBA_REG_WININ_ADDR))
-#define GBA_REG_WINOUT (*(volatile unsigned short *)(GBA_REG_WINOUT_ADDR))
-#define GBA_REG_MOSAIC (*(volatile unsigned short *)(GBA_REG_MOSAIC_ADDR))
-#define GBA_REG_BLDCNT (*(volatile unsigned short *)(GBA_REG_BLDCNT_ADDR))
-#define GBA_REG_BLDMOD (*(volatile unsigned short *)(GBA_REG_BLDMOD_ADDR))
-#define GBA_REG_BLDALPHA (*(volatile unsigned short *)(GBA_REG_BLDALPHA_ADDR))
-#define GBA_REG_COLEV (*(volatile unsigned short *)(GBA_REG_COLEV_ADDR))
-#define GBA_REG_BLDY (*(volatile unsigned short *)(GBA_REG_BLDY_ADDR))
-#define GBA_REG_COLY (*(volatile unsigned short *)(GBA_REG_COLY_ADDR))
-#endif
-/*---------------------------------------------------------------------------+
-| SOUND
-+----------------------------------------------------------------------------*/
-#define GBA_SOUND_INIT 0x8000 /**< makes the sound restart */
-#define GBA_SOUND_DUTY87 0x0000 /**< 87.5% wave duty */
-#define GBA_SOUND_DUTY75 0x0040 /**< 75% wave duty */
-#define GBA_SOUND_DUTY50 0x0080 /**< 50% wave duty */
-#define GBA_SOUND_DUTY25 0x00C0 /**< 25% wave duty */
-
-#define GBA_SOUND1_PLAYONCE 0x4000 /**< play sound once */
-#define GBA_SOUND1_PLAYLOOP 0x0000 /**< play sound looped */
-#define GBA_SOUND1_INIT 0x8000 /**< makes the sound restart */
-#define GBA_SOUND1_SWEEPSHIFTS(n)(n) /**< number of sweep shifts (0-7) */
-#define GBA_SOUND1_SWEEPINC 0x0000 /**< sweep add (freq increase) */
-#define GBA_SOUND1_SWEEPDEC 0x0008 /**< sweep dec (freq decrese) */
-#define GBA_SOUND1_SWEEPTIME(n) (n<<4) /**< time of sweep (0-7) */
-#define GBA_SOUND1_ENVSTEPS(n) (n<<8) /**< envelope steps (0-7) */
-#define GBA_SOUND1_ENVINC 0x0800 /**< envelope increase */
-#define GBA_SOUND1_ENVDEC 0x0000 /**< envelope decrease */
-#define GBA_SOUND1_ENVINIT(n) (n<<12) /**< initial envelope volume (0-15)*/
-
-#define GBA_SOUND2_PLAYONCE 0x4000 /**< play sound once */
-#define GBA_SOUND2_PLAYLOOP 0x0000 /**< play sound looped */
-#define GBA_SOUND2_INIT 0x8000 /**< makes the sound restart */
-#define GBA_SOUND2_ENVSTEPS(n) (n<<8) /**< envelope steps (0-7) */
-#define GBA_SOUND2_ENVINC 0x0800 /**< envelope increase */
-#define GBA_SOUND2_ENVDEC 0x0000 /**< envelope decrease */
-#define GBA_SOUND2_ENVINIT(n) (n<<12) /**< initial envelope volume (0-15)*/
-
-#define GBA_SOUND3_BANK32 0x0000 /**< Use two banks of 32 steps each*/
-#define GBA_SOUND3_BANK64 0x0020 /**< Use one bank of 64 steps */
-#define GBA_SOUND3_SETBANK0 0x0000 /**< Bank to play 0 or 1 (non set bank is written to) */
-#define GBA_SOUND3_SETBANK1 0x0040
-#define GBA_SOUND3_PLAY 0x0080 /**< Output sound */
-
-#define GBA_SOUND3_OUTPUT0 0x0000 /**< Mute output */
-#define GBA_SOUND3_OUTPUT1 0x2000 /**< Output unmodified */
-#define GBA_SOUND3_OUTPUT12 0x4000 /**< Output 1/2 */
-#define GBA_SOUND3_OUTPUT14 0x6000 /**< Output 1/4 */
-#define GBA_SOUND3_OUTPUT34 0x8000 /**< Output 3/4 */
-
-#define GBA_SOUND3_PLAYONCE 0x4000 /**< Play sound once */
-#define GBA_SOUND3_PLAYLOOP 0x0000 /**< Play sound looped */
-#define GBA_SOUND3_INIT 0x8000 /**< Makes the sound restart */
-
-#define GBA_SOUND4_PLAYONCE 0x4000 /**< play sound once */
-#define GBA_SOUND4_PLAYLOOP 0x0000 /**< play sound looped */
-#define GBA_SOUND4_INIT 0x8000 /**< makes the sound restart */
-#define GBA_SOUND4_ENVSTEPS(n) (n<<8) /**< envelope steps (0-7) */
-#define GBA_SOUND4_ENVINC 0x0800 /**< envelope increase */
-#define GBA_SOUND4_ENVDEC 0x0000 /**< envelope decrease */
-#define GBA_SOUND4_ENVINIT(n) (n<<12) /**< initial envelope volume (0-15)*/
-
-#define GBA_SOUND4_STEPS7 0x0004
-#define GBA_SOUND4_STEPS15 0x0000
-#define GBA_SOUND4_PLAYONCE 0x4000
-#define GBA_SOUND4_PLAYLOOP 0x0000
-#define GBA_SOUND4_INIT 0x8000
-
-/* Sound Register address offsets */
-#define GBA_SOUND1CNT_L 0x00000060 /**< Channel 1 sweep */
-#define GBA_SG10 0x00000060 /**< Channel 1 sweep low X*/
-#define GBA_SG10_L 0x00000060 /**< Channel 1 sweep high X*/
-#define GBA_SOUND1CNT_H 0x00000062 /**< Channel 1 Duty/Len/Env */
-#define GBA_SG10_H 0x00000062 /**< Channel 1 Duty/Len/Env X*/
-#define GBA_SOUND1CNT_X 0x00000064 /**< Channel 1 Freq/Control */
-#define GBA_SG11 0x00000064 /**< Channel 1 Freq/Control X*/
-#define GBA_SOUND2CNT_L 0x00000068 /**< Channel 2 Duty/Len/Env */
-#define GBA_SG20 0x00000068 /**< Channel 2 Duty/Len/Env X*/
-#define GBA_SOUND2CNT_H 0x0000006C /**< Channel 2 Freq/Control */
-#define GBA_SG21 0x0000006C /**< Channel 2 Freq/Control X*/
-#define GBA_SOUND3CNT_L 0x00000070 /**< Channel 3 Stop/Wave RAM */
-#define GBA_SG30 0x00000070 /**< Channel 3 Stop/Wave RAM X*/
-#define GBA_SG30_L 0x00000070 /**< Channel 3 Stop/Wave RAM X*/
-#define GBA_SOUND3CNT_H 0x00000072 /**< Channel 3 Len/Vol */
-#define GBA_SG30_H 0x00000072 /**< Channel 3 Len/Vol X*/
-#define GBA_SOUND3CNT_X 0x00000074 /**< Channel 3 Freq/Control */
-#define GBA_SG31 0x00000074 /**< Channel 3 Freq/Control X*/
-#define GBA_SOUND4CNT_L 0x00000078 /**< Channel 4 Len/Env */
-#define GBA_SG40 0x00000078 /**< Channel 4 Len/Env X*/
-#define GBA_SOUND4CNT_H 0x0000007C /**< Channel 4 Freq/Control */
-#define GBA_SG41 0x0000007C /**< Channel 4 Freq/Control X*/
-#define GBA_SOUNDCNT_L 0x00000080 /**< Control LR/Vol/Enable */
-#define GBA_SGCNT0_L 0x00000080 /**< Control LR/Vol/Enable X*/
-#define GBA_SOUNDCNT_H 0x00000082 /**< Control Mixing/DMA */
-#define GBA_SGCNT0_H 0x00000082 /**< Control Mixing/DMA X*/
-#define GBA_SOUNDCNT_X 0x00000084 /**< Control Sound on/off */
-#define GBA_SGCNT1 0x00000084 /**< Control Sound on/off X*/
-#define GBA_SOUNDBIAS 0x00000088 /**< Sound PWM control */
-#define GBA_SGBIAS 0x00000088 /**< Sound PWM control X*/
-#define GBA_SGWR0 0x00000090 /**< Ch3 Wave Pattern RAM X*/
-#define GBA_WAVE_RAM0_L 0x00000090 /**< Ch3 Wave Pattern RAM */
-#define GBA_SGWR0_L 0x00000090 /**< Ch3 Wave Pattern RAM X*/
-#define GBA_WAVE_RAM0_H 0x00000092 /**< Ch3 Wave Pattern RAM */
-#define GBA_SGWR0_H 0x00000092 /**< Ch3 Wave Pattern RAM X*/
-#define GBA_SGWR1 0x00000094 /**< Ch3 Wave Pattern RAM X*/
-#define GBA_WAVE_RAM1_L 0x00000094 /**< Ch3 Wave Pattern RAM */
-#define GBA_SGWR1_L 0x00000094 /**< Ch3 Wave Pattern RAM X*/
-#define GBA_WAVE_RAM1_H 0x00000096 /**< Ch3 Wave Pattern RAM */
-#define GBA_SGWR1_H 0x00000096 /**< Ch3 Wave Pattern RAM X*/
-#define GBA_SGWR2 0x00000098 /**< Ch3 Wave Pattern RAM X*/
-#define GBA_WAVE_RAM2_L 0x00000098 /**< Ch3 Wave Pattern RAM */
-#define GBA_SGWR2_L 0x00000098 /**< Ch3 Wave Pattern RAM X*/
-#define GBA_WAVE_RAM2_H 0x0000009A /**< Ch3 Wave Pattern RAM */
-#define GBA_SGWR2_H 0x0000009A /**< Ch3 Wave Pattern RAM X*/
-#define GBA_SGWR3 0x0000009C /**< Ch3 Wave Pattern RAM X*/
-#define GBA_WAVE_RAM3_L 0x0000009C /**< Ch3 Wave Pattern RAM */
-#define GBA_SGWR3_L 0x0000009C /**< Ch3 Wave Pattern RAM X*/
-#define GBA_WAVE_RAM3_H 0x0000009E /**< Ch3 Wave Pattern RAM */
-#define GBA_SGWR3_H 0x0000009E /**< Ch3 Wave Pattern RAM X*/
-#define GBA_SGFIF0A 0x000000A0 /**< Sound A FIFO X*/
-#define GBA_FIFO_A_L 0x000000A0 /**< Sound A FIFO */
-#define GBA_SGFIFOA_L 0x000000A0 /**< Sound A FIFO X*/
-#define GBA_FIFO_A_H 0x000000A2 /**< Sound A FIFO */
-#define GBA_SGFIFOA_H 0x000000A2 /**< Sound A FIFO X*/
-#define GBA_SGFIFOB 0x000000A4 /**< Sound B FIFO X*/
-#define GBA_FIFO_B_L 0x000000A4 /**< Sound B FIFO */
-#define GBA_SGFIFOB_L 0x000000A4 /**< Sound B FIFO X*/
-#define GBA_FIFO_B_H 0x000000A6 /**< Sound B FIFO */
-#define GBA_SGFIFOB_H 0x000000A6 /**< Sound B FIFO X*/
-/* Sound Registers addresses */
-#define GBA_REG_SOUND1CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_SOUND1CNT_L
-#define GBA_REG_SG10_ADDR GBA_IO_REGS_ADDR + GBA_SG10
-#define GBA_REG_SG10_L_ADDR GBA_IO_REGS_ADDR + GBA_SG10_L
-#define GBA_REG_SOUND1CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_SOUND1CNT_H
-#define GBA_REG_SG10_H_ADDR GBA_IO_REGS_ADDR + GBA_SG10_H
-#define GBA_REG_SOUND1CNT_X_ADDR GBA_IO_REGS_ADDR + GBA_SOUND1CNT_X
-#define GBA_REG_SG11_ADDR GBA_IO_REGS_ADDR + GBA_SG11
-#define GBA_REG_SOUND2CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_SOUND2CNT_L
-#define GBA_REG_SG20_ADDR GBA_IO_REGS_ADDR + GBA_SG20
-#define GBA_REG_SOUND2CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_SOUND2CNT_H
-#define GBA_REG_SG21_ADDR GBA_IO_REGS_ADDR + GBA_SG21
-#define GBA_REG_SOUND3CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_SOUND3CNT_L
-#define GBA_REG_SG30_ADDR GBA_IO_REGS_ADDR + GBA_SG30
-#define GBA_REG_SG30_L_ADDR GBA_IO_REGS_ADDR + GBA_SG30_L
-#define GBA_REG_SOUND3CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_SOUND3CNT_H
-#define GBA_REG_SG30_H_ADDR GBA_IO_REGS_ADDR + GBA_SG30_H
-#define GBA_REG_SOUND3CNT_X_ADDR GBA_IO_REGS_ADDR + GBA_SOUND3CNT_X
-#define GBA_REG_SG31_ADDR GBA_IO_REGS_ADDR + GBA_SG31
-#define GBA_REG_SOUND4CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_SOUND4CNT_L
-#define GBA_REG_SG40_ADDR GBA_IO_REGS_ADDR + GBA_SG40
-#define GBA_REG_SOUND4CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_SOUND4CNT_H
-#define GBA_REG_SG41_ADDR GBA_IO_REGS_ADDR + GBA_SG41
-#define GBA_REG_SOUNDCNT_L_ADDR GBA_IO_REGS_ADDR + GBA_SOUNDCNT_L
-#define GBA_REG_SGCNT0_L_ADDR GBA_IO_REGS_ADDR + GBA_SGCNT0_L
-#define GBA_REG_SOUNDCNT_H_ADDR GBA_IO_REGS_ADDR + GBA_SOUNDCNT_H
-#define GBA_REG_SGCNT0_H_ADDR GBA_IO_REGS_ADDR + GBA_SGCNT0_H
-#define GBA_REG_SOUNDCNT_X_ADDR GBA_IO_REGS_ADDR + GBA_SOUNDCNT_X
-#define GBA_REG_SGCNT1_ADDR GBA_IO_REGS_ADDR + GBA_SGCNT1
-#define GBA_REG_SGBIAS_ADDR GBA_IO_REGS_ADDR + GBA_SGBIAS
-#define GBA_REG_SOUNDBIAS_ADDR GBA_IO_REGS_ADDR + GBA_SOUNDBIAS
-#define GBA_REG_SGWR0_ADDR GBA_IO_REGS_ADDR + GBA_SGWR0
-#define GBA_REG_WAVE_RAM0_L_ADDR GBA_IO_REGS_ADDR + GBA_WAVE_RAM0_L
-#define GBA_REG_SGWR0_L_ADDR GBA_IO_REGS_ADDR + GBA_SGWR0_L
-#define GBA_REG_WAVE_RAM0_H_ADDR GBA_IO_REGS_ADDR + GBA_WAVE_RAM0_H
-#define GBA_REG_SGWR0_H_ADDR GBA_IO_REGS_ADDR + GBA_SGWR0_H
-#define GBA_REG_SGWR1_ADDR GBA_IO_REGS_ADDR + GBA_SGWR1
-#define GBA_REG_WAVE_RAM1_L_ADDR GBA_IO_REGS_ADDR + GBA_WAVE_RAM1_L
-#define GBA_REG_SGWR1_L_ADDR GBA_IO_REGS_ADDR + GBA_SGWR1_L
-#define GBA_REG_WAVE_RAM1_H_ADDR GBA_IO_REGS_ADDR + GBA_WAVE_RAM1_H
-#define GBA_REG_SGWR1_H_ADDR GBA_IO_REGS_ADDR + GBA_SGWR1_H
-#define GBA_REG_SGWR2_ADDR GBA_IO_REGS_ADDR + GBA_SGWR2
-#define GBA_REG_WAVE_RAM2_L_ADDR GBA_IO_REGS_ADDR + GBA_WAVE_RAM2_L
-#define GBA_REG_SGWR2_L_ADDR GBA_IO_REGS_ADDR + GBA_SGWR2_L
-#define GBA_REG_WAVE_RAM2_H_ADDR GBA_IO_REGS_ADDR + GBA_WAVE_RAM2_H
-#define GBA_REG_SGWR2_H_ADDR GBA_IO_REGS_ADDR + GBA_SGWR2_H
-#define GBA_REG_SGWR3_ADDR GBA_IO_REGS_ADDR + GBA_SGWR3
-#define GBA_REG_WAVE_RAM3_L_ADDR GBA_IO_REGS_ADDR + GBA_WAVE_RAM3_L
-#define GBA_REG_SGWR3_L_ADDR GBA_IO_REGS_ADDR + GBA_SGWR3_L
-#define GBA_REG_WAVE_RAM3_H_ADDR GBA_IO_REGS_ADDR + GBA_WAVE_RAM3_H
-#define GBA_REG_SGWR3_H_ADDR GBA_IO_REGS_ADDR + GBA_SGWR3_H
-#define GBA_REG_SGFIF0A_ADDR GBA_IO_REGS_ADDR + GBA_SGFIF0A
-#define GBA_REG_FIFO_A_L_ADDR GBA_IO_REGS_ADDR + GBA_FIFO_A_L
-#define GBA_REG_SGFIFOA_L_ADDR GBA_IO_REGS_ADDR + GBA_SGFIFOA_L
-#define GBA_REG_FIFO_A_H_ADDR GBA_IO_REGS_ADDR + GBA_FIFO_A_H
-#define GBA_REG_SGFIFOA_H_ADDR GBA_IO_REGS_ADDR + GBA_SGFIFOA_H
-#define GBA_REG_SGFIFOB_ADDR GBA_IO_REGS_ADDR + GBA_SGFIFOB
-#define GBA_REG_FIFO_B_L_ADDR GBA_IO_REGS_ADDR + GBA_FIFO_B_L
-#define GBA_REG_SGFIFOB_L_ADDR GBA_IO_REGS_ADDR + GBA_SGFIFOB_L
-#define GBA_REG_FIFO_B_H_ADDR GBA_IO_REGS_ADDR + GBA_FIFO_B_H
-#define GBA_REG_SGFIFOB_H_ADDR GBA_IO_REGS_ADDR + GBA_SGFIFOB_H
-/* Sound Registers */
-#ifndef __asm__
-#define GBA_REG_SOUND1CNT_L (*(volatile unsigned int *)(GBA_REG_SOUND1CNT_L_ADDR))
-#define GBA_REG_SG10 (*(volatile unsigned int *)(GBA_REG_SG10_ADDR))
-#define GBA_REG_SG10_L (*(volatile unsigned short *)(GBA_REG_SG10_L_ADDR))
-#define GBA_REG_SOUND1CNT_H (*(volatile unsigned short *)(GBA_REG_SOUND1CNT_H_ADDR))
-#define GBA_REG_SG10_H (*(volatile unsigned short *)(GBA_REG_SG10_H_ADDR))
-#define GBA_REG_SOUND1CNT_X (*(volatile unsigned short *)(GGBA_REG_SOUND1CNT_X_ADDR))
-#define GBA_REG_SG11 (*(volatile unsigned short *)(GBA_REG_SG11_ADDR))
-#define GBA_REG_SOUND2CNT_L (*(volatile unsigned short *)(GBA_REG_SOUND2CNT_L_ADDR))
-#define GBA_REG_SG20 (*(volatile unsigned short *)(GBA_REG_SG20_ADDR))
-#define GBA_REG_SOUND2CNT_H (*(volatile unsigned short *)(GBA_REG_SOUND2CNT_H_ADDR))
-#define GBA_REG_SG21 (*(volatile unsigned short *)(GBA_REG_SG21_ADDR))
-#define GBA_REG_SOUND3CNT_L (*(volatile unsigned int *)(GBA_REG_SOUND3CNT_L_ADDR))
-#define GBA_REG_SG30 (*(volatile unsigned int *)(GBA_REG_SG30_ADDR))
-#define GBA_REG_SG30_L (*(volatile unsigned short *)(GBA_REG_SG30_L_ADDR))
-#define GBA_REG_SOUND3CNT_H (*(volatile unsigned short *)(GBA_REG_SOUND3CNT_H_ADDR))
-#define GBA_REG_SG30_H (*(volatile unsigned short *)(GBA_REG_SG30_H_ADDR))
-#define GBA_REG_SOUND3CNT_X (*(volatile unsigned short *)(GBA_REG_SOUND3CNT_X_ADDR))
-#define GBA_REG_SG31 (*(volatile unsigned short *)(GBA_REG_SG31_ADDR))
-#define GBA_REG_SOUND4CNT_L (*(volatile unsigned short *)(GBA_REG_SOUND4CNT_L_ADDR))
-#define GBA_REG_SG40 (*(volatile unsigned short *)(GBA_REG_SG40_ADDR))
-#define GBA_REG_SOUND4CNT_H (*(volatile unsigned short *)(GBA_REG_SOUND4CNT_H_ADDR))
-#define GBA_REG_SG41 (*(volatile unsigned short *)(GBA_REG_SG41_ADDR))
-#define GBA_REG_SGCNT0 (*(volatile unsigned int *)(GBA_REG_SGCNT0_ADDR))
-#define GBA_REG_SOUNDCNT_L (*(volatile unsigned short *)(GBA_REG_SOUNDCNT_L_ADDR))
-#define GBA_REG_SGCNT0_L (*(volatile unsigned short *)(GBA_REG_SGCNT0_L_ADDR))
-#define GBA_REG_SOUNDCNT_H (*(volatile unsigned short *)(GBA_REG_SOUNDCNT_H_ADDR))
-#define GBA_REG_SGCNT0_H (*(volatile unsigned short *)(GBA_REG_SGCNT0_H_ADDR))
-#define GBA_REG_SOUNDCNT_X (*(volatile unsigned short *)(GBA_REG_SOUNDCNT_X_ADDR))
-#define GBA_REG_SGCNT1 (*(volatile unsigned short *)(GBA_REG_SGCNT1_ADDR))
-#define GBA_REG_SOUNDBIAS (*(volatile unsigned short *)(GBA_REG_SOUNDBIAS_ADDR))
-#define GBA_REG_SGBIAS (*(volatile unsigned short *)(GBA_REG_SGBIAS_ADDR))
-#define GBA_REG_SGWR0 (*(volatile unsigned int *)(GBA_REG_SGWR0_ADDR))
-#define GBA_REG_WAVE_RAM0_L (*(volatile unsigned short *)(GBA_REG_WAVE_RAM0_L_ADDR))
-#define GBA_REG_SGWR0_L (*(volatile unsigned short *)(GBA_REG_SGWR0_L_ADDR))
-#define GBA_REG_WAVE_RAM0_H (*(volatile unsigned short *)(GBA_REG_WAVE_RAM0_H_ADDR))
-#define GBA_REG_SGWR0_H (*(volatile unsigned short *)(GBA_REG_SGWR0_H_ADDR))
-#define GBA_REG_SGWR1 (*(volatile unsigned int *)(GBA_REG_SGWR1_ADDR))
-#define GBA_REG_WAVE_RAM1_L (*(volatile unsigned short *)(GBA_REG_WAVE_RAM1_L_ADDR))
-#define GBA_REG_SGWR1_L (*(volatile unsigned short *)(GBA_REG_SGWR1_L_ADDR))
-#define GBA_REG_WAVE_RAM1_H (*(volatile unsigned short *)(GBA_REG_WAVE_RAM1_H_ADDR))
-#define GBA_REG_SGWR1_H (*(volatile unsigned short *)(GBA_REG_SGWR1_H_ADDR))
-#define GBA_REG_SGWR2 (*(volatile unsigned int *)(GBA_REG_SGWR2_ADDR))
-#define GBA_REG_WAVE_RAM2_L (*(volatile unsigned short *)(GBA_REG_WAVE_RAM2_L_ADDR))
-#define GBA_REG_SGWR2_L (*(volatile unsigned short *)(GBA_REG_SGWR2_L_ADDR))
-#define GBA_REG_WAVE_RAM2_H (*(volatile unsigned short *)(GGBA_REG_WAVE_RAM2_H_ADDR))
-#define GBA_REG_SGWR2_H (*(volatile unsigned short *)(GGBA_REG_SGWR2_H_ADDR))
-#define GBA_REG_SGWR3 (*(volatile unsigned int *)(GBA_REG_SGWR3_ADDR))
-#define GBA_REG_WAVE_RAM3_L (*(volatile unsigned short *)(GBA_REG_WAVE_RAM3_L)
-#define GBA_REG_SGWR3_L (*(volatile unsigned short *)(GBA_REG_SGWR3_L)
-#define GBA_REG_WAVE_RAM3_H (*(volatile unsigned short *)(GBA_REG_WAVE_RAM3_H_ADDR))
-#define GBA_REG_SGWR3_H (*(volatile unsigned short *)(GBA_REG_SGWR3_H_ADDR))
-#define GBA_REG_SGFIF0A (*(volatile unsigned int *)(GBA_REG_SGFIF0A_ADDR))
-#define GBA_REG_FIFO_A_L (*(volatile unsigned short *)(GBA_REG_FIFO_A_L_ADDR))
-#define GBA_REG_SGFIFOA_L (*(volatile unsigned short *)(GBA_REG_SGFIFOA_L_ADDR))
-#define GBA_REG_FIFO_A_H (*(volatile unsigned short *)(GBA_REG_FIFO_A_H_ADDR))
-#define GBA_REG_SGFIFOA_H (*(volatile unsigned short *)(GBA_REG_SGFIFOA_H_ADDR))
-#define GBA_REG_SGFIFOB (*(volatile unsigned int *)(GBA_REG_SGFIFOB_ADDR))
-#define GBA_REG_FIFO_B_L (*(volatile unsigned short *)(GBA_REG_FIFO_B_L_ADDR))
-#define GBA_REG_SGFIFOB_L (*(volatile unsigned short *)(GBA_REG_SGFIFOB_L_ADDR))
-#define GBA_REG_FIFO_B_H (*(volatile unsigned short *)(GBA_REG_FIFO_B_H_ADDR))
-#define GBA_REG_SGFIFOB_H (*(volatile unsigned short *)(GBA_REG_SGFIFOB_H_ADDR))
-#endif
-
-/*---------------------------------------------------------------------------+
-| DMA
-+----------------------------------------------------------------------------*/
-#define GBA_DMA_ENABLE 0x80000000 /**< DMA Enable */
-#define GBA_DMA_IF_ENABLE 0x40000000 /**< Interrupt Request Enable */
-#define GBA_DMA_TIMMING_IMM 0x00000000 /**< Run Immediately */
-#define GBA_DMA_TIMMING_V_BLANK 0x10000000 /**< Run V Blank */
-#define GBA_DMA_TIMMING_H_BLANK 0x20000000 /**< Run H Blank */
-#define GBA_DMA_TIMMING_DISP 0x30000000 /**< Run Display */
-#define GBA_DMA_TIMMING_SOUND 0x30000000 /**< Run Sound FIFO Request */
-#define GBA_DMA_DREQ_ON 0x08000000 /**< Data Request Synchronize Mode ON */
-#define GBA_DMA_16BIT_BUS 0x00000000 /**< Select Bus Size 16Bit */
-#define GBA_DMA_32BIT_BUS 0x04000000 /**< Select Bus Size 32Bit */
-#define GBA_DMA_CONTINUOUS_ON 0x02000000 /**< Continuous Mode ON */
-#define GBA_DMA_SRC_INC 0x00000000 /**< Select Source Increment */
-#define GBA_DMA_SRC_DEC 0x00800000 /**< Select Source Decrement */
-#define GBA_DMA_SRC_FIX 0x01000000 /**< Select Source Fixed */
-#define GBA_DMA_DEST_INC 0x00000000 /**< Select Destination Increment */
-#define GBA_DMA_DEST_DEC 0x00200000 /**< Select Destination Decrement */
-#define GBA_DMA_DEST_FIX 0x00400000 /**< Select Destination Fixed */
-#define GBA_DMA_DEST_RELOAD 0x00600000 /**< Select Destination */
-
-
-/* DMA Transfer Channel address offsets */
-#define GBA_DMA0SAD 0x000000B0 /**< DMA0 Source Address */
-#define GBA_DMA0SAD_L 0x000000B0 /**< DMA0 Source Address Low Value */
-#define GBA_DMA0SAD_H 0x000000B2 /**< DMA0 Source Address High Value */
-#define GBA_DMA0DAD 0x000000B4 /**< DMA0 Destination Address */
-#define GBA_DMA0DAD_L 0x000000B4 /**< DMA0 Destination Address Low Value */
-#define GBA_DMA0DAD_H 0x000000B6 /**< DMA0 Destination Address High Value */
-#define GBA_DMA0CNT 0x000000B8 /**< DMA0 Control Word Count */
-#define GBA_DMA0CNT_L 0x000000B8 /**< DMA0 Control Low Value */
-#define GBA_DMA0CNT_H 0x000000BA /**< DMA0 Control High Value */
-#define GBA_DMA1SAD 0x000000BC /**< DMA1 Source Address */
-#define GBA_DMA1SAD_L 0x000000BC /**< DMA1 Source Address Low Value */
-#define GBA_DMA1SAD_H 0x000000BE /**< DMA1 Source Address High Value */
-#define GBA_DMA1DAD 0x000000C0 /**< DMA1 Destination Address */
-#define GBA_DMA1DAD_L 0x000000C0 /**< DMA1 Destination Address Low Value */
-#define GBA_DMA1DAD_H 0x000000C2 /**< DMA1 Destination Address High Value */
-#define GBA_DMA1CNT 0x000000C4 /**< DMA1 Control Word Count */
-#define GBA_DMA1CNT_L 0x000000C4 /**< DMA1 Control Low Value */
-#define GBA_DMA1CNT_H 0x000000C6 /**< DMA1 Control High Value */
-#define GBA_DMA2SAD 0x000000C8 /**< DMA2 Source Address */
-#define GBA_DMA2SAD_L 0x000000C8 /**< DMA2 Source Address Low Value */
-#define GBA_DMA2SAD_H 0x000000CA /**< DMA2 Source Address High Value */
-#define GBA_DMA2DAD 0x000000CC /**< DMA2 Destination Address */
-#define GBA_DMA2DAD_L 0x000000CC /**< DMA2 Destination Address Low Value */
-#define GBA_DMA2DAD_H 0x000000CE /**< DMA2 Destination Address High Value */
-#define GBA_DMA2CNT 0x000000D0 /**< DMA2 Control Word Count */
-#define GBA_DMA2CNT_L 0x000000D0 /**< DMA2 Control Low Value */
-#define GBA_DMA2CNT_H 0x000000D2 /**< DMA2 Control High Value */
-#define GBA_DMA3SAD 0x000000D4 /**< DMA3 Source Address */
-#define GBA_DMA3SAD_L 0x000000D4 /**< DMA3 Source Address Low Value */
-#define GBA_DMA3SAD_H 0x000000D6 /**< DMA3 Source Address High Value */
-#define GBA_DMA3DAD 0x000000D8 /**< DMA3 Destination Address */
-#define GBA_DMA3DAD_L 0x000000D8 /**< DMA3 Destination Address Low Value */
-#define GBA_DMA3DAD_H 0x000000DA /**< DMA3 Destination Address High Value */
-#define GBA_DMA3CNT 0x000000DC /**< DMA3 Control Word Count */
-#define GBA_DMA3CNT_L 0x000000DC /**< DMA3 Control Low Value */
-#define GBA_DMA3CNT_H 0x000000DE /**< DMA3 Control High Value */
-/* DMA Transfer Channel address */
-#define GBA_REG_DMA0SAD_ADDR GBA_IO_REGS_ADDR + GBA_DMA0SAD
-#define GBA_REG_DMA0SAD_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA0SAD_L
-#define GBA_REG_DMA0SAD_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA0SAD_H
-#define GBA_REG_DMA0DAD_ADDR GBA_IO_REGS_ADDR + GBA_DMA0DAD
-#define GBA_REG_DMA0DAD_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA0DAD_L
-#define GBA_REG_DMA0DAD_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA0DAD_H
-#define GBA_REG_DMA0CNT_ADDR GBA_IO_REGS_ADDR + GBA_DMA0CNT
-#define GBA_REG_DMA0CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA0CNT_L
-#define GBA_REG_DMA0CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA0CNT_H
-#define GBA_REG_DMA1SAD_ADDR GBA_IO_REGS_ADDR + GBA_DMA1SAD
-#define GBA_REG_DMA1SAD_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA1SAD_L
-#define GBA_REG_DMA1SAD_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA1SAD_H
-#define GBA_REG_DMA1DAD_ADDR GBA_IO_REGS_ADDR + GBA_DMA1DAD)
-#define GBA_REG_DMA1DAD_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA1DAD_L
-#define GBA_REG_DMA1DAD_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA1DAD_H
-#define GBA_REG_DMA1CNT_ADDR GBA_IO_REGS_ADDR + GBA_DMA1CNT
-#define GBA_REG_DMA1CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA1CNT_L
-#define GBA_REG_DMA1CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA1CNT_H
-#define GBA_REG_DMA2SAD_ADDR GBA_IO_REGS_ADDR + GBA_DMA2SAD
-#define GBA_REG_DMA2SAD_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA2SAD_L
-#define GBA_REG_DMA2SAD_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA2SAD_H
-#define GBA_REG_DMA2DAD_ADDR GBA_IO_REGS_ADDR + GBA_DMA2DAD
-#define GBA_REG_DMA2DAD_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA2DAD_L
-#define GBA_REG_DMA2DAD_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA2DAD_H
-#define GBA_REG_DMA2CNT_ADDR GBA_IO_REGS_ADDR + GBA_DMA2CNT
-#define GBA_REG_DMA2CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA2CNT_L
-#define GBA_REG_DMA2CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA2CNT_H
-#define GBA_REG_DMA3SAD_ADDR GBA_IO_REGS_ADDR + GBA_DMA3SAD
-#define GBA_REG_DMA3SAD_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA3SAD_L
-#define GBA_REG_DMA3SAD_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA3SAD_H
-#define GBA_REG_DMA3DAD_ADDR GBA_IO_REGS_ADDR + GBA_DMA3DAD
-#define GBA_REG_DMA3DAD_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA3DAD_L
-#define GBA_REG_DMA3DAD_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA3DAD_H
-#define GBA_REG_DMA3CNT_ADDR GBA_IO_REGS_ADDR + GBA_DMA3CNT
-#define GBA_REG_DMA3CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_DMA3CNT_L
-#define GBA_REG_DMA3CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_DMA3CNT_H
-/* DMA Transfer Channel registers*/
-#ifndef __asm__
-#define GBA_REG_DMA0SAD (*(volatile unsigned int *)(GBA_REG_DMA0SAD_ADDR))
-#define GBA_REG_DMA0SAD_L (*(volatile unsigned short *)(GBA_REG_DMA0SAD_L_ADDR))
-#define GBA_REG_DMA0SAD_H (*(volatile unsigned short *)(GBA_REG_DMA0SAD_H_ADDR))
-#define GBA_REG_DMA0DAD (*(volatile unsigned int *)(GBA_REG_DMA0DAD_ADDR))
-#define GBA_REG_DMA0DAD_L (*(volatile unsigned short *)(GBA_REG_DMA0DAD_L_ADDR))
-#define GBA_REG_DMA0DAD_H (*(volatile unsigned short *)(GBA_REG_DMA0DAD_H_ADDR))
-#define GBA_REG_DMA0CNT (*(volatile unsigned int *)(GBA_REG_DMA0CNT_ADDR))
-#define GBA_REG_DMA0CNT_L (*(volatile unsigned short *)(GBA_REG_DMA0CNT_L_ADDR))
-#define GBA_REG_DMA0CNT_H (*(volatile unsigned short *)(GBA_REG_DMA0CNT_H_ADDR))
-#define GBA_REG_DMA1SAD (*(volatile unsigned int *)(GBA_REG_DMA1SAD_ADDR))
-#define GBA_REG_DMA1SAD_L (*(volatile unsigned short *)(GBA_REG_DMA1SAD_L_ADDR))
-#define GBA_REG_DMA1SAD_H (*(volatile unsigned short *)(GBA_REG_DMA1SAD_H_ADDR))
-#define GBA_REG_DMA1DAD (*(volatile unsigned int *)(GBA_REG_DMA1DAD_ADDR))
-#define GBA_REG_DMA1DAD_L (*(volatile unsigned short *)(GBA_REG_DMA1DAD_L_ADDR))
-#define GBA_REG_DMA1DAD_H (*(volatile unsigned short *)(GBA_REG_DMA1DAD_H_ADDR))
-#define GBA_REG_DMA1CNT (*(volatile unsigned int *)(GBA_REG_DMA1CNT_ADDR))
-#define GBA_REG_DMA1CNT_L (*(volatile unsigned short *)(GBA_REG_DMA1CNT_L_ADDR))
-#define GBA_REG_DMA1CNT_H (*(volatile unsigned short *)(GBA_REG_DMA1CNT_H_ADDR))
-#define GBA_REG_DMA2SAD (*(volatile unsigned int *)(GBA_REG_DMA2SAD_ADDR))
-#define GBA_REG_DMA2SAD_L (*(volatile unsigned short *)(GBA_REG_DMA2SAD_L_ADDR))
-#define GBA_REG_DMA2SAD_H (*(volatile unsigned short *)(GBA_REG_DMA2SAD_H_ADDR))
-#define GBA_REG_DMA2DAD (*(volatile unsigned int *)(GBA_REG_DMA2DAD_ADDR))
-#define GBA_REG_DMA2DAD_L (*(volatile unsigned short *)(GBA_REG_DMA2DAD_L_ADDR))
-#define GBA_REG_DMA2DAD_H (*(volatile unsigned short *)(GBA_REG_DMA2DAD_H_ADDR))
-#define GBA_REG_DMA2CNT (*(volatile unsigned int *)(GBA_REG_DMA2CNT_ADDR))
-#define GBA_REG_DMA2CNT_L (*(volatile unsigned short *)(GBA_REG_DMA2CNT_L_ADDR))
-#define GBA_REG_DMA2CNT_H (*(volatile unsigned short *)(GBA_REG_DMA2CNT_H_ADDR))
-#define GBA_REG_DMA3SAD (*(volatile unsigned int *)(GBA_REG_DMA3SAD_ADDR))
-#define GBA_REG_DMA3SAD_L (*(volatile unsigned short *)(GBA_REG_DMA3SAD_L_ADDR))
-#define GBA_REG_DMA3SAD_H (*(volatile unsigned short *)(GBA_REG_DMA3SAD_H_ADDR))
-#define GBA_REG_DMA3DAD (*(volatile unsigned int *)(GBA_REG_DMA3DAD_ADDR))
-#define GBA_REG_DMA3DAD_L (*(volatile unsigned short *)(GBA_REG_DMA3DAD_L_ADDR))
-#define GBA_REG_DMA3DAD_H (*(volatile unsigned short *)(GBA_REG_DMA3DAD_H_ADDR))
-#define GBA_REG_DMA3CNT (*(volatile unsigned int *)(GBA_REG_DMA3CNT_ADDR))
-#define GBA_REG_DMA3CNT_L (*(volatile unsigned short *)(GBA_REG_DMA3CNT_L_ADDR))
-#define GBA_REG_DMA3CNT_H (*(volatile unsigned short *)(GBA_REG_DMA3CNT_H_ADDR))
-#endif
-
-/*---------------------------------------------------------------------------+
-| TIMER
-+----------------------------------------------------------------------------*/
-#define GBA_TMR_PRESCALER_1CK 0x0000 /**< Prescaler 1 clock */
-#define GBA_TMR_PRESCALER_64CK 0x0001 /**< 64 clocks */
-#define GBA_TMR_PRESCALER_256CK 0x0002 /**< 256 clocks */
-#define GBA_TMR_PRESCALER_1024CK 0x0003 /**< 1024 clocks */
-#define GBA_TMR_IF_ENABLE 0x0040 /**< Interrupt Request Enable */
-#define GBA_TMR_ENABLE 0x0080 /**< Run Timer */
-
-/* Timer Register address offsets */
-#define GBA_TM0D 0x00000100 /**< Timer 0 counter value X*/
-#define GBA_TM0CNT_L 0x00000100 /**< Timer 0 counter value */
-#define GBA_TM0CNT 0x00000102 /**< Timer 0 Control X*/
-#define GBA_TM0CNT_H 0x00000102 /**< Timer 0 Control */
-#define GBA_TM1D 0x00000104 /**< Timer 1 counter value X*/
-#define GBA_TM1CNT_L 0x00000104 /**< Timer 1 counter value */
-#define GBA_TM1CNT 0x00000106 /**< Timer 1 control X*/
-#define GBA_TM1CNT_H 0x00000106 /**< Timer 1 control */
-#define GBA_TM2D 0x00000108 /**< Timer 2 counter value X*/
-#define GBA_TM2CNT_L 0x00000108 /**< Timer 2 counter value */
-#define GBA_TM2CNT 0x0000010A /**< Timer 2 control X*/
-#define GBA_TM2CNT_H 0x0000010A /**< Timer 2 control */
-#define GBA_TM3D 0x0000010C /**< Timer 3 counter value X*/
-#define GBA_TM3CNT_L 0x0000010C /**< Timer 3 counter value */
-#define GBA_TM3CNT 0x0000010E /**< Timer 4 control X*/
-#define GBA_TM3CNT_H 0x0000010E /**< Timer 4 control */
-/* Timer Register addresses */
-#define GBA_REG_TM0D_ADDR GBA_IO_REGS_ADDR + GBA_TM0D
-#define GBA_REG_TM0CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_TM0CNT_L
-#define GBA_REG_TM0CNT_ADDR GBA_IO_REGS_ADDR + GBA_TM0CNT
-#define GBA_REG_TM0CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_TM0CNT_H
-#define GBA_REG_TM1D_ADDR GBA_IO_REGS_ADDR + GBA_TM1D
-#define GBA_REG_TM1CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_TM1CNT_L
-#define GBA_REG_TM1CNT_ADDR GBA_IO_REGS_ADDR + GBA_TM1CNT
-#define GBA_REG_TM1CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_TM1CNT_H
-#define GBA_REG_TM2D_ADDR GBA_IO_REGS_ADDR + GBA_TM2D
-#define GBA_REG_TM2CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_TM2CNT_L
-#define GBA_REG_TM2CNT_ADDR GBA_IO_REGS_ADDR + GBA_TM2CNT
-#define GBA_REG_TM2CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_TM2CNT_H
-#define GBA_REG_TM3D_ADDR GBA_IO_REGS_ADDR + GBA_TM3D
-#define GBA_REG_TM3CNT_L_ADDR GBA_IO_REGS_ADDR + GBA_TM3CNT_L
-#define GBA_REG_TM3CNT_ADDR GBA_IO_REGS_ADDR + GBA_TM3CNT
-#define GBA_REG_TM3CNT_H_ADDR GBA_IO_REGS_ADDR + GBA_TM3CNT_H
-/* Timer Registers */
-#ifndef __asm__
-#define GBA_REG_TM0D (*(volatile unsigned short *)(GBA_REG_TM0D_ADDR))
-#define GBA_REG_TM0CNT_L (*(volatile unsigned short *)(GBA_REG_TM0CNT_L_ADDR))
-#define GBA_REG_TM0CNT (*(volatile unsigned short *)(GBA_REG_TM0CNT_ADDR))
-#define GBA_REG_TM0CNT_H (*(volatile unsigned short *)(GBA_REG_TM0CNT_H_ADDR))
-#define GBA_REG_TM1D (*(volatile unsigned short *)(GBA_REG_TM1D_ADDR))
-#define GBA_REG_TM1CNT_L (*(volatile unsigned short *)(GBA_REG_TM1CNT_L_ADDR))
-#define GBA_REG_TM1CNT (*(volatile unsigned short *)(GBA_REG_TM1CNT_ADDR))
-#define GBA_REG_TM1CNT_H (*(volatile unsigned short *)(GBA_REG_TM1CNT_H_ADDR))
-#define GBA_REG_TM2D (*(volatile unsigned short *)(GBA_REG_TM2D_ADDR))
-#define GBA_REG_TM2CMT_L (*(volatile unsigned short *)(GBA_REG_TM2CNT_L_ADDR))
-#define GBA_REG_TM2CNT (*(volatile unsigned short *)(GBA_REG_TM2CNT_ADDR))
-#define GBA_REG_TM2CNT_H (*(volatile unsigned short *)(GBA_REG_TM2CNT_H_ADDR))
-#define GBA_REG_TM3D (*(volatile unsigned short *)(GBA_REG_TM3D_ADDR))
-#define GBA_REG_TM3CNT_L (*(volatile unsigned short *)(GBA_REG_TM3CNT_L_ADDR))
-#define GBA_REG_TM3CNT (*(volatile unsigned short *)(GBA_REG_TM3CNT_ADDR))
-#define GBA_REG_TM3CNT_H (*(volatile unsigned short *)(GBA_REG_TM3CNT_H_ADDR))
-#endif
-
-/*---------------------------------------------------------------------------+
-| SERIAL set1
-+----------------------------------------------------------------------------*/
-#define GBA_SER_BAUD_MASK 0x0003
-#define GBA_SER_BAUD_9600 0x0000
-#define GBA_SER_BAUD_38400 0x0001
-#define GBA_SER_BAUD_57600 0x0002
-#define GBA_SER_BAUD_115200 0x0003
-#define GBA_SER_CTS 0x0004
-
-/* Serial Communication address offsets */
-#define GBA_SIOMULTI0 0x00000120 /**< SIO Multi-Player Data 0 */
-#define GBA_SCD0 0x00000120 /**< SIO Multi-Player Data 0 X*/
-#define GBA_SIOMULTI1 0x00000122 /**< SIO Multi-Player Data 1 */
-#define GBA_SCD1 0x00000122 /**< SIO Multi-Player Data 1 X*/
-#define GBA_SIOMULTI2 0x00000124 /**< SIO Multi-Player Data 2 */
-#define GBA_SCD2 0x00000124 /**< SIO Multi-Player Data 2 X*/
-#define GBA_SIOMULTI3 0x00000126 /**< SIO Multi-Player Data 3 */
-#define GBA_SCD3 0x00000126 /**< SIO Multi-Player Data 3 X*/
-#define GBA_SIOCNT 0x00000128 /**< SIO Control */
-#define GBA_SCCNT 0x00000128 /**< SIO Control X*/
-#define GBA_SCCNT_L 0x00000128 /**< SIO Control X*/
-#define GBA_SIOMLT_SEND 0x0000012A /**< Data Send Register */
-#define GBA_SCCNT_H 0x0000012A /**< Data Send Register X*/
-/* Serial Communication addresses */
-#define GBA_REG_SIOMULTI0_ADDR GBA_IO_REGS_ADDR + GBA_SIOMULTI0
-#define GBA_REG_SCD0_ADDR GBA_IO_REGS_ADDR + GBA_SCD0
-#define GBA_REG_SIOMULTI1_ADDR GBA_IO_REGS_ADDR + GBA_SIOMULTI1
-#define GBA_REG_SCD1_ADDR GBA_IO_REGS_ADDR + GBA_SCD1
-#define GBA_REG_SIOMULTI2_ADDR GBA_IO_REGS_ADDR + GBA_SIOMULTI2
-#define GBA_REG_SCD2_ADDR GBA_IO_REGS_ADDR + GBA_SCD2
-#define GBA_REG_SIOMULTI3_ADDR GBA_IO_REGS_ADDR + GBA_SIOMULTI3
-#define GBA_REG_SCD3_ADDR GBA_IO_REGS_ADDR + GBA_SCD3
-#define GBA_REG_SCCNT_ADDR GBA_IO_REGS_ADDR + GBA_SCCNT
-#define GBA_REG_SIOCNT_ADDR GBA_IO_REGS_ADDR + GBA_SIOCNT
-#define GBA_REG_SCCNT_L_ADDR GBA_IO_REGS_ADDR + GBA_SCCNT_L
-#define GBA_REG_SIOMLT_SEND_ADDR GBA_IO_REGS_ADDR + GBA_SIOMLT_SEND
-#define GBA_REG_SCCNT_H_ADDR GBA_IO_REGS_ADDR + GBA_SCCNT_H
-/* Serial Communication registers */
-#ifndef __asm__
-#define GBA_REG_SIOMULTI0 (*(volatile unsigned short *)(GBA_REG_SIOMULTI0_ADDR))
-#define GBA_REG_SCD0 (*(volatile unsigned short *)(GBA_REG_SCD0_ADDR))
-#define GBA_REG_SIOMULTI1 (*(volatile unsigned short *)(GBA_REG_SIOMULTI1_ADDR))
-#define GBA_REG_SCD1 (*(volatile unsigned short *)(GBA_REG_SCD1_ADDR))
-#define GBA_REG_SIOMULTI2 (*(volatile unsigned short *)(GBA_REG_SIOMULTI2_ADDR))
-#define GBA_REG_SCD2 (*(volatile unsigned short *)(GBA_REG_SCD2_ADDR))
-#define GBA_REG_SIOMULTI3 (*(volatile unsigned short *)(GBA_REG_SIOMULTI3_ADDR))
-#define GBA_REG_SCD3 (*(volatile unsigned short *)(GBA_REG_SCD3_ADDR))
-#define GBA_REG_SCCNT (*(volatile unsigned int *)(GBA_REG_SCCNT_ADDR))
-#define GBA_REG_SIOCNT (*(volatile unsigned short *)(GBA_REG_SIOCNT_ADDR))
-#define GBA_REG_SCCNT_L (*(volatile unsigned short *)(GBA_REG_SCCNT_L_ADDR))
-#define GBA_REG_SIOMLT_SEND (*(volatile unsigned short *)(GBA_REG_SIOMLT_SEND_ADDR))
-#define GBA_REG_SCCNT_H (*(volatile unsigned short *)(GBA_REG_SCCNT_H_ADDR))
-#endif
-
-/*---------------------------------------------------------------------------+
-| KEYPAD
-+----------------------------------------------------------------------------*/
-/* GBA Keys */
-#define GBA_KEY_A 0x0001
-#define GBA_KEY_B 0x0002
-#define GBA_KEY_SELECT 0x0004
-#define GBA_KEY_START 0x0008
-#define GBA_KEY_RIGHT 0x0010
-#define GBA_KEY_LEFT 0x0020
-#define GBA_KEY_UP 0x0040
-#define GBA_KEY_DOWN 0x0080
-#define GBA_KEY_R 0x0100
-#define GBA_KEY_L 0x0200
-#define GBA_KEY_ALL 0x03FF
-/* Keypad registers address offsets */
-#define GBA_P1 0x00000130 /**< Key Status X*/
-#define GBA_KEYINPUT 0x00000130 /**< Key Status */
-#define GBA_P1CNT 0x00000132 /**< Key Interrupt Control X*/
-#define GBA_KEYCNT 0x00000132 /**< Key Interrupt Control */
-/* Keypad registers addresses */
-#define GBA_REG_P1_ADDR GBA_IO_REGS_ADDR + GBA_P1
-#define GBA_REG_KEYINPUT_ADDR GBA_IO_REGS_ADDR + GBA_KEYINPUT
-#define GBA_REG_P1CNT_ADDR GBA_IO_REGS_ADDR + GBA_P1CNT
-#define GBA_REG_KEYCNT_ADDR GBA_IO_REGS_ADDR + GBA_KEYCNT
-/* Keypad registers */
-#ifndef __asm__
-#define GBA_REG_P1 (*(volatile unsigned short *)(GBA_REG_P1_ADDR))
-#define GBA_REG_KEYINPUT (*(volatile unsigned short *)(GBA_REG_KEYINPUT_ADDR))
-#define GBA_REG_P1CNT (*(volatile unsigned short *)(GBA_REG_P1CNT_ADDR))
-#define GBA_REG_KEYCNT (*(volatile unsigned short *)(GBA_REG_KEYCNT_ADDR))
-#endif
-
-/*---------------------------------------------------------------------------+
-| SERIAL set2
-+----------------------------------------------------------------------------*/
-/* Serial Communication address offsets */
-#define GBA_R 0x00000134 /**< Mode Selection X*/
-#define GBA_RCNT 0x00000134 /**< Mode Selection */
-#define GBA_HS_CTRL 0x00000140 /**< JOY BUS Control Register X*/
-#define GBA_JOYCNT 0x00000140 /**< JOY BUS Control Register */
-#define GBA_JOYRE 0x00000150 /**< Receive Data Register X*/
-#define GBA_JOYRE_L 0x00000150 /**< Receive Data Register low X*/
-#define GBA_JOY_RECV_L 0x00000150 /**< Receive Data Register low */
-#define GBA_JOYRE_H 0x00000152 /**< Receive Data Register high X*/
-#define GBA_JOY_RECV_H 0x00000152 /**< Receive Data Register high */
-#define GBA_JOYTR 0x00000154 /**< Send Data Register X*/
-#define GBA_JOYTR_L 0x00000154 /**< Send Data Register low X*/
-#define GBA_JOY_TRANS_L 0x00000154 /**< Send Data Register low */
-#define GBA_JOYTR_H 0x00000156 /**< Send Data Register high X*/
-#define GBA_JOY_TRANS_H 0x00000156 /**< Send Data Register high */
-#define GBA_JSTAT 0x00000158 /**< Receive Status Register X*/
-#define GBA_JOYSTAT 0x00000158 /**< Receive Status Register */
-/* Serial Communication register addresses */
-#define GBA_REG_R_ADDR GBA_IO_REGS_ADDR + GBA_R
-#define GBA_REG_RCNT_ADDR GBA_IO_REGS_ADDR + GBA_RCNT
-#define GBA_REG_HS_CTRL_ADDR GBA_IO_REGS_ADDR + GBA_HS_CTRL
-#define GBA_REG_JOYCNT_ADDR GBA_IO_REGS_ADDR + GBA_JOYCNT
-#define GBA_REG_JOYRE_ADDR GBA_IO_REGS_ADDR + GBA_JOYRE
-#define GBA_REG_JOYRE_L_ADDR GBA_IO_REGS_ADDR + GBA_JOYRE_L
-#define GBA_REG_JOY_RECV_L_ADDR GBA_IO_REGS_ADDR + GBA_JOY_RECV_L
-#define GBA_REG_JOYRE_H_ADDR GBA_IO_REGS_ADDR + GBA_JOYRE_H
-#define GBA_REG_JOY_RECV_H_ADDR GBA_IO_REGS_ADDR + GBA_JOY_RECV_H
-#define GBA_REG_JOYTR_ADDR GBA_IO_REGS_ADDR + GBA_JOYTR
-#define GBA_REG_JOYTR_L_ADDR GBA_IO_REGS_ADDR + GBA_JOYTR_L
-#define GBA_REG_JOY_TRANS_L_ADDR GBA_IO_REGS_ADDR + GBA_JOY_TRANS_L
-#define GBA_REG_JOYTR_H_ADDR GBA_IO_REGS_ADDR + GBA_JOYTR_H
-#define GBA_REG_JOY_TRANS_H_ADDR GBA_IO_REGS_ADDR + GBA_JOY_TRANS_H
-#define GBA_REG_JSTAT_ADDR GBA_IO_REGS_ADDR + GBA_JSTAT
-#define GBA_REG_JOYSTAT_ADDR GBA_IO_REGS_ADDR + GBA_JOYSTAT
-/* Serial Communication registers */
-#ifndef __asm__
-#define GBA_REG_R (*(volatile unsigned short *)(GBA_REG_R_ADDR))
-#define GBA_REG_RCNT (*(volatile unsigned short *)(GBA_REG_RCNT_ADDR))
-#define GBA_REG_HS_CTRL (*(volatile unsigned short *)(GBA_REG_HS_CTRL_ADDR))
-#define GBA_REG_JOYCNT (*(volatile unsigned short *)(GBA_REG_JOYCNT_ADDR))
-#define GBA_REG_JOYRE (*(volatile unsigned int *)(GBA_REG_JOYRE_ADDR))
-#define GBA_REG_JOYRE_L (*(volatile unsigned short *)(GBA_REG_JOYRE_L_ADDR))
-#define GBA_REG_JOY_RECV_L (*(volatile unsigned short *)(GBA_REG_JOY_RECV_L_ADDR))
-#define GBA_REG_JOYRE_H (*(volatile unsigned short *)(GBA_REG_JOYRE_H_ADDR))
-#define GBA_REG_JOY_RECV_H (*(volatile unsigned short *)(GBA_REG_JOY_RECV_H_ADDR))
-#define GBA_REG_JOYTR (*(volatile unsigned int *)(GBA_REG_JOYTR_ADDR))
-#define GBA_REG_JOYTR_L (*(volatile unsigned short *)(GBA_REG_JOYTR_L_ADDR))
-#define GBA_REG_JOY_TRANS_L (*(volatile unsigned short *)(GBA_REG_JOY_TRANS_L_ADDR))
-#define GBA_REG_JOYTR_H (*(volatile unsigned short *)(GBA_REG_JOYTR_H_ADDR))
-#define GBA_REG_JOY_TRANS_H (*(volatile unsigned short *)(GBA_REG_JOY_TRANS_H_ADDR))
-#define GBA_REG_JSTAT (*(volatile unsigned int *)(GBA_REG_JSTAT_ADDR))
-#define GBA_REG_JOYSTAT (*(volatile unsigned short *)(GBA_REG_JOYSTAT_ADDR))
-#endif
-
-/*---------------------------------------------------------------------------+
-| INTERRUPT
-+----------------------------------------------------------------------------*/
-/* Interrupt sources */
-#define GBA_INT_VBLANK 0x0001
-#define GBA_INT_HBLANK 0x0002
-#define GBA_INT_VCOUNT 0x0004
-#define GBA_INT_TIMER0 0x0008
-#define GBA_INT_TIMER1 0x0010
-#define GBA_INT_TIMER2 0x0020
-#define GBA_INT_TIMER3 0x0040
-#define GBA_INT_SERIAL 0x0080
-#define GBA_INT_DMA0 0x0100
-#define GBA_INT_DMA1 0x0200
-#define GBA_INT_DMA2 0x0400
-#define GBA_INT_DMA3 0x0800
-#define GBA_INT_KEY 0x1000
-#define GBA_INT_CART 0x2000
-/* Interrupt address offsets */
-#define GBA_IE 0x00000200 /**< Interrupt Enable */
-#define GBA_IF 0x00000202 /**< Interrupt Flags */
-#define GBA_IME 0x00000208 /**< Interrupt Master Enable */
-/* Interrupt addresses */
-#define GBA_REG_IE_ADDR GBA_IO_REGS_ADDR + GBA_IE
-#define GBA_REG_IF_ADDR GBA_IO_REGS_ADDR + GBA_IF
-#define GBA_REG_IME_ADDR GBA_IO_REGS_ADDR + GBA_IME
-/* Interrupt registers */
-#ifndef __asm__
-#define GBA_REG_IE (*(volatile unsigned short *)(GBA_REG_IE_ADDR))
-#define GBA_REG_IF (*(volatile unsigned short *)(GBA_REG_IF_ADDR))
-#define GBA_REG_IME (*(volatile unsigned short *)(GBA_REG_IME_ADDR))
-#endif
-
-/*---------------------------------------------------------------------------+
-| Waitstate and Power-Down Control registers
-+----------------------------------------------------------------------------*/
-#define GBA_PHI_MASK 0x1800
-#define GBA_PHI_NONE 0x0000
-#define GBA_PHI_4_19MHZ 0x0800
-#define GBA_PHI_8_38MHZ 0x1000
-#define GBA_PHI_16_76MHZ 0x1800
-/* Waitstate and Power-Down Control address offsets */
-#define GBA_WSCNT 0x00000204 /**< Waitstate Control X*/
-#define GBA_WAITCNT 0x00000204 /**< Waitstate Control */
-#define GBA_PAUSE 0x00000300 /**< Power Down Control X*/
-#define GBA_HALTCNT 0x00000300 /**< Power Down Control */
-/* Waitstate and Power-Down Control addresses */
-#define GBA_REG_WSCNT_ADDR GBA_IO_REGS_ADDR + GBA_WSCNT
-#define GBA_REG_WAITCNT_ADDR GBA_IO_REGS_ADDR + GBA_WAITCNT
-#define GBA_REG_PAUSE_ADDR GBA_IO_REGS_ADDR + GBA_PAUSE
-#define GBA_REG_HALTCNT_ADDR GBA_IO_REGS_ADDR + GBA_HALTCNT
-/* Waitstate and Power-Down Control registers */
-#ifndef __asm__
-#define GBA_REG_WSCNT (*(volatile unsigned short *)(GBA_REG_WSCNT_ADDR))
-#define GBA_REG_WAITCNT (*(volatile unsigned short *)(GBA_REG_WAITCNT_ADDR))
-#define GBA_REG_PAUSE (*(volatile unsigned short *)(GBA_REG_PAUSE_ADDR))
-#define GBA_REG_HALTCNT (*(volatile unsigned short *)(GBA_REG_HALTCNT_ADDR))
-#endif
-
-
-/*
- * @TODO remove UART register defines
- * define for RTEMS UART registers to be able to compile
- */
-#define RSRBR 0
-#define RSTHR 1
-#define RSIER 2
-#define RSIIR 3
-#define RSFCR 4
-#define RSLCR 5
-#define RSLSR 6
-#define RSDLL 7
-#define RSDLH 8
-#define RSCNT 9
-
-
-#endif /* _GBA_REGISTERS_H */
diff --git a/c/src/lib/libbsp/arm/gba/irq/irq.c b/c/src/lib/libbsp/arm/gba/irq/irq.c
deleted file mode 100644
index ba2751a..0000000
--- a/c/src/lib/libbsp/arm/gba/irq/irq.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * @file irq.c
- *
- * This file contains the implementation of the function described in irq.h.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2010 embedded brains GmbH.
- *
- * Copyright (c) 2002 by Jay Monkman <jtm at smoothsmoothie.com>
- *
- * Copyright (c) 2002 by Charlie Steader <charlies at poliac.com>
- *
- * Copyright (c) 2004 by Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <bsp.h>
-#include <bsp/irq.h>
-#include <bsp/irq-generic.h>
-
-#include <gba_registers.h>
-
-/*
- * Prototypes
- */
-void bsp_interrupt_dispatch(void);
-
-void bsp_interrupt_dispatch(void)
-{
- unsigned reg_ie = GBA_REG_IE;
- unsigned reg_if = GBA_REG_IF & reg_ie;
- rtems_vector_number vector = 31 - __builtin_clz(reg_if);
-
- bsp_interrupt_handler_dispatch(vector);
-
- GBA_REG_IF = 1 << vector;
-}
-
-rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
-{
- GBA_REG_IE |= 1 << vector;
-
- return RTEMS_SUCCESSFUL;
-}
-
-rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
-{
- GBA_REG_IE &= ~(1 << vector);
-
- return RTEMS_SUCCESSFUL;
-}
-
-rtems_status_code bsp_interrupt_facility_initialize(void)
-{
- /* clear all interrupt status flags */
- GBA_REG_IF = 0xffff;
- /* disable all interrupts */
- GBA_REG_IE = 0;
- /* set master interrupt enable */
- GBA_REG_IME = 1;
-
- /* Exception handler is already present in the ROM BIOS */
-
- return RTEMS_SUCCESSFUL;
-}
diff --git a/c/src/lib/libbsp/arm/gba/irq/irq.h b/c/src/lib/libbsp/arm/gba/irq/irq.h
deleted file mode 100644
index 37ae527..0000000
--- a/c/src/lib/libbsp/arm/gba/irq/irq.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * @file
- *
- * @ingroup gba_interrupt
- *
- * @brief Interrupt definitions.
- */
-
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2010 embedded brains GmbH.
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef __asm__
-
-#include <rtems.h>
-#include <rtems/irq.h>
-#include <rtems/irq-extension.h>
-
-#endif /* __asm__ */
-
-#ifndef _IRQ_H_
-#define _IRQ_H_
-
-/**
- * @defgroup gba_interrupt Interrupt Support
- *
- * @ingroup arm_gba
- *
- * @brief Interrupt support.
- */
-
-/*---------------------------------------------------------------------------*
- * MACROS *
- *---------------------------------------------------------------------------*/
-
-#define ENABLE_IRQ() GBA_REG_IME = 1;
-#define DISABLE_IRQ() GBA_REG_IME = 0;
-
-
-/*-------------------------------------------------------------------------+
-| Constants
-+--------------------------------------------------------------------------*/
-
-#define BSP_IRQ_VBLANK 0
-#define BSP_IRQ_HBLANK 1
-#define BSP_IRQ_VCOUNTER 2
-#define BSP_IRQ_TIMER0 3
-#define BSP_IRQ_TIMER1 4
-#define BSP_IRQ_TIMER2 5
-#define BSP_IRQ_TIMER3 6
-#define BSP_IRQ_SERIAL 7
-#define BSP_IRQ_DMA0 8
-#define BSP_IRQ_DMA1 9
-#define BSP_IRQ_DMA2 10
-#define BSP_IRQ_DMA3 11
-#define BSP_IRQ_KEY 12
-#define BSP_IRQ_CART 13
-#define BSP_IRQ_NA14 14
-#define BSP_IRQ_NA15 15
-#define BSP_MAX_INT 16
-
-#define BSP_INTERRUPT_VECTOR_MIN 0
-
-#define BSP_INTERRUPT_VECTOR_MAX (BSP_MAX_INT - 1)
-
-#endif /* _IRQ_H_ */
diff --git a/c/src/lib/libbsp/arm/gba/make/custom/gba.cfg b/c/src/lib/libbsp/arm/gba/make/custom/gba.cfg
deleted file mode 100644
index 71ed375..0000000
--- a/c/src/lib/libbsp/arm/gba/make/custom/gba.cfg
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Config file for Gameboy Advance ARM --
-#
-
-include $(RTEMS_ROOT)/make/custom/default.cfg
-
-RTEMS_CPU=arm
-RTEMS_CPU_MODEL=arm7tdmi
-
-# This contains the compiler options necessary to select the CPU model
-# and (hopefully) optimize for it.
-#
-CPU_CFLAGS = -mcpu=$(RTEMS_CPU_MODEL)
-
-# optimize flag: typically -O2
-CFLAGS_OPTIMIZE_V = -O2 -g
-
-# Some GBA simulators want a .gba extension.
-define bsp-post-link
- $(OBJCOPY) -O binary --remove-section=.comment \
- --remove-section=.note --strip-unneeded \
- $(basename $@)$(EXEEXT) $(basename $@)$(DOWNEXT)
- $(default-bsp-post-link)
-endef
diff --git a/c/src/lib/libbsp/arm/gba/preinstall.am b/c/src/lib/libbsp/arm/gba/preinstall.am
deleted file mode 100644
index 78c7b89..0000000
--- a/c/src/lib/libbsp/arm/gba/preinstall.am
+++ /dev/null
@@ -1,99 +0,0 @@
-## Automatically generated by ampolish3 - Do not edit
-
-if AMPOLISH3
-$(srcdir)/preinstall.am: Makefile.am
- $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
-endif
-
-PREINSTALL_DIRS =
-DISTCLEANFILES += $(PREINSTALL_DIRS)
-
-all-am: $(PREINSTALL_FILES)
-
-PREINSTALL_FILES =
-CLEANFILES = $(PREINSTALL_FILES)
-
-all-local: $(TMPINSTALL_FILES)
-
-TMPINSTALL_FILES =
-CLEANFILES += $(TMPINSTALL_FILES)
-
-$(PROJECT_LIB)/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_LIB)
- @: > $(PROJECT_LIB)/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
-
-$(PROJECT_INCLUDE)/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)
- @: > $(PROJECT_INCLUDE)/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
-
-$(PROJECT_INCLUDE)/bsp/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
- @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
-
-$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs
-PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs
-
-$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
-
-$(PROJECT_INCLUDE)/arm_mode_bits.h: include/arm_mode_bits.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/arm_mode_bits.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/arm_mode_bits.h
-
-$(PROJECT_INCLUDE)/asm_macros.h: include/asm_macros.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/asm_macros.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/asm_macros.h
-
-$(PROJECT_INCLUDE)/gba_registers.h: include/gba_registers.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/gba_registers.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/gba_registers.h
-
-$(PROJECT_INCLUDE)/conio.h: include/conio.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/conio.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/conio.h
-
-$(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
-
-$(PROJECT_INCLUDE)/gba.h: include/gba.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/gba.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/gba.h
-
-$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
-
-$(PROJECT_INCLUDE)/coverhd.h: ../../shared/include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
-
-$(PROJECT_INCLUDE)/bsp/bootcard.h: ../../shared/include/bootcard.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/bootcard.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bootcard.h
-
-$(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT)
-TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT)
-
-$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
-PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
-
-$(PROJECT_INCLUDE)/bsp/irq-generic.h: ../../shared/include/irq-generic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-generic.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-generic.h
-
-$(PROJECT_INCLUDE)/bsp/irq-info.h: ../../shared/include/irq-info.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-info.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-info.h
-
-$(PROJECT_INCLUDE)/bsp/irq.h: irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
-
diff --git a/c/src/lib/libbsp/arm/gba/start/logo.S b/c/src/lib/libbsp/arm/gba/start/logo.S
deleted file mode 100644
index 0270710..0000000
--- a/c/src/lib/libbsp/arm/gba/start/logo.S
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * @file logo.S
- *
- * Nintendo Logo Character Data [offset 0x04].
- */
-/*
- * RTEMS GBA BSP
- *
- * THIS CODE WAS NOT MADE IN ASSOCIATION WITH NINTENDO AND DOES NOT MAKE USE
- * OF ANY INTELLECTUAL PROPERTY CLAIMED BY NINTENDO.
- *
- * GAMEBOY ADVANCE IS A TRADEMARK OF NINTENDO.
- */
-/* @cond INCLUDE_ASM */
- .word 0x51AEFF24, 0x21A29A69, 0x0A82843D, 0xAD09E484
- .word 0x988B2411, 0x217F81C0, 0x19BE52A3, 0x20CE0993
- .word 0x4A4A4610, 0xEC3127F8, 0x33E8C758, 0xBFCEE382
- .word 0x94DFF485, 0xC1094BCE, 0xC08A5694, 0xFCA77213
- .word 0x734D849F, 0x619ACAA3, 0x27A39758, 0x769803FC
- .word 0x61C71D23, 0x56AE0403, 0x008438BF, 0xFD0EA740
- .word 0x03FE52FF, 0xF130956F, 0x85C0FB97, 0x2580D660
- .word 0x03BE63A9, 0xE2384E01, 0xFF34A2F9, 0x44033EBB
- .word 0xCB900078, 0x943A1188, 0x637CC065, 0xAF3CF087
- .word 0x8BE425D6, 0x72AC0A38, 0x07F8D421
-/* @endcond */
diff --git a/c/src/lib/libbsp/arm/gba/start/start.S b/c/src/lib/libbsp/arm/gba/start/start.S
deleted file mode 100644
index 99dfc9a..0000000
--- a/c/src/lib/libbsp/arm/gba/start/start.S
+++ /dev/null
@@ -1,396 +0,0 @@
-/**
- * @file start.S
- *
- * RTEMS entry point.
- */
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) by Jeff Frohwein.
- *
- * Copyright (c) 2003, Jason Wilkins.
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- * based on crt0.S v1.28 by Jeff Frohwein
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*****************************************************************************
- * This source file is based on work by Jeff Frohwein and Jason Wilkins
- *****************************************************************************
- *****************************************************************************
- * crt0.S v1.28 by Jeff Frohwein
- * :
- * This file is released into the public domain for commercial
- * or non-commercial usage with no restrictions placed upon it.
- *****************************************************************************
- * Copyright 2003, Jason Wilkins. This source code is free for any use except
- * that this copyright notice and the following disclaimers remain intact when
- * the source is distributed. Object code and binary distributions may be made
- * as if the code were in the public domain.
- *
- * THIS CODE WAS NOT MADE IN ASSOCIATION WITH NINTENDO AND DOES NOT MAKE USE
- * OF ANY INTELLECTUAL PROPERTY CLAIMED BY NINTENDO.
- *
- * GAMEBOY ADVANCE IS A TRADEMARK OF NINTENDO.
- *
- * THIS CODE HAS BEEN PROVIDED "AS-IS" WITHOUT A WARRANTY OF ANY KIND, EITHER
- * EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO IMPLIED WARRANTIES OF
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. THE ENTIRE RISK AS TO THE
- * QUALITY OR PERFORMANCE OF THE CODE IS WITH YOU.
- *
- * IN NO EVENT, UNLESS AGREED TO IN WRITING, WILL ANY COPYRIGHT HOLDER, OR ANY
- * OTHER PARTY, BE HELD LIABLE FOR ANY DAMAGES RESULTING FROM THE USE OR
- * INABILITY TO USE THIS CODE.
- *****************************************************************************/
-
-#define __asm__
-#include <rtems/asm.h>
-#include <asm_macros.h>
-#include <arm_mode_bits.h>
-/* @cond INCLUDE_ASM */
-
-#ifndef NINTENDO_LOGO
-#define NINTENDO_LOGO 1
-#endif
-
-#ifndef GBA_MULTIBOOT
-#define GBA_MULTIBOOT 1
-#endif
-
-#ifndef GAME_TITLE
-#define GAME_TITLE "RTEMS-RTOS "
-#endif
-
-#ifdef GBA_MULTIBOOT
- #ifndef GAME_CODE
- #define GAME_CODE "MB "
- #endif
- #ifndef COMPLEMENT_CHECK
- #define COMPLEMENT_CHECK 0xE2
- #endif
-#else
- #ifndef GAME_CODE
- #define GAME_CODE "GBA "
- #endif
- #ifndef COMPLEMENT_CHECK
- #define COMPLEMENT_CHECK 0xC7
- #endif
-#endif
-
-#ifndef MAKER_CODE
-#define MAKER_CODE "00"
-#endif
-
-/**
- * RTEMS entry point
- * function void _start(void)
- *
- */
-/*****************************************************************************\
- ROM Header
-\*****************************************************************************/
-
-.text
-.align
-.arm
-
-/*---------------------------------------------------------------------------+
-| Nintendo Header:
-| A special header is required or the GBA will refuse to run your code.
-|
-| File offsets from 0x0200000 or 0x08000000.
-+----------------------------------------------------------------------------*/
- PUBLIC_ARM_FUNCTION(_start)
- b SYM(_real_start) /* 0x00 Entry Point */
- SYM(_gba_rom_header):
-#if NINTENDO_LOGO /* 0x04 Nintendo Logo Character Data */
-#include "logo.S"
-#else
- .fill 156, 1, 0 /* 0x04 Nintendo Logo Character Data */
-#endif
- .ascii GAME_TITLE /* 0xA0 Game Title */
- .ascii GAME_CODE /* 0xAC Game Code */
- .ascii MAKER_CODE /* 0xB0 Maker Code */
- .byte 0x96 /* 0xB2 Fixed Value */
- .byte 0 /* 0xB3 Main Unit Code */
- .byte 0 /* 0xB4 Device Type */
- .byte 0, 0, 0, 0, 0, 0, 0 /* 0xB5 Reserved (7 Bytes) */
- .byte 0 /* 0xBC Software Version No. */
- .byte COMPLEMENT_CHECK /* 0xBD Complement Check */
- .byte 0, 0 /* 0xBE Reserved */
- .Lheader_end:
-
-
-#if GBA_MULTIBOOT
-/*---------------------------------------------------------------------------+
-| Multiboot Header:
-| The following header is required if the code is meant for Multiboot.
-|
-| If the code has been downloaded through the serial port, then the GBA BIOS
-| will set offset 0xC0 depending on the boot method:
-| 1 = JoyBus, 3 = Multiboot
-| It remains 0 for cartridges.
-|
-| offset 0xC4 will be set to the GBA's assigned slave number 1-3.
-| This header also defines the symbols _boot_method and _slave_number for
-| easy reference to these values. Some libraries may depend on them whether
-| or not the code is meant for Multiboot.
-|
-+----------------------------------------------------------------------------*/
- SYM(_gba_multiboot_start):
- b SYM(_real_start) /* 0xC0 Multiboot Entry Point */
- OBJECT(_boot_method)
- .byte 0 /* 0xC4 Boot Method */
- OBJECT(_slave_number)
- .byte 0 /* 0xC5 Slave Number (1-3) */
- .align
- STATIC_OBJECT(_gba_mb_reserved)
- .word 0, 0, 0, 0, 0, 0 /* 0xC8 Reserved (6 words) */
- SYM(_gba_joybus_start):
- b SYM(_real_start) /* 0xE0 JoyBus Entry Point */
- .Lmultiboot_header_end:
-#endif
-
-/*---------------------------------------------------------------------------+
-| Restore registers and stack from GBA bios IRQ frame and call ISR_Handler
-+----------------------------------------------------------------------------*/
- EXTERN(_ISR_Handler)
- .align
- PUBLIC_ARM_FUNCTION(_gba_ISR_handler)
- ldmfd r13!,{r0-r3,r12,r14}
- b _ARMV4_Exception_interrupt
- LABEL_END(_gba_ISR_handler)
-
-
-/*---------------------------------------------------------------------------+
-| Code to initialize the low-level BSP environment
-+----------------------------------------------------------------------------*/
- SYM(_real_start):
- /* Initialize IRQ and USR Stack Pointers */
- SYM(_gba_init_stacks):
- mov r0, #(Mode_IRQ | Int_Bits) /* No interrupts */
- msr cpsr, r0 /* switch to IRQ mode */
- ldr sp, =__sp_irq /* defined in linkcmds */
- mov r0, #(ModePriv | Int_Bits) /* No interrupts */
- msr cpsr, r0 /* switch to System Mode */
- ldr sp, =__sp_usr /* defined in linkcmds */
-
- /* Switch to Thumb Mode */
- SYM(_gba_bx_thumb):
- adr r0, .Lthumb + 1
- bx r0
- .thumb
- .Lthumb:
- /* Reduce gameboy waitstates */
- SYM(_reduce_waitstates):
- ldr r1, =0x4000204
- ldrh r0, =0x4490
- strh r0, [r1]
-
-
-#if GBA_MULTIBOOT
-/*---------------------------------------------------------------------------+
-| Load Multiboot Image from ROM into RAM:
-| Check to see if the image is meant for Multiboot or GamePak. If it is for
-| Multiboot then check if it is currently running from EWRAM or from CARTROM.
-| If it is running from CARTROM, then it needs to be copied to EWRAM and
-| re-executed from the beginning.
-|
-| The reason for all this is to allow a program to be used "as-is" with a
-| flash-cart, emulator, or MBV2-style Multiboot cable without rebuilding.
-|
-| NOTE: Any branchs used above this code need to be relative.
-+----------------------------------------------------------------------------*/
- STATIC_THUMB_FUNCTION(_gba_load_multiboot)
- ldr r0, =_start /* 8000000h=GamePak 2000000h=Multiboot*/
- ldr r1, =__gba_rom_start /* defined in linkcmds */
- cmp r0, r1
- beq SYM(_no_load_multiboot)/* skip if GamePak */
- mov r3, pc
- cmp r1, r3 /* check program counter */
- bhi SYM(_no_load_multiboot)/* skip if already running from EWRAM */
- sub r3, r1, r0 /* diff between _start and CARTROM */
- ldr r2, =__load_stop_data /* defined in linkcmds */
- add r2, r2, r3 /* adjust pointer into ROM */
- bl SYM(gba_move_memory)
-
- /* patch multiboot header */
- ldr r0, =SYM(_boot_method)
- mov r1, #3
- str r1, [r0]
-
- /* remember that multiboot image came from GamePak */
- ldr r0, =SYM(_gba_flash_loaded_multiboot)
- mov r1, #0
- str r1, [r0]
-
- ldr r0, =SYM(_start)
- bx r0 /* restart */
- LABEL_END(_gba_load_multiboot)
-
- .align 4
- OBJECT(_gba_flash_loaded_multiboot)
- .word -1
- LABEL_END(_gba_flash_loaded_multiboot)
- SYM(_no_load_multiboot):
-#endif
-
-/* Initialize Standard Sections */
- STATIC_THUMB_FUNCTION(_gba_init_std_sections)
- /* Copy internal work ram (iwram section ROM to RAM)*/
- ldr r0,=__iwram_start
- ldr r1,=__load_start_iwram
- ldr r2,=__load_stop_iwram
- bl SYM(gba_move_memory)
-
- /* Copy external work ram (ewram section ROM to RAM) */
- ldr r0,=__ewram_start
- ldr r1,=__load_start_ewram
- ldr r2,=__load_stop_ewram
- bl SYM(gba_move_memory)
-
- /* load initial values of variables like 'int foo = 42' */
- ldr r0, =__data_start /* defined in linkcmds */
- ldr r1, =__load_start_data /* defined in linkcmds */
- ldr r2, =__load_stop_data /* defined in linkcmds */
- bl SYM(gba_move_memory)
-
- /* zero the bss */
- ldr r0, =__bss_start /* defined in linkcmds */
- ldr r1, =__bss_end /* defined in linkcmds */
- bl SYM(gba_zero_memory)
- LABEL_END(_gba_init_std_sections)
-
-/* Initialize Interrupt Vector */
- STATIC_THUMB_FUNCTION(_gba_init_intr_vect)
- ldr r1, =__irq_vector /* defined in linkcmds */
- ldr r0, =SYM(_gba_ISR_handler)
- str r0, [r1]
- LABEL_END(_gba_init_intr_vect)
-
-
-/* Enter the C code. If it returns, then restart */
- STATIC_THUMB_FUNCTION(_gba_call_arm_boot_card)
- adr r1, .Larm
- bx r1
- .arm
- .Larm:
- ldr r1, =boot_card
- mov r0, #0
- bl SYM(_gba_call_via_r1)
-
- ldr r0, =SYM(_gba_reset)
- SYM(_gba_call_via_r1):
- bx r1
-
-/* GBA Reset */
- PUBLIC_ARM_FUNCTION(_gba_reset)
- adr r0, .Lthumb2 + 1
- bx r0
- .thumb
- .Lthumb2:
- /* disable interrupts */
- ldr r0, =0x04000208
- mov r1, #0
- strb r1, [r0]
-
- /* reset stack, default free area */
- ldr r0, =0x03007F00
- mov sp, r0
-
-#if GBA_MULTIBOOT
- ldr r0, =SYM(_gba_flash_loaded_multiboot)
- ldr r0, [r0]
- cmp r0, #0
- beq SYM(_reset)
-#endif
-
- ldr r0, =_start /* defined in linkcmds */
- ldr r1, =__gba_rom_start /* defined in linkcmds */
- sub r0, r0, r1
- lsr r0, r0, #24
-
- SYM(_reset):
- /* soft reset (swi 0) parameter: where is _start */
- ldr r1, =0x03007FFA
- strb r0, [r1]
- mov r0, #0xFE /* clear all but EWRAM */
- swi 1
- swi 0
- LABEL_END(_gba_reset)
-
-
-/*---------------------------------------------------------------------------+
-| Library Functions
-+----------------------------------------------------------------------------*/
-
-/* gba_zero_memory */
- PUBLIC_THUMB_FUNCTION(gba_zero_memory)
- mov r2, #0
- nop
- LABEL_END(gba_zero_memory)
-
-/* gba_set_memory */
- PUBLIC_THUMB_FUNCTION(gba_set_memory)
- cmp r0, r1
- bcs .Lset_memory_return
-
- .Lset_memory_loop:
- stmia r0!, {r2}
- cmp r0, r1
- bcc .Lset_memory_loop
-
- .Lset_memory_return:
- bx lr
- LABEL_END(gba_set_memory)
-
-/* gba_move_memory */
- .align
- PUBLIC_THUMB_FUNCTION(gba_move_memory)
- cmp r0, r1
- bcc .Lforward_move /* if dst < src then forward copy */
- bhi .Lreverse_move /* if dst > src then reverse copy */
- bx lr /* else dst == src, nothing to do */
-
- .Lforward_move:
- cmp r1, r2
- bcs .Lmove_memory_return
-
- .Lforward_move_loop:
- ldmia r1!, {r3}
- stmia r0!, {r3}
- cmp r1, r2
- bcc .Lforward_move_loop
- bx lr
-
- .Lreverse_move:
- cmp r2, r1
- bls .Lmove_memory_return
- sub r3, r2, r1
- add r0, r0, r3
-
- .Lreverse_move_loop:
- sub r2, r2, #4
- ldr r3, [r2]
- sub r0, r0, #4
- str r3, [r0]
- cmp r2, r1
- bhi .Lreverse_move_loop
-
- .Lmove_memory_return:
- bx lr
- LABEL_END(gba_move_memory)
-
-
-/* @todo FIXME: Remove unused handler needed by ../score/cpu_asm.S
- *****************************************************************************/
- .arm
- .global SWI_Handler
-SWI_Handler:
- mov pc, lr
-/* @endcond */
-
diff --git a/c/src/lib/libbsp/arm/gba/startup/bspgetworkarea.c b/c/src/lib/libbsp/arm/gba/startup/bspgetworkarea.c
deleted file mode 100644
index ca48afe..0000000
--- a/c/src/lib/libbsp/arm/gba/startup/bspgetworkarea.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <bsp.h>
-#include <bsp/bootcard.h>
-#include <stdint.h>
-
-extern int _end;
-extern int __heap_limit;
-
-void bsp_work_area_initialize(void)
-{
- void *area_start = (void *)&_end;
- uintptr_t area_size = (uintptr_t)&__heap_limit - (uintptr_t)&_end;
-
- bsp_work_area_initialize_default( area_start, area_size );
-}
-
diff --git a/c/src/lib/libbsp/arm/gba/startup/bspreset.c b/c/src/lib/libbsp/arm/gba/startup/bspreset.c
deleted file mode 100644
index 1c06423..0000000
--- a/c/src/lib/libbsp/arm/gba/startup/bspreset.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <bsp.h>
-#include <bsp/bootcard.h>
-
-void bsp_reset(void)
-{
- __asm__ volatile ("ldr r0, =_gba_reset");
- __asm__ volatile ("bx r0");
-}
diff --git a/c/src/lib/libbsp/arm/gba/startup/bspstart.c b/c/src/lib/libbsp/arm/gba/startup/bspstart.c
deleted file mode 100644
index b5e37d4..0000000
--- a/c/src/lib/libbsp/arm/gba/startup/bspstart.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * @file bspstart.c
- *
- * This file contains the GBA BSP startup package.
- * It includes application, board, and monitor specific initialization and
- * configuration. The generic CPU dependent initialization has been
- * performed before this routine is invoked.
- */
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <stdio.h>
-#include <bsp.h>
-#include <bsp/irq-generic.h>
-#include <rtems/bspIo.h>
-#include <gba.h>
-#include <conio.h>
-
-/** Chip registers */
-volatile unsigned int *Regs = (unsigned int *)GBA_IO_REGS_ADDR;
-
-/**
- * @brief BSP Start
- *
- * Called before main is invoked.
- *
- * @param None
- * @return None
- */
-static void bsp_start_default( void )
-{
- /* Init conio */
- gba_textmode(CO60);
-
- /* Init rtems exceptions management
- * !!!!!GBA -- Can't use exception vectors in GBA because they are
- * already in GBA ROM BIOS
- */
- /* rtems_exception_init_mngt(); */
-
- /* Init rtems interrupt management */
- bsp_interrupt_initialize();
-}
-
-/**
- * @brief weak alias for bsp_start_default
- *
- * By making this a weak alias for bsp_start_default, a brave soul
- * can override the actual bsp_start routine used.
- */
-void bsp_start (void) __attribute__ ((weak, alias("bsp_start_default")));
diff --git a/c/src/lib/libbsp/arm/gba/startup/linkcmds b/c/src/lib/libbsp/arm/gba/startup/linkcmds
deleted file mode 100644
index 4c9fee2..0000000
--- a/c/src/lib/libbsp/arm/gba/startup/linkcmds
+++ /dev/null
@@ -1,386 +0,0 @@
-/**
- * @file linkcmds
- *
- * GBA BSP linker script
- */
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) Jeff Frohwein
- *
- * Copyright (c) 2003 Jason Wilkins
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- *
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*****************************************************************************
- * This Linker Script is based on work by Jeff Frohwein and Jason Wilkins
- *****************************************************************************
- * Linker Script v1.3 by Jeff Frohwein
- * :
- * This file is released into the public domain
- * for commercial or non-commercial use with no
- * restrictions placed upon it.
- *****************************************************************************
- * Copyright 2003, Jason Wilkins. This source code is free for any use except
- * that this copyright notice and the following disclaimers remain intact when
- * the source is distributed. There are absolutely no restrictions on use of
- * object code generated from this source, but the disclaimers remain in force.
- *
- * THIS CODE WAS NOT MADE IN ASSOCIATION WITH NINTENDO AND DOES NOT MAKE USE OF
- * ANY INTELLECTUAL PROPERTY CLAIMED BY NINTENDO.
- *
- * GAMEBOY ADVANCE IS A TRADEMARK OF NINTENDO.
- *
- * THIS CODE HAS BEEN PROVIDED "AS-IS" WITHOUT A WARRANTY OF ANY KIND, EITHER
- * EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO IMPLIED WARRANTIES OF
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. THE ENTIRE RISK AS TO THE
- * QUALITY OR PERFORMANCE OF THE CODE IS WITH YOU.
- *
- * IN NO EVENT, UNLESS AGREED TO IN WRITING, WILL ANY COPYRIGHT HOLDER, OR ANY
- * OTHER PARTY, BE HELD LIABLE FOR ANY DAMAGES RESULTING FROM THE USE OR
- * INABILITY TO USE THIS CODE.
- *
- *****************************************************************************/
-/* @cond INCLUDE_ASM */
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-
-/*************************************************************************
- The linker script MEMORY directive is not used here due to the fact
- that __ro_start is not always a fixed value.
- *************************************************************************
-MEMORY
-{
- rom : ORIGIN = 0x08000000 , LENGTH = 96M
- iwram : ORIGIN = 0x03000000 , LENGTH = 32K
- ewram : ORIGIN = 0x02000000 , LENGTH = 256K
- sram : ORIGIN = 0x0E000000 , LENGTH = 64K
-}
- *************************************************************************/
-__gba_ewram_start = 0x02000000;
-__gba_ewram_end = 0x02040000;
-__gba_iwram_start = 0x03000000;
-__gba_iwram_end = 0x03008000;
-__gba_rom_start = 0x08000000;
-__gba_rom_end = 0x0E000000;
-__gba_sram_start = 0x0E000000;
-__gba_sram_end = 0x0E010000;
-
-__sp_irq_size = 0x2A0;
-_stack_size = 0xA00;
-__irq_vector = __gba_iwram_end - 0x0004; /* 0x03007FFC */
-__sp_svc = __gba_iwram_end - 0x0020; /* 0x03007FE0 */
-__sp_irq = __gba_iwram_end - 0x0060; /* 0x03007FA0 */
-__sp_usr = __sp_irq - __sp_irq_size; /* 0x03007D00 */
-__sp_limit = __sp_usr - _stack_size; /* 0x03007300 */
-__heap_limit = DEFINED(__gba_multiboot) ? __gba_ewram_end : ( DEFINED(__gba_iwram_bss) ? __sp_limit : __gba_ewram_end ) ;
-
-
-SECTIONS
-{
-/*** read-only sections ***/
-/*************************************************************************
- if 'multiboot' allocate prog in __gba_ewram_start (0x02000000-0x0207FFFF)
- else allocate prog in __gba_rom_start (0x08000000-0x0DFFFFFF)
- *************************************************************************/
- __ro_start = DEFINED(__gba_multiboot) ? __gba_ewram_start : __gba_rom_start ;
- PROVIDE(__text_start__ = __ro_start );
- .text __ro_start :
- {
- CREATE_OBJECT_SYMBOLS
- */start.o(.text)
- *(EXCLUDE_FILE(*.rodata.* *.ewram.o *.iwram.o) .text)
- *(.stub .text.* .gnu.linkonce.t*)
-
- /*
- * Special FreeBSD sysctl sections.
- */
- . = ALIGN (16);
- __start_set_sysctl_set = .;
- *(set_sysctl_*);
- __stop_set_sysctl_set = ABSOLUTE(.);
- *(set_domain_*);
- *(set_pseudo_*);
-
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- *(.glue_7)
- *(.glue_7t)
- . = ALIGN(4);
- } =0xFF
-
- .init :
- {
- *(.init)
- . = ALIGN(4);
- } =0xFF
-
- .fini :
- {
- *(.fini)
- . = ALIGN(4);
- } =0xFF
-
- __rodata_start = . ;
- .rodata :
- {
- *(.rodata1)
- *(EXCLUDE_FILE(*.rodata.* *.ewram.o *.iwram.o) .rodata)
- *(.rodata.* .gnu.linkonce.r*)
- KEEP (*(SORT(.rtemsroset.*)))
- *(.roda) /* deprecated: for compatibility with objcopyroda */
- SORT(CONSTRUCTORS)
- . = ALIGN(4);
- } =0xFF
- .tdata : {
- _TLS_Data_begin = .;
- *(.tdata .tdata.* .gnu.linkonce.td.*)
- _TLS_Data_end = .;
- } =0xFF
- .tbss : {
- _TLS_BSS_begin = .;
- *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
- _TLS_BSS_end = .;
- }
- _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
- _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
- _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
- _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
- _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
- _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
- __rodata_end = . ;
-
- .eh_frame :
- {
- KEEP(*(.eh_frame))
- . = ALIGN(4);
- } =0xFF
-
- .gcc_except_table :
- {
- *(.gcc_except_table*)
- . = ALIGN(4);
- } =0xFF
-
- .ctors :
- {
- /* gcc uses crtbegin.o to find the start of
- the constructors, so we make sure it is first.
- Because this is a wildcard, it doesn't matter
- if the user does not actually link against crtbegin.o;
- the linker won't look for a file to match a wildcard.
- The wildcard also means that it doesn't matter which
- directory crtbegin.o is in.
- */
- KEEP(*crtbegin.o(.ctors))
- /* We don't want to include the .ctor section from
- the crtend.o file until after the sorted ctors.
- The .ctor section from the crtend file contains the
- end of ctors marker and it must be last
- */
- KEEP(*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP(*(SORT(.ctors.*)))
- KEEP(*(.ctors))
- . = ALIGN(4);
- } =0xFF
-
- .dtors :
- {
- KEEP(*crtbegin.o(.dtors))
- KEEP(*(EXCLUDE_FILE (*crtend.o ) .dtors))
- KEEP(*(SORT(.dtors.*)))
- KEEP(*(.dtors))
- . = ALIGN(4);
- } =0xFF
-
- .jcr :
- {
- *(.jcr)
- . = ALIGN(4);
- } =0xFF
-
- .ARM.extab : {
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- } =0xff
- __exidx_start = .;
- .ARM.exidx : {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } =0xff
- __exidx_end = .;
- .preinit_array : {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- } =0xFF
- .init_array : {
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- PROVIDE_HIDDEN (__init_array_end = .);
- } =0xFF
- .fini_array : {
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- PROVIDE_HIDDEN (__fini_array_end = .);
- } =0xFF
-
-/*************************************************************************
- calculate __ro_end
- *************************************************************************/
- __ro_end = .;
- PROVIDE(__text_end__ = __ro_end );
-
-/*** IWRAM ***/
-/*************************************************************************
- allocate iwram in __gba_iwram_start (0x03000000-0x03003FFF)
- *************************************************************************/
- __load_start_iwram = __ro_end;
- . = __gba_iwram_start ;
- __iwram_start = . ;
- PROVIDE(__iwram_start__ = . );
- .iwram : AT(__load_start_iwram)
- {
- /* put irq_vector_table in stat of iwram */
- CREATE_OBJECT_SYMBOLS
- _irq_vector_table = .;
- PROVIDE(irq_vector_table = .);
- . += 4;
- . = ALIGN(16 * 4);
- PROVIDE(irq_vector_table_end = .);
- _irq_vector_table_end = .;
- *(.iwram .iwram.*)
- *.iwram.o (.text .rodata .data)
- . = ALIGN(4);
- } =0xFF
- __iwram_end = . ;
- PROVIDE(__iwram_end__ = . );
- __load_stop_iwram = __load_start_iwram + SIZEOF(.iwram);
-
- _irq_vector_table_size = _irq_vector_table_end - _irq_vector_table;
- PROVIDE(_irq_max_vector = _irq_vector_table_size / 4 );
-
-
-/*** EWRAM ***/
-/*************************************************************************
- if 'multiboot' allocate prog+ewram in __gba_ewram
- else allocate only ewram in __gba_ewram_start
- *************************************************************************/
- . = DEFINED(__gba_multiboot) ? __load_stop_iwram : __gba_ewram_start ;
- __load_start_ewram = __load_stop_iwram;
- __ewram_start = . ;
- PROVIDE(__ewram_start__ = . );
- .ewram : AT(__load_start_ewram)
- {
- *(.ewram .ewram.*)
- *.ewram.o (.text .rodata .data)
- . = ALIGN(4);
- } =0xFF
- __ewram_end = . ;
- PROVIDE(__ewram_end__ = . );
- __load_stop_ewram = __load_start_ewram + SIZEOF(.ewram) ;
-
-/*************************************************************************
- if 'multiboot' allocate prog+ewram+data+bss in __gba_ewram
- else if 'iwram_data' allocate data in __gba_iwram
- else allocate data in __gba_ewram
- *************************************************************************/
- . = DEFINED(__gba_multiboot) ? __load_stop_ewram : (DEFINED(__gba_iwram_data) ? __iwram_end : __ewram_end) ;
- __load_start_data = __load_stop_ewram;
- __data_start = . ;
- PROVIDE(__data_start__ = . );
- .data : AT(__load_start_data)
- {
- *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
- *(EXCLUDE_FILE(*.rodata.* *.ewram.o *.iwram.o) .data)
- *(.data.* .gnu.linkonce.d.*)
- *(.data1)
- KEEP (*(SORT(.rtemsrwset.*)))
- *(.sdata .sdata.* .gnu.linkonce.s.*)
- . = ALIGN(4);
- } =0xFF
- __data_end = . ;
- PROVIDE(__data_end__ = . );
- __load_stop_data = __load_start_data + SIZEOF(.data);
-
-/*** BSS ***/
-/*************************************************************************
- if 'multiboot' allocate prog+ewram+data+bss in __gba_ewram
- else if 'iwram_data' and 'iwram_bss' allocate iwram+data+bss in __gba_iwram
- else if !'iwram_data' and 'iwram_bss' allocate iwram+bss in __gba_iwram
- else allocate data+ewram+bss in __gba_ewram
- *************************************************************************/
- . = DEFINED(__gba_multiboot) ? __load_stop_data : ( DEFINED(__gba_iwram_data) ? (DEFINED(__gba_iwram_bss) ? __data_end : __ewram_end) : (DEFINED(__gba_iwram_bss) ? __iwram_end : __data_end) ) ;
- __bss_start = . ;
- PROVIDE(__bss_start__ = . );
- .bss :
- {
- *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
- *(.tcommon)
- *(.sbss .sbss.* .gnu.linkonce.sb.*)
- *(.scommon)
- *(.bss .bss.* .gnu.linkonce.b*)
- *(COMMON)
- . = ALIGN(4);
- }
- __bss_end = . ;
- PROVIDE(__bss_end__ = . );
- PROVIDE(_bss_end__ = . );
-
- PROVIDE(_end = . );
- PROVIDE(__end__ = _end);
- PROVIDE(end = _end);
-
-
-/*** debugging info ***/
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- .comment 0 : { *(.comment) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- /* DWARF 3 */
- .debug_pubtypes 0 : { *(.debug_pubtypes) }
- .debug_ranges 0 : { *(.debug_ranges) }
- /* DWARF extension */
- .debug_macro 0 : { *(.debug_macro) }
- .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
- .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
- /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
-}
-/* @endcond */
diff --git a/c/src/lib/libbsp/arm/gba/timer/timer.c b/c/src/lib/libbsp/arm/gba/timer/timer.c
deleted file mode 100644
index 9aad103..0000000
--- a/c/src/lib/libbsp/arm/gba/timer/timer.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * @file timer.c
- *
- * GBA Timer driver.
- */
-/*
- * RTEMS GBA BSP
- *
- * Copyright (c) 2002 by Jay Monkman <jtm at smoothsmoothie.com>
- *
- * Copyright (c) 2004 Markku Puro <markku.puro at kopteri.net>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- *
- *
- * Notes:
- * This file manages the benchmark timer used by the RTEMS Timing Test
- * Suite. Each measured time period is demarcated by calls to
- * benchmark_timer_initialize() and benchmark_timer_read(). benchmark_timer_read() usually returns
- * the number of microseconds since benchmark_timer_initialize() exitted.
- *
- * It is important that the timer start/stop overhead be determined
- * when porting or modifying this code.
- */
-
-#include <rtems.h>
-#include <bsp.h>
-#include <rtems/btimer.h>
-#include <bsp/irq.h>
-#include <gba.h>
-
-/*
- * Set up the timer hardware
- * 1 / 16.78Mhz => 59.595 ns
- * 64 / 16.78Mhz => 3.814 us
- * 256 / 16.78Mhz => 15.256 us
- * 1024 / 16.78Mhz => 61.025 us
- */
-#define __TimePreScaler 1
-#define __TickTime_ns ((1000000000L/__ClockFrequency)*__TimePreScaler)
-#define __TickTime_us ((1000000L/__ClockFrequency)*__TimePreScaler)
-
-#if (__TimePreScaler==1)
- #define GBA_TM0CNT_PS 0x0000
-#elif (__TimePreScaler==64)
- #define GBA_TM0CNT_PS 0x0001
-#elif (__TimePreScaler==256)
- #define GBA_TM0CNT_PS 0x0002
-#elif (__TimePreScaler==1024)
- #define GBA_TM0CNT_PS 0x0003
-#else
- #define GBA_TM0CNT_PS 0x0003
-#endif
-
-bool benchmark_timer_find_average_overhead;
-
-/**
- * @brief benchmark_timer_initialize start TM0 and TM1
- *
- * @param None
- * @return None
- */
-void benchmark_timer_initialize( void )
-{
- GBA_REG_TM1CNT = 0x0000; /* Stop Counters */
- GBA_REG_TM0CNT = 0x0000;
- GBA_REG_TM1D = 0x0000; /* Reset Counters */
- GBA_REG_TM0D = 0x0000;
- /* Start Counters */
- GBA_REG_TM1CNT = 0x0084; /* Start Count Up timing */
- GBA_REG_TM0CNT = (0x0080|GBA_TM0CNT_PS); /* Start Count */
-}
-
-/*
- * The following controls the behavior of benchmark_timer_read().
- *
- * AVG_OVEREHAD is the overhead for starting and stopping the timer. It
- * is usually deducted from the number returned.
- *
- * LEAST_VALID is the lowest number this routine should trust. Numbers
- * below this are "noise" and zero is returned.
- */
-
-#define AVG_OVERHEAD 3 /**< It typically takes 3 microseconds */
-#define LEAST_VALID 1 /**< Don't trust a clicks value lower than this */
-
-/**
- * @brief benchmark_timer_read return timer countervalue in microseconds.
- *
- * Used in Timing Test Suite.
- *
- * @param None
- * @return Timer value in microseconds
- */
-benchmark_timer_t benchmark_timer_read( void )
-{
- uint32_t ticks;
- uint32_t total;
-
- /* Stop Counters */
- GBA_REG_TM0CNT = 0x0000;
- GBA_REG_TM1CNT = 0x0000;
- /* Read Counters */
- ticks = (GBA_REG_TM1D<<16) | GBA_REG_TM0D;
- if ( ticks < LEAST_VALID ) {
- return 0; /* below timer resolution */
- }
- /* convert to uS */
- total = ((ticks * __TickTime_ns) / 1000);
- if ( benchmark_timer_find_average_overhead == true ) {
- return total; /* in microseconds */
- }
- else {
- if ( total < AVG_OVERHEAD ) {
- return 0;
- }
- return (total - AVG_OVERHEAD);
- }
-}
-
-/**
- * @brief Set benchmark_timer_find_average_overhead flag.
- *
- * Used in Timing Test Suite.
- *
- * @param find_flag bool find_flag
- * @return None
-*/
-void benchmark_timer_disable_subtracting_average_overhead(bool find_flag)
-{
- benchmark_timer_find_average_overhead = find_flag;
-}
--
2.1.4
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. If you are not the intended recipient you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited.
More information about the devel
mailing list