00001 /* 00002 00003 MegaPlusPlus a C++ implementation for the MegaSquirt-II 00004 Copyright (C) 2006 Keith Ballantyne 00005 00006 This program is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU General Public License 00008 version 2 as published by the Free Software Foundation. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00018 00019 */ 00020 00021 00022 #ifndef CONSTANTS_H 00023 #define CONSTANTS_H 00024 00035 namespace Constants { 00036 enum { 00038 TOTAL_TASKS = 5, 00040 TOTAL_FEATURES = 30, 00042 MODULE_BASE = 0x0000 00043 }; 00044 00045 00055 volatile char *const PEAR = (volatile char *)MODULE_BASE+0x0A; 00057 volatile char *const MODE = (volatile char *)MODULE_BASE+0x0B; 00077 volatile char *const PUCR =(volatile char *)MODULE_BASE+0x0C; 00079 volatile char *const RDRIV =(volatile char *)MODULE_BASE+0x0D; 00081 volatile char *const EBICTL = (volatile char *)MODULE_BASE+0x0E; 00082 00088 volatile char *const INITRM = (volatile char *)MODULE_BASE+0x10; 00090 volatile char *const INITRG = (volatile char *)MODULE_BASE+0x11; 00092 volatile char *const INITEE = (volatile char *)MODULE_BASE+0x12; 00094 volatile char *const MISC = (volatile char *)MODULE_BASE+0x13; 00096 volatile char *const MEMSIZ0 = (volatile char *)MODULE_BASE+0x1C; 00098 volatile char *const MEMSIZ1 = (volatile char *)MODULE_BASE+0x1D; 00100 volatile char *const PAGE = (volatile char *)MODULE_BASE+0x30; 00101 00107 volatile char *const ITCR = (volatile char *)MODULE_BASE+0x15; 00109 volatile char *const ITEST = (volatile char *)MODULE_BASE+0x16; 00111 volatile char *const INTCR = (volatile char *)MODULE_BASE+0x1E; 00113 volatile char *const HIPRO = (volatile char *)MODULE_BASE+0x1F; 00114 00119 volatile char *const VREGCTL = (volatile char *)MODULE_BASE+0x19; 00121 volatile char *const SYNR = (volatile char *)MODULE_BASE+0x34; 00123 volatile char *const REFDV = (volatile char *)MODULE_BASE+0x35; 00125 volatile char *const CRGFLG = (volatile char *)MODULE_BASE+0x37; 00127 volatile char *const CRGINT = (volatile char *)MODULE_BASE+0x38; 00129 volatile char *const CLKSEL = (volatile char *)MODULE_BASE+0x39; 00131 volatile char *const PLLCTL = (volatile char *)MODULE_BASE+0x3A; 00133 volatile char *const RTICTL = (volatile char *)MODULE_BASE+0x3B; 00135 volatile char *const COPCTL = (volatile char *)MODULE_BASE+0x3C; 00137 volatile char *const ARMCOP = (volatile char *)MODULE_BASE+0x3F; 00138 00143 volatile char *const PARTIDH = (volatile char *)MODULE_BASE+0x1A; 00145 volatile char *const PARTIDL = (volatile char *)MODULE_BASE+0x1B; 00146 00151 volatile char *const ATDCTL0 = (volatile char *)MODULE_BASE+0x80; 00153 volatile char *const ATDCTL1 = (volatile char *)MODULE_BASE+0x81; 00155 volatile char *const ATDCTL2 = (volatile char *)MODULE_BASE+0x82; 00157 volatile char *const ATDCTL3 = (volatile char *)MODULE_BASE+0x83; 00159 volatile char *const ATDCTL4 = (volatile char *)MODULE_BASE+0x84; 00161 volatile char *const ATDCTL5 = (volatile char *)MODULE_BASE+0x85; 00163 volatile char *const ATDSTAT0 = (volatile char *)MODULE_BASE+0x86; 00165 volatile char *const ATDTEST0 = (volatile char *)MODULE_BASE+0x88; 00167 volatile char *const ATDTEST1 = (volatile char *)MODULE_BASE+0x89; 00169 volatile char *const ATDSTAT1 = (volatile char *)MODULE_BASE+0x8B; 00171 volatile char *const ATDDIEN = (volatile char *)MODULE_BASE+0x8D; 00173 volatile char *const PORTAD = (volatile char *)MODULE_BASE+0x8F; 00175 volatile char *const ATDR0H = (volatile char *)MODULE_BASE+0x90; 00177 volatile char *const ATDR0L = (volatile char *)MODULE_BASE+0x91; 00179 volatile char *const ATDR1H = (volatile char *)MODULE_BASE+0x92; 00181 volatile char *const ATDR1L = (volatile char *)MODULE_BASE+0x93; 00183 volatile char *const ATDR2H = (volatile char *)MODULE_BASE+0x94; 00185 volatile char *const ATDR2L = (volatile char *)MODULE_BASE+0x95; 00187 volatile char *const ATDR3H = (volatile char *)MODULE_BASE+0x96; 00189 volatile char *const ATDR3L = (volatile char *)MODULE_BASE+0x97; 00191 volatile char *const ATDR4H = (volatile char *)MODULE_BASE+0x98; 00193 volatile char *const ATDR4L = (volatile char *)MODULE_BASE+0x99; 00195 volatile char *const ATDR5H = (volatile char *)MODULE_BASE+0x9A; 00197 volatile char *const ATDR5L = (volatile char *)MODULE_BASE+0x9B; 00199 volatile char *const ATDR6H = (volatile char *)MODULE_BASE+0x9C; 00201 volatile char *const ATDR6L = (volatile char *)MODULE_BASE+0x9D; 00203 volatile char *const ATDR7H = (volatile char *)MODULE_BASE+0x9E; 00205 volatile char *const ATDR7L = (volatile char *)MODULE_BASE+0x9F; 00206 00233 volatile char *const SCIBDH = (volatile char *)MODULE_BASE+0xC8; 00237 volatile char *const SCIBDL = (volatile char *)MODULE_BASE+0xC9; 00293 volatile char *const SCICR1 = (volatile char *)MODULE_BASE+0xCA; 00295 volatile char *const SCICR2 = (volatile char *)MODULE_BASE+0xCB; 00297 volatile char *const SCISR1 = (volatile char *)MODULE_BASE+0xCC; 00299 volatile char *const SCISR2 = (volatile char *)MODULE_BASE+0xCD; 00301 volatile char *const SCIDRH = (volatile char *)MODULE_BASE+0xCE; 00303 volatile char *const SCIDRL = (volatile char *)MODULE_BASE+0xCF; 00304 00313 volatile char *const PORTA =(volatile char *)MODULE_BASE; 00315 volatile char *const PORTB =(volatile char *)MODULE_BASE+1; 00321 volatile char *const DDRA =(volatile char *)MODULE_BASE+2; 00327 volatile char *const DDRB =(volatile char *)MODULE_BASE+3; 00329 volatile char *const PORTE =(volatile char *)MODULE_BASE+8; 00335 volatile char *const DDRE =(volatile char *)MODULE_BASE+9; 00336 00338 volatile char *const PORTK =(volatile char *)MODULE_BASE+32; 00344 volatile char *const DDRK =(volatile char *)MODULE_BASE+33; 00345 }; 00346 00347 #endif