SAMV71 Xplained Ultra Software Package 1.4

flashd.h

Go to the documentation of this file.
00001 /* ----------------------------------------------------------------------------
00002  *         SAM Software Package License
00003  * ----------------------------------------------------------------------------
00004  * Copyright (c) 2012, Atmel Corporation
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 met:
00010  *
00011  * - Redistributions of source code must retain the above copyright notice,
00012  * this list of conditions and the disclaimer below.
00013  *
00014  * Atmel's name may not be used to endorse or promote products derived from
00015  * this software without specific prior written permission.
00016  *
00017  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
00018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00019  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
00020  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
00021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00022  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
00023  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00024  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00025  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00026  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027  * ----------------------------------------------------------------------------
00028 */
00029 
00030 /**
00031  * \file
00032  *
00033  * The flash driver provides the unified interface for flash program operations.
00034  *
00035  */
00036 
00037 #ifndef _FLASHD_
00038 #define _FLASHD_
00039 
00040 #include <stdint.h>
00041 
00042 #ifdef __cplusplus
00043  extern "C" {
00044 #endif
00045    
00046 #define GPNVBit_SecurityBit     0
00047 #define GPNVBit_BootMode        1
00048 #define GPNVBit_TCMBit1         6
00049 #define GPNVBit_TCMBit2         7
00050 
00051 /*----------------------------------------------------------------------------
00052  *        Exported functions
00053  *----------------------------------------------------------------------------*/
00054 
00055 extern void FLASHD_Initialize( uint32_t dwMCk, uint32_t dwUseIAP ) ;
00056 
00057 extern uint32_t FLASHD_Erase( uint32_t dwAddress ) ;
00058 
00059 extern uint32_t FLASHD_EraseSector( uint32_t dwAddress ) ;
00060 
00061 extern uint32_t FLASHD_ErasePages( uint32_t dwAddress, uint32_t dwPageNum ) ;
00062 
00063 extern uint32_t FLASHD_Write( uint32_t dwAddress, const void *pvBuffer, 
00064         uint32_t dwSize ) ;
00065 
00066 extern uint32_t FLASHD_Lock( uint32_t dwStart, uint32_t dwEnd, 
00067         uint32_t *pdwActualStart, uint32_t *pdwActualEnd ) ;
00068 
00069 extern uint32_t FLASHD_Unlock( uint32_t dwStart, uint32_t dwEnd, 
00070         uint32_t *pdwActualStart, uint32_t *pdwActualEnd ) ;
00071 
00072 extern uint32_t FLASHD_IsLocked( uint32_t dwStart, uint32_t dwEnd ) ;
00073 
00074 extern uint32_t FLASHD_SetGPNVM( uint8_t gpnvm ) ;
00075 
00076 extern uint32_t FLASHD_ClearGPNVM( uint8_t gpnvm ) ;
00077 
00078 extern uint32_t FLASHD_IsGPNVMSet( uint8_t gpnvm ) ;
00079 
00080 #define FLASHD_IsSecurityBitSet() FLASHD_IsGPNVMSet( 0 )
00081 
00082 #define FLASHD_SetSecurityBit()   FLASHD_SetGPNVM( 0 )
00083 
00084 extern uint32_t FLASHD_ReadUniqueID( uint32_t* pdwUniqueID ) ;
00085 
00086 #ifdef __cplusplus
00087 }
00088 #endif
00089 
00090 #endif /* #ifndef _FLASHD_ */
00091 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines