- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

# flash_lib.h

Go to the documentation of this file.

    00001 /*This file is prepared for Doxygen automatic documentation generation.*/
    00013
    00014 /* Copyright (c) 2009 Atmel Corporation. All rights reserved.
    00015  *
    00016  * Redistribution and use in source and binary forms, with or without
    00017  * modification, are permitted provided that the following conditions are met:
    00018  *
    00019  * 1. Redistributions of source code must retain the above copyright notice,
    00020  * this list of conditions and the following disclaimer.
    00021  *
    00022  * 2. Redistributions in binary form must reproduce the above copyright notice,
    00023  * this list of conditions and the following disclaimer in the documentation
    00024  * and/or other materials provided with the distribution.
    00025  *
    00026  * 3. The name of Atmel may not be used to endorse or promote products derived
    00027  * from this software without specific prior written permission.
    00028  *
    00029  * 4. This software may only be redistributed and used in connection with an Atmel
    00030  * AVR product.
    00031  *
    00032  * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
    00033  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    00034  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY AND
    00035  * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
    00036  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    00037  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    00038  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    00039  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    00040  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    00041  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    00042  */
    00043 #ifndef FLASH_LIB_H
    00044 #define FLASH_LIB_H
    00045
    00046
    00047 /*_____ I N C L U D E S ____________________________________________________*/
    00048
    00049 #include "config.h"
    00050
    00051
    00052 /*_____ M A C R O S ________________________________________________________*/
    00053
    00054 /*_____ D E F I N I T I O N S ______________________________________________*/
    00055
    00056 #define FLASH_BLANK_VALUE   0xFF
    00057
    00058 #ifndef FLASH_PAGE_SIZE
    00059 #error You must define FLASH_PAGE_SIZE in bytes in config.h
    00060 #endif
    00061
    00062 #if (FLASH_END==0x1FFFF)
    00063    #define  LAST_BOOT_ENTRY   0xFFFE
    00064 #elif (FLASH_END==0xFFFF)
    00065    #define  LAST_BOOT_ENTRY   0x7FFE
    00066 #elif (FLASH_END==0x3FFF)
    00067    #define LAST_BOOT_ENTRY    0x1FFE
    00068 #else
    00069    #error You must define FLASH_END in bytes in config.h
    00070 #endif
    00071
    00078 #define Flash_read_id1()            ( (*boot_flash_read_sig)(0x0000))
    00079
    00086 #define Flash_read_id2()            ( (*boot_flash_read_sig)(0x0002))
    00087
    00094 #define Flash_read_id3()            ( (*boot_flash_read_sig)(0x0004))
    00095
    00102 #define Flash_read_osccal()         ( (*boot_flash_read_sig)(0x0001))
    00103
    00110 #define Flash_read_fuse_low()       ( (*boot_flash_read_fuse)(0x0000))
    00111
    00118 #define Flash_read_fuse_high()      ( (*boot_flash_read_fuse)(0x0003))
    00119
    00126 #define Flash_read_fuse_extended()  ( (*boot_flash_read_fuse)(0x0002))
    00127
    00134 #define Flash_read_lock()           ( (*boot_flash_read_fuse)(0x0001))
    00135
    00136
    00137 #define Flash_write_lb(b)           ((*boot_lock_wr_bits)(b))
    00138
    00139
    00140
    00141 /*_____ D E C L A R A T I O N S ____________________________________________*/
    00142
    00143
    00144 extern U8 (*boot_flash_read_sig) (unsigned long adr);
    00145 extern U8 (*boot_flash_read_fuse) (unsigned long adr);
    00146 extern void (*boot_lock_wr_bits) (unsigned char val);
    00154 extern void flash_wr_byte(Uint32 addr_byte, Uchar value);
    00155
    00165 extern Uchar flash_wr_block(Byte _MemType_* src, Uint32 dst, U16 n);
    00166
    00171 extern void flash_erase(void);
    00172
    00180 extern U8 flash_rd_byte(Uchar farcode* addr);
    00181
    00189 extern U16 flash_rd_word(U16 farcode* addr);
    00190
    00191 #endif  /* FLASH_LIB_H */
    00192
    00193
    00194
    00195
    00196
    00197
    00198
    00199
    00200
    00201
    00202
    00203
    00204
    00205