SAMV71 Xplained Ultra Software Package 1.5

flashd.h

Go to the documentation of this file.
00001 /* ---------------------------------------------------------------------------- */
00002 /*                  Atmel Microcontroller Software Support                      */
00003 /*                       SAM Software Package License                           */
00004 /* ---------------------------------------------------------------------------- */
00005 /* Copyright (c) 2015, Atmel Corporation                                        */
00006 /*                                                                              */
00007 /* All rights reserved.                                                         */
00008 /*                                                                              */
00009 /* Redistribution and use in source and binary forms, with or without           */
00010 /* modification, are permitted provided that the following condition is met:    */
00011 /*                                                                              */
00012 /* - Redistributions of source code must retain the above copyright notice,     */
00013 /* this list of conditions and the disclaimer below.                            */
00014 /*                                                                              */
00015 /* Atmel's name may not be used to endorse or promote products derived from     */
00016 /* this software without specific prior written permission.                     */
00017 /*                                                                              */
00018 /* DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR   */
00019 /* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
00020 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE   */
00021 /* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,      */
00022 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
00023 /* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,  */
00024 /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF    */
00025 /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING         */
00026 /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
00027 /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                           */
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