1 /* --COPYRIGHT--,BSD\r
2 * Copyright (c) 2014, Texas Instruments Incorporated\r
3 * All rights reserved.\r
4 *\r
5 * Redistribution and use in source and binary forms, with or without\r
6 * modification, are permitted provided that the following conditions\r
7 * are met:\r
8 *\r
9 * * Redistributions of source code must retain the above copyright\r
10 * notice, this list of conditions and the following disclaimer.\r
11 *\r
12 * * Redistributions in binary form must reproduce the above copyright\r
13 * notice, this list of conditions and the following disclaimer in the\r
14 * documentation and/or other materials provided with the distribution.\r
15 *\r
16 * * Neither the name of Texas Instruments Incorporated nor the names of\r
17 * its contributors may be used to endorse or promote products derived\r
18 * from this software without specific prior written permission.\r
19 *\r
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
31 * --/COPYRIGHT--*/\r
32 //*****************************************************************************\r
33 //\r
34 // flash.h - Driver for the FLASH Module.\r
35 //\r
36 //*****************************************************************************\r
37 \r
38 #ifndef __MSP430WARE_FLASH_H__\r
39 #define __MSP430WARE_FLASH_H__\r
40 \r
41 #include "inc/hw_memmap.h"\r
42 \r
43 #ifdef __MSP430_HAS_FLASH__\r
44 \r
45 //*****************************************************************************\r
46 //\r
47 // If building with a C++ compiler, make all of the definitions in this header\r
48 // have a C binding.\r
49 //\r
50 //*****************************************************************************\r
51 #ifdef __cplusplus\r
52 extern "C"\r
53 {\r
54 #endif\r
55 \r
56 //*****************************************************************************\r
57 //\r
58 // The following are values that can be passed to the mask parameter for\r
59 // functions: FLASH_status() as well as returned by the FLASH_status()\r
60 // function.\r
61 //\r
62 //*****************************************************************************\r
63 #define FLASH_READY_FOR_NEXT_WRITE WAIT\r
64 #define FLASH_ACCESS_VIOLATION_INTERRUPT_FLAG ACCVIFG\r
65 #define FLASH_PASSWORD_WRITTEN_INCORRECTLY KEYV\r
66 #define FLASH_BUSY BUSY\r
67 \r
68 //*****************************************************************************\r
69 //\r
70 // Prototypes for the APIs.\r
71 //\r
72 //*****************************************************************************\r
73 extern void FLASH_segmentErase(uint16_t baseAddress,\r
74 uint8_t *flash_ptr);\r
75 \r
76 extern void FLASH_bankErase(uint16_t baseAddress,\r
77 uint8_t *flash_ptr);\r
78 \r
79 extern void FLASH_massErase(uint16_t baseAddress,\r
80 uint8_t *flash_ptr);\r
81 \r
82 extern bool FLASH_eraseCheck(uint16_t baseAddress,\r
83 uint8_t *flash_ptr,\r
84 uint16_t numberOfBytes);\r
85 \r
86 extern void FLASH_write8(uint16_t baseAddress,\r
87 uint8_t *data_ptr,\r
88 uint8_t *flash_ptr,\r
89 uint16_t count);\r
90 \r
91 extern void FLASH_write16(uint16_t baseAddress,\r
92 uint16_t *data_ptr,\r
93 uint16_t *flash_ptr,\r
94 uint16_t count);\r
95 \r
96 extern void FLASH_write32(uint16_t baseAddress,\r
97 uint32_t *data_ptr,\r
98 uint32_t *flash_ptr,\r
99 uint16_t count);\r
100 \r
101 extern void FLASH_memoryFill32(uint16_t baseAddress,\r
102 uint32_t value,\r
103 uint32_t *flash_ptr,\r
104 uint16_t count);\r
105 \r
106 extern uint8_t FLASH_status(uint16_t baseAddress,\r
107 uint8_t mask);\r
108 \r
109 extern void FLASH_lockInfoA(uint16_t baseAddress);\r
110 \r
111 extern void FLASH_unlockInfoA(uint16_t baseAddress);\r
112 \r
113 //*****************************************************************************\r
114 //\r
115 // Mark the end of the C bindings section for C++ compilers.\r
116 //\r
117 //*****************************************************************************\r
118 #ifdef __cplusplus\r
119 }\r
120 #endif\r
121 \r
122 #endif\r
123 #endif // __MSP430WARE_FLASH_H__\r