00001 /* flashWrite.h 00002 00003 Copyright 2008 Sean Keys 00004 00005 This file is part of the FreeEMS project. 00006 00007 FreeEMS software is free software: you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation, either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 FreeEMS software is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with any FreeEMS software. If not, see <http://www.gnu.org/licenses/>. 00019 00020 We ask that if you make any changes to this file you send them upstream to us at admin@diyefi.org 00021 00022 Thank you for choosing FreeEMS to run your engine! */ 00023 00024 /* Header file multiple inclusion protection courtesy eclipse Header Template */ 00025 /* and http://gcc.gnu.org/onlinedocs/gcc-3.1.1/cpp/ C pre processor manual */ 00026 #ifndef FILE_FLASHWRITE_H_SEEN 00027 #define FILE_FLASHWRITE_H_SEEN 00028 00029 #ifdef FLASHWRITE_C 00030 #define EXTERN 00031 #else 00032 #define EXTERN extern 00033 #endif 00034 00035 // TODO : 00036 // #define CBEIF mask 00037 #define ERASE_CMD 0x40 //TODO add more info 00038 #define WORD_PROGRAM 0x20 /* Word = 2 bytes, this is the minimum write size, 64K of these per block, 512 per sector */ 00039 #define SECTOR_ERASE 0x40 /* Sector = 1024 bytes, there are 128 sectors to a block, and 4 blocks to the chip */ 00040 00041 00042 EXTERN unsigned char eraseSector(unsigned short*); 00043 EXTERN unsigned char writeWord(unsigned short*,unsigned short); 00044 EXTERN unsigned char writeAlignedBlock(unsigned short*, unsigned short*); 00045 EXTERN void ping(unsigned short); 00046 00047 00048 /* Define Return Codes */ 00049 #define Flash_Address_Not_Aligned -1; 00050 #define Flash_Not_Erased -2; 00051 #define Access_Error -3; 00052 #define Protection_Error -4; 00053 #define Address_Not_Start_Of_Flash_Sector -5; 00054 #define Command_Successful 1; 00055 00056 #undef EXTERN 00057 00058 #else 00059 /* let us know if we are being untidy with headers */ 00060 #warning "Header file FLASHWRITE_H seen before, sort it out!" 00061 /* end of the wrapper ifdef from the very top */ 00062 #endif