flashWrite.h

Go to the documentation of this file.
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

Generated on Mon Nov 10 21:18:50 2008 for freeems by  doxygen 1.5.2