00001 // This file is part of MOS, the MANTIS Operating System 00002 // See http://mantis.cs.colorado.edu/ 00003 // 00004 // Copyright (c) 2002 - 2007 University of Colorado, Boulder 00005 // 00006 // All rights reserved. 00007 // 00008 // Redistribution and use in source and binary forms, with or without 00009 // modification, are permitted provided that the following conditions are 00010 // met: 00011 // 00012 // * Redistributions of source code must retain the above copyright 00013 // notice, this list of conditions and the following disclaimer. 00014 // * Redistributions in binary form must reproduce the above 00015 // copyright notice, this list of conditions and the following 00016 // disclaimer in the documentation and/or other materials provided 00017 // with the distribution. 00018 // * Neither the name of the MANTIS Project nor the names of its 00019 // contributors may be used to endorse or promote products derived 00020 // from this software without specific prior written permission. 00021 // 00022 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00023 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00024 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00025 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00026 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00027 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00028 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00029 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00030 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00031 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 00032 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00033 // POSSIBILITY OF SUCH DAMAGE. 00034 00035 /*the basic on and off functions are available to external users, 00036 but the recommended use is through the dev_write call*/ 00037 00047 #ifndef _AVR_EEPROM_H 00048 #define _AVR_EEPROM_H 00049 00050 /* The following EEPROM areas are used by various components of MOS: 00051 * 00052 * 0x000 to 0x00B Boot control block (see boot.h) 00053 * 0x00C to 0x01F Deluge control block (see deluge.c) 00054 * 0x020 to 0x07F Deluge page CRC's (see deluge.c) 00055 * 0x080 to 0x0B3 Metadata for simple file system (see simple_fs.c) 00056 * 0x0B4 to 0xFFF Unused space 00057 */ 00058 #define DELUGE_INSTANCE_COUNT (4) 00059 00060 #define DELUGE_CONTROL_BLOCK_ADDR (0x00C) /* Right after the boot CB */ 00061 #define DELUGE_CONTROL_BLOCK_SIZE (16) 00062 00063 #define DELUGE_DIRECTORY_ADDR (DELUGE_CONTROL_BLOCK_ADDR + \ 00064 DELUGE_INSTANCE_COUNT * \ 00065 DELUGE_CONTROL_BLOCK_SIZE) 00066 00067 #define DELUGE_DIRECTORY_SIZE (1) 00068 00069 #define DELUGE_PAGE_CRC_ADDR (DELUGE_DIRECTORY_ADDR + \ 00070 DELUGE_INSTANCE_COUNT * \ 00071 DELUGE_DIRECTORY_SIZE) 00072 00073 #define SIMPLE_FS_ADDR (DELUGE_PAGE_CRC_ADDR + 96) 00074 #define SIMPLE_FS_MAX_FILES 10 00075 #define SIMPLE_FS_SIZE (2 + SIMPLE_FS_MAX_FILES * 12) 00076 00077 #define DELUGE_STATS_ADDR (SIMPLE_FS_ADDR + SIMPLE_FS_SIZE) 00078 #define DELUGE_STATS_COUNT 32 00079 #define DELUGE_STATS_SIZE 8 // 4 16-bit fields 00080 00081 #define AVR_EEPROM_UNUSED_ADDR (DELUGE_STATS_ADDR + \ 00082 DELUGE_STATS_COUNT * \ 00083 DELUGE_STATS_SIZE) 00084 00087 void avr_eeprom_init(void); 00088 00089 #endif
1.4.6