MSPM0G1X0X_G3X0X Driver Library  1.10.01.05
dl_flashctl.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 /*!****************************************************************************
33  * @file dl_flashctl.h
34  * @brief Flash Controller Driver Library
35  * @defgroup FLASHCTL Flash Controller (FLASHCTL)
36  *
37  * @anchor ti_dl_dl_flashctl_Overview
38  * # Overview
39  *
40  * The Flash Controller Driver Library allows full configuration of
41  * the MSPM0 Non-Volatile memory system.
42  * The non-volatile memory (NVM) system provides nonvolatile flash memory for
43  * storing executable code and data.
44  *
45  * <hr>
46  ******************************************************************************
47  */
51 #ifndef ti_dl_dl_flashctl__include
52 #define ti_dl_dl_flashctl__include
53 
54 #include <stdbool.h>
55 #include <stdint.h>
56 
57 #include <ti/devices/msp/msp.h>
58 #include <ti/driverlib/dl_common.h>
60 
61 #ifdef __cplusplus
62 extern "C" {
63 #endif
64 
65 /* clang-format off */
66 
70 #define FLASHCTL_BANK0_ADDRESS (0x00000000)
71 
75 #define FLASHCTL_MAIN_ADDRESS (0x00000000)
76 
80 #define FLASHCTL_NONMAIN_ADDRESS (0x41c00000)
81 
85 #define NUMBER_OF_NONMAIN_SECTORS (1)
86 
90 #define DL_FLASHCTL_PROGRAM_8_WITHOUT_ECC (0x00000001)
91 
95 #define DL_FLASHCTL_PROGRAM_16_WITHOUT_ECC (0x00000003)
96 
100 #define DL_FLASHCTL_PROGRAM_32_WITHOUT_ECC (0x0000000F)
101 
105 #define DL_FLASHCTL_PROGRAM_64_WITHOUT_ECC (0x000000FF)
106 
110 #define DL_FLASHCTL_PROGRAM_8_WITH_ECC (0x00000101)
111 
115 #define DL_FLASHCTL_PROGRAM_16_WITH_ECC (0x00000103)
116 
120 #define DL_FLASHCTL_PROGRAM_32_WITH_ECC (0x0000010F)
121 
125 #define DL_FLASHCTL_PROGRAM_64_WITH_ECC (0x000001FF)
126 
130 #define DL_FLASHCTL_READ_VERIFY_8_WITHOUT_ECC (0x00000001)
131 
135 #define DL_FLASHCTL_READ_VERIFY_16_WITHOUT_ECC (0x00000003)
136 
140 #define DL_FLASHCTL_READ_VERIFY_32_WITHOUT_ECC (0x0000000F)
141 
145 #define DL_FLASHCTL_READ_VERIFY_64_WITHOUT_ECC (0x000000FF)
146 
150 #define DL_FLASHCTL_READ_VERIFY_8_WITH_ECC (0x00000101)
151 
155 #define DL_FLASHCTL_READ_VERIFY_16_WITH_ECC (0x00000103)
156 
160 #define DL_FLASHCTL_READ_VERIFY_32_WITH_ECC (0x0000010F)
161 
165 #define DL_FLASHCTL_READ_VERIFY_64_WITH_ECC (0x000001FF)
166 
173 #define DL_FLASHCTL_INTERRUPT_DONE (FLASHCTL_MIS_DONE_SET)
174 
182 #define DL_FLASHCTL_COMMAND_TYPE_NO_OPERATION (FLASHCTL_CMDTYPE_COMMAND_NOOP)
183 
187 #define DL_FLASHCTL_COMMAND_TYPE_PROGRAM (FLASHCTL_CMDTYPE_COMMAND_PROGRAM)
188 
192 #define DL_FLASHCTL_COMMAND_TYPE_ERASE (FLASHCTL_CMDTYPE_COMMAND_ERASE)
193 
197 #define DL_FLASHCTL_COMMAND_TYPE_READ_VERIFY \
198  (FLASHCTL_CMDTYPE_COMMAND_READVERIFY)
199 
203 #define DL_FLASHCTL_COMMAND_TYPE_BLANK_VERIFY \
204  (FLASHCTL_CMDTYPE_COMMAND_BLANKVERIFY)
205 
209 #define DL_FLASHCTL_COMMAND_TYPE_MODE_CHANGE \
210  (FLASHCTL_CMDTYPE_COMMAND_MODECHANGE)
211 
215 #define DL_FLASHCTL_COMMAND_TYPE_CLEAR_STATUS \
216  (FLASHCTL_CMDTYPE_COMMAND_CLEARSTATUS)
217 
219 /* clang-format on */
220 
222 typedef enum {
224  DL_FLASHCTL_COMMAND_SIZE_ONE_WORD = FLASHCTL_CMDTYPE_SIZE_ONEWORD,
226  DL_FLASHCTL_COMMAND_SIZE_TWO_WORDS = FLASHCTL_CMDTYPE_SIZE_TWOWORD,
228  DL_FLASHCTL_COMMAND_SIZE_FOUR_WORDS = FLASHCTL_CMDTYPE_SIZE_FOURWORD,
230  DL_FLASHCTL_COMMAND_SIZE_EIGHT_WORDS = FLASHCTL_CMDTYPE_SIZE_EIGHTWORD,
232  DL_FLASHCTL_COMMAND_SIZE_SECTOR = FLASHCTL_CMDTYPE_SIZE_SECTOR,
234  DL_FLASHCTL_COMMAND_SIZE_BANK = FLASHCTL_CMDTYPE_SIZE_BANK
235 
237 
239 typedef enum {
241  DL_FLASHCTL_REGION_SELECT_MAIN = FLASHCTL_CMDCTL_REGIONSEL_MAIN,
243  DL_FLASHCTL_REGION_SELECT_NONMAIN = FLASHCTL_CMDCTL_REGIONSEL_NONMAIN
244 
246 
248 typedef enum {
250  DL_FLASHCTL_BANK_SELECT_0 = FLASHCTL_CMDCTL_BANKSEL_BANK0,
252  DL_FLASHCTL_BANK_SELECT_1 = FLASHCTL_CMDCTL_BANKSEL_BANK1,
254  DL_FLASHCTL_BANK_SELECT_2 = FLASHCTL_CMDCTL_BANKSEL_BANK2,
256  DL_FLASHCTL_BANK_SELECT_3 = FLASHCTL_CMDCTL_BANKSEL_BANK3,
258  DL_FLASHCTL_BANK_SELECT_4 = FLASHCTL_CMDCTL_BANKSEL_BANK4
260 
262 typedef enum {
267  (FLASHCTL_STATCMD_FAILWEPROT_STATFAIL),
269  DL_FLASHCTL_FAIL_TYPE_VERIFY_ERROR = FLASHCTL_STATCMD_FAILVERIFY_STATFAIL,
272  FLASHCTL_STATCMD_FAILILLADDR_STATFAIL,
274  DL_FLASHCTL_FAIL_TYPE_WRONG_BANK_MODE = FLASHCTL_STATCMD_FAILMODE_STATFAIL,
276  DL_FLASHCTL_FAIL_TYPE_MISCELLANEOUS = FLASHCTL_STATCMD_FAILMISC_STATFAIL,
278 
280 typedef enum {
282  DL_FLASHCTL_COMMAND_STATUS_PASSED = (FLASHCTL_STATCMD_CMDDONE_STATDONE |
283  FLASHCTL_STATCMD_CMDPASS_STATPASS),
285  DL_FLASHCTL_COMMAND_STATUS_FAILED = (FLASHCTL_STATCMD_CMDDONE_STATDONE |
286  FLASHCTL_STATCMD_CMDPASS_STATFAIL),
289  (FLASHCTL_STATCMD_CMDINPROGRESS_STATINPROGRESS)
290 
292 
294 typedef enum {
296  DL_FLASHCTL_IIDX_DONE = FLASHCTL_IIDX_STAT_DONE
298 
305 __STATIC_INLINE void DL_FlashCTL_enableInterrupt(FLASHCTL_Regs *flashctl)
306 {
307  flashctl->GEN.IMASK = FLASHCTL_IMASK_DONE_ENABLED;
308 }
309 
316 __STATIC_INLINE void DL_FlashCTL_disableInterrupt(FLASHCTL_Regs *flashctl)
317 {
318  flashctl->GEN.IMASK = FLASHCTL_IMASK_DONE_DISABLED;
319 }
320 
331 __STATIC_INLINE bool DL_FlashCTL_isInterruptEnabled(FLASHCTL_Regs *flashctl)
332 {
333  return (flashctl->GEN.IMASK == FLASHCTL_IMASK_DONE_ENABLED);
334 }
335 
348 __STATIC_INLINE uint32_t DL_FlashCTL_getEnabledInterruptStatus(
349  FLASHCTL_Regs *flashctl)
350 {
351  return (flashctl->GEN.MIS);
352 }
353 
367 __STATIC_INLINE uint32_t DL_FlashCTL_getRawInterruptStatus(
368  FLASHCTL_Regs *flashctl)
369 {
370  return (flashctl->GEN.RIS);
371 }
372 
384 __STATIC_INLINE uint32_t DL_FlashCTL_getPendingInterrupt(
385  FLASHCTL_Regs *flashctl)
386 {
387  return (flashctl->GEN.IIDX);
388 }
389 
395 __STATIC_INLINE void DL_FlashCTL_clearInterruptStatus(FLASHCTL_Regs *flashctl)
396 {
397  flashctl->GEN.ICLR = FLASHCTL_ICLR_DONE_CLR;
398 }
399 
408 __STATIC_INLINE bool DL_FlashCTL_isCommandExecuted(FLASHCTL_Regs *flashctl)
409 {
410  return (flashctl->GEN.CMDEXEC == FLASHCTL_CMDEXEC_VAL_EXECUTE);
411 }
412 
419 __STATIC_INLINE void DL_FlashCTL_setCommandExecute(FLASHCTL_Regs *flashctl)
420 {
421  flashctl->GEN.CMDEXEC = FLASHCTL_CMDEXEC_VAL_EXECUTE;
422 }
423 
431 __STATIC_INLINE void DL_FlashCTL_disbleStairStepErase(FLASHCTL_Regs *flashctl)
432 {
433  flashctl->GEN.CMDCTL |= FLASHCTL_CMDCTL_SSERASEDIS_DISABLE;
434 }
435 
445  FLASHCTL_Regs *flashctl)
446 {
447  return ((flashctl->GEN.CMDCTL & FLASHCTL_CMDCTL_SSERASEDIS_MASK) ==
448  FLASHCTL_CMDCTL_SSERASEDIS_DISABLE);
449 }
450 
460 __STATIC_INLINE void DL_FlashCTL_enableStairStepErase(FLASHCTL_Regs *flashctl)
461 {
462  flashctl->GEN.CMDCTL &= ~(FLASHCTL_CMDCTL_SSERASEDIS_MASK);
463 }
464 
480  FLASHCTL_Regs *flashctl)
481 {
482  flashctl->GEN.CMDCTL |= FLASHCTL_CMDCTL_ADDRXLATEOVR_OVERRIDE;
483 }
484 
493  FLASHCTL_Regs *flashctl)
494 {
495  return ((flashctl->GEN.CMDCTL & FLASHCTL_CMDCTL_ADDRXLATEOVR_MASK) ==
496  FLASHCTL_CMDCTL_ADDRXLATEOVR_OVERRIDE);
497 }
498 
507  FLASHCTL_Regs *flashctl)
508 {
509  flashctl->GEN.CMDCTL &= ~(FLASHCTL_CMDCTL_ADDRXLATEOVR_MASK);
510 }
511 
524  FLASHCTL_Regs *flashctl)
525 {
526  flashctl->GEN.CMDCTL |= FLASHCTL_CMDCTL_ECCGENOVR_OVERRIDE;
527 }
528 
537  FLASHCTL_Regs *flashctl)
538 {
539  return ((flashctl->GEN.CMDCTL & FLASHCTL_CMDCTL_ECCGENOVR_MASK) ==
540  FLASHCTL_CMDCTL_ECCGENOVR_OVERRIDE);
541 }
542 
552  FLASHCTL_Regs *flashctl)
553 {
554  flashctl->GEN.CMDCTL &= ~(FLASHCTL_CMDCTL_ECCGENOVR_MASK);
555 }
556 
568 __STATIC_INLINE void DL_FlashCTL_setRegionSelect(
569  FLASHCTL_Regs *flashctl, DL_FLASHCTL_REGION_SELECT region)
570 {
571  DL_Common_updateReg(&flashctl->GEN.CMDCTL, (uint32_t) region,
572  (uint32_t) FLASHCTL_CMDCTL_REGIONSEL_MASK);
573 }
574 
584 __STATIC_INLINE DL_FLASHCTL_REGION_SELECT DL_FlashCTL_getRegionSelect(
585  FLASHCTL_Regs *flashctl)
586 {
587  uint32_t region = flashctl->GEN.CMDCTL & FLASHCTL_CMDCTL_REGIONSEL_MASK;
588 
589  return (DL_FLASHCTL_REGION_SELECT)(region);
590 }
591 
606 __STATIC_INLINE void DL_FlashCTL_setBankSelect(
607  FLASHCTL_Regs *flashctl, DL_FLASHCTL_BANK_SELECT bank)
608 {
609  DL_Common_updateReg(&flashctl->GEN.CMDCTL, (uint32_t) bank,
610  (uint32_t) FLASHCTL_CMDCTL_BANKSEL_MASK);
611 }
612 
625 __STATIC_INLINE DL_FLASHCTL_BANK_SELECT DL_FlashCTL_getBankSelect(
626  FLASHCTL_Regs *flashctl)
627 {
628  uint32_t bank = flashctl->GEN.CMDCTL & FLASHCTL_CMDCTL_BANKSEL_MASK;
629 
630  return (DL_FLASHCTL_BANK_SELECT)(bank);
631 }
632 
662 __STATIC_INLINE void DL_FlashCTL_setCommandByteEnable(
663  FLASHCTL_Regs *flashctl, uint32_t byteMask)
664 {
665  flashctl->GEN.CMDBYTEN = byteMask;
666 }
667 
682 __STATIC_INLINE uint32_t DL_FlashCTL_getCommandByteEnable(
683  FLASHCTL_Regs *flashctl)
684 {
685  return ((uint32_t) flashctl->GEN.CMDCTL &
686  (uint32_t)(FLASHCTL_CMDBYTEN_VAL_MASK));
687 }
688 
713 __STATIC_INLINE void DL_FlashCTL_setCommandData(
714  FLASHCTL_Regs *flashctl, uint8_t index, uint32_t *data)
715 {
716  volatile uint32_t *pReg = &(flashctl->GEN.CMDDATA0) + index;
717 
718  *pReg = *data;
719 }
720 
740 __STATIC_INLINE uint32_t DL_FlashCTL_getCommandData(
741  FLASHCTL_Regs *flashctl, uint8_t index)
742 {
743  volatile uint32_t *pReg = &(flashctl->GEN.CMDDATA0);
744 
745  return (
746  (uint32_t)(*(pReg + index) & (uint32_t) FLASHCTL_CMDDATA0_VAL_MASK));
747 }
748 
770 __STATIC_INLINE void DL_FlashCTL_setCommandDataECC(
771  FLASHCTL_Regs *flashctl, uint8_t index, uint8_t *data)
772 {
773  volatile uint32_t *pReg = &(flashctl->GEN.CMDDATAECC0) + index;
774 
775  *pReg = *data;
776 }
777 
794 __STATIC_INLINE uint8_t DL_FlashCTL_getCommandDataECC(
795  FLASHCTL_Regs *flashctl, uint8_t index)
796 {
797  volatile uint32_t *pReg = &(flashctl->GEN.CMDDATAECC0);
798 
799  return ((uint8_t)(
800  *(pReg + index) & (uint32_t) FLASHCTL_CMDDATAECC0_VAL0_MASK));
801 }
802 
823 __STATIC_INLINE void DL_FlashCTL_setCommandAddress(
824  FLASHCTL_Regs *flashctl, uint32_t address)
825 {
826  flashctl->GEN.CMDADDR = address;
827 }
828 
842  FLASHCTL_Regs *flashctl)
843 {
844  uint32_t commandStatus =
845  flashctl->GEN.STATCMD &
846  (FLASHCTL_STATCMD_CMDDONE_MASK | FLASHCTL_STATCMD_CMDPASS_MASK |
847  FLASHCTL_STATCMD_CMDINPROGRESS_MASK |
848  FLASHCTL_STATCMD_CMDPASS_STATFAIL);
849 
850  return (DL_FLASHCTL_COMMAND_STATUS)(commandStatus);
851 }
852 
863  FLASHCTL_Regs *flashctl)
864 {
865  uint32_t commandFailureType =
866  flashctl->GEN.STATCMD &
867  (FLASHCTL_STATCMD_FAILWEPROT_MASK | FLASHCTL_STATCMD_FAILVERIFY_MASK |
868  FLASHCTL_STATCMD_FAILILLADDR_MASK |
869  FLASHCTL_STATCMD_FAILMODE_MASK | FLASHCTL_STATCMD_FAILMISC_MASK);
870 
871  return (DL_FLASHCTL_FAIL_TYPE)(commandFailureType);
872 }
873 
884 __STATIC_INLINE bool DL_FlashCTL_waitForCmdDone(FLASHCTL_Regs *flashctl)
885 {
886  /* Wait for command to complete */
887  while ((flashctl->GEN.STATCMD & FLASHCTL_STATCMD_CMDDONE_MASK) !=
888  FLASHCTL_STATCMD_CMDDONE_STATDONE) {
889  ;
890  }
891 
892  return ((flashctl->GEN.STATCMD & FLASHCTL_STATCMD_CMDPASS_MASK) ==
893  FLASHCTL_STATCMD_CMDPASS_STATPASS);
894 }
895 
910 __STATIC_INLINE uint32_t DL_FlashCTL_getFlashSectorNumber(
911  FLASHCTL_Regs *flashctl, uint32_t addr)
912 {
913  return (addr >> (uint32_t) 10);
914 }
915 
931 __STATIC_INLINE uint32_t DL_FlashCTL_getFlashSectorNumberInBank(
932  FLASHCTL_Regs *flashctl, uint32_t addr)
933 {
934  uint8_t numBanks = DL_FactoryRegion_getNumBanks();
935  uint32_t mainFlashSize = DL_FactoryRegion_getMAINFlashSize();
936  uint32_t sector, bankFlashSize, sectorInBank;
937 
938  /* Current sector over the whole memory map */
939  sector = DL_FlashCTL_getFlashSectorNumber(flashctl, addr);
940  /* Bank flash size in KB */
941  bankFlashSize = mainFlashSize / numBanks;
942  /* Determine the sector in the current bank */
943  sectorInBank = sector & (bankFlashSize - (uint32_t) 1);
944 
945  return sectorInBank;
946 }
947 
963 __STATIC_INLINE void DL_FlashCTL_setWaitState(
964  FLASHCTL_Regs *flashctl, uint32_t waitState)
965 {
966  flashctl->GEN.CFGCMD = waitState;
967 }
968 
976 __STATIC_INLINE uint32_t DL_FlashCTL_getWaitState(FLASHCTL_Regs *flashctl)
977 {
978  return (flashctl->GEN.CFGCMD & FLASHCTL_CFGCMD_WAITSTATE_MASK);
979 }
980 
1004 void DL_FlashCTL_eraseMemory(FLASHCTL_Regs *flashctl, uint32_t address,
1005  DL_FLASHCTL_COMMAND_SIZE memorySize);
1006 
1039  FLASHCTL_Regs *flashctl, uint32_t address,
1040  DL_FLASHCTL_COMMAND_SIZE memorySize);
1041 
1060 bool DL_FlashCTL_massErase(FLASHCTL_Regs *flashctl);
1061 
1084  FLASHCTL_Regs *flashctl);
1085 
1103 bool DL_FlashCTL_massEraseMultiBank(FLASHCTL_Regs *flashctl);
1104 
1124 bool DL_FlashCTL_factoryReset(FLASHCTL_Regs *flashctl);
1125 
1149  FLASHCTL_Regs *flashctl);
1150 
1170 bool DL_FlashCTL_factoryResetMultiBank(FLASHCTL_Regs *flashctl);
1171 
1201  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data);
1202 
1240  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data);
1241 
1261  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data);
1262 
1290  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data);
1291 
1311  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
1312 
1340  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
1341 
1361  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
1362 
1390  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
1391 
1418  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data);
1419 
1454  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data);
1455 
1482  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data);
1483 
1518  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data);
1519 
1546  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
1547 
1582  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
1583 
1610  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
1611 
1646  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
1647 
1679 void DL_FlashCTL_programMemory8WithECCManual(FLASHCTL_Regs *flashctl,
1680  uint32_t address, uint8_t *data, uint8_t *eccCode);
1681 
1722  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data,
1723  uint8_t *eccCode);
1724 
1756 void DL_FlashCTL_programMemory16WithECCManual(FLASHCTL_Regs *flashctl,
1757  uint32_t address, uint16_t *data, uint8_t *eccCode);
1758 
1799  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data,
1800  uint8_t *eccCode);
1801 
1833 void DL_FlashCTL_programMemory32WithECCManual(FLASHCTL_Regs *flashctl,
1834  uint32_t address, uint32_t *data, uint8_t *eccCode);
1835 
1876  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data,
1877  uint8_t *eccCode);
1878 
1910 void DL_FlashCTL_programMemory64WithECCManual(FLASHCTL_Regs *flashctl,
1911  uint32_t address, uint32_t *data, uint8_t *eccCode);
1912 
1953  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data,
1954  uint8_t *eccCode);
1955 
1990  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data,
1991  uint32_t dataSize, DL_FLASHCTL_REGION_SELECT regionSelect);
1992 
2031  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data,
2032  uint32_t dataSize, DL_FLASHCTL_REGION_SELECT regionSelect);
2033 
2073 bool DL_FlashCTL_programMemoryBlocking64WithECCManual(FLASHCTL_Regs *flashctl,
2074  uint32_t address, uint32_t *data, uint8_t *eccCode, uint32_t dataSize,
2075  DL_FLASHCTL_REGION_SELECT regionSelect);
2076 
2121  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data,
2122  uint8_t *eccCode, uint32_t dataSize,
2123  DL_FLASHCTL_REGION_SELECT regionSelect);
2124 
2155 bool DL_FlashCTL_programMemoryBlocking(FLASHCTL_Regs *flashctl,
2156  uint32_t address, uint32_t *data, uint32_t dataSize,
2157  DL_FLASHCTL_REGION_SELECT regionSelect);
2158 
2193  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data,
2194  uint32_t dataSize, DL_FLASHCTL_REGION_SELECT regionSelect);
2195 
2201 void DL_FlashCTL_unprotectMainMemory(FLASHCTL_Regs *flashctl);
2202 
2208 void DL_FlashCTL_protectMainMemory(FLASHCTL_Regs *flashctl);
2209 
2215 void DL_FlashCTL_unprotectNonMainMemory(FLASHCTL_Regs *flashctl);
2216 
2222 void DL_FlashCTL_protectNonMainMemory(FLASHCTL_Regs *flashctl);
2223 
2229 void DL_FlashCTL_unprotectAllMemory(FLASHCTL_Regs *flashctl);
2230 
2236 void DL_FlashCTL_protectAllMemory(FLASHCTL_Regs *flashctl);
2237 
2246 void DL_FlashCTL_unprotectSector(FLASHCTL_Regs *flashctl, uint32_t addr,
2247  DL_FLASHCTL_REGION_SELECT regionSelect);
2248 
2257 void DL_FlashCTL_protectSector(FLASHCTL_Regs *flashctl, uint32_t addr,
2258  DL_FLASHCTL_REGION_SELECT regionSelect);
2259 
2271  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data);
2272 
2293  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data);
2294 
2306  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data);
2307 
2328  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data);
2329 
2341  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
2342 
2363  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
2364 
2376  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
2377 
2398  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
2399 
2418  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data);
2419 
2445  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data);
2446 
2465  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data);
2466 
2492  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data);
2493 
2512  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
2513 
2539  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
2540 
2559  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
2560 
2586  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data);
2587 
2612 void DL_FlashCTL_readVerify8WithECCManual(FLASHCTL_Regs *flashctl,
2613  uint32_t address, uint8_t *data, uint8_t *eccCode);
2614 
2647  FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data,
2648  uint8_t *eccCode);
2649 
2674 void DL_FlashCTL_readVerify16WithECCManual(FLASHCTL_Regs *flashctl,
2675  uint32_t address, uint16_t *data, uint8_t *eccCode);
2676 
2709  FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data,
2710  uint8_t *eccCode);
2711 
2736 void DL_FlashCTL_readVerify32WithECCManual(FLASHCTL_Regs *flashctl,
2737  uint32_t address, uint32_t *data, uint8_t *eccCode);
2738 
2771  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data,
2772  uint8_t *eccCode);
2773 
2798 void DL_FlashCTL_readVerify64WithECCManual(FLASHCTL_Regs *flashctl,
2799  uint32_t address, uint32_t *data, uint8_t *eccCode);
2800 
2833  FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data,
2834  uint8_t *eccCode);
2835 
2863 void DL_FlashCTL_blankVerify(FLASHCTL_Regs *flashctl, uint32_t address);
2864 
2901  FLASHCTL_Regs *flashctl, uint32_t address);
2902 
2903 #ifdef __cplusplus
2904 }
2905 #endif
2906 
2907 #endif /* ti_dl_dl_flashctl__include */
2908 
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_eraseMemoryFromRAM(FLASHCTL_Regs *flashctl, uint32_t address, DL_FLASHCTL_COMMAND_SIZE memorySize)
Performs an erase on unprotected memory, and executes command from RAM.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryBlockingFromRAM64WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint32_t dataSize, DL_FLASHCTL_REGION_SELECT regionSelect)
Programs provided data with hardware generated ECC code, and executes command from RAM...
__STATIC_INLINE uint32_t DL_FlashCTL_getFlashSectorNumber(FLASHCTL_Regs *flashctl, uint32_t addr)
Gets the sector number of the input address over the whole memory map.
Definition: dl_flashctl.h:910
void DL_FlashCTL_readVerify32(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Verifies 32-bit data in specified address.
__STATIC_INLINE void DL_FlashCTL_setCommandAddress(FLASHCTL_Regs *flashctl, uint32_t address)
Sets the target address for a command.
Definition: dl_flashctl.h:823
__STATIC_INLINE void DL_Common_updateReg(volatile uint32_t *reg, uint32_t val, uint32_t mask)
Writes value to specified register - retaining bits unaffected by mask.
Definition: dl_common.h:63
__STATIC_INLINE DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_getCommandStatus(FLASHCTL_Regs *flashctl)
Returns the status of the current command.
Definition: dl_flashctl.h:841
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM16WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data, uint8_t *eccCode)
Verifies 16-bit data in specified address with user provided ECC code, and executes command from RAM...
void DL_FlashCTL_readVerify32WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode)
Verifies 32-bit data in specified address with user provided ECC code.
void DL_FlashCTL_eraseMemory(FLASHCTL_Regs *flashctl, uint32_t address, DL_FLASHCTL_COMMAND_SIZE memorySize)
Performs an erase on unprotected memory.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM8(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data)
Programs 8 bit data to unprotected memory at the given address, and executes command from RAM...
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM8WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data, uint8_t *eccCode)
Verifies 8-bit data in specified address with user provided ECC code, and executes command from RAM...
void DL_FlashCTL_protectNonMainMemory(FLASHCTL_Regs *flashctl)
Protects all non-main memory from erase/program.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM32(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Programs 32 bit data to unprotected memory at the given address, and executes command from RAM...
__STATIC_INLINE void DL_FlashCTL_clearInterruptStatus(FLASHCTL_Regs *flashctl)
Clear pending flash interrupt.
Definition: dl_flashctl.h:395
Definition: dl_flashctl.h:224
void DL_FlashCTL_readVerify16WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data, uint8_t *eccCode)
Verifies 16-bit data in specified address with user provided ECC code.
Definition: dl_flashctl.h:256
__STATIC_INLINE bool DL_FlashCTL_isAddressOverrideModeEnabled(FLASHCTL_Regs *flashctl)
Checks if address override mode is enabled.
Definition: dl_flashctl.h:492
void DL_FlashCTL_protectAllMemory(FLASHCTL_Regs *flashctl)
Protects all user memory from erase/program.
__STATIC_INLINE void DL_FlashCTL_setCommandDataECC(FLASHCTL_Regs *flashctl, uint8_t index, uint8_t *data)
Set the ECC code in the command data ECC register.
Definition: dl_flashctl.h:770
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_factoryResetFromRAM(FLASHCTL_Regs *flashctl)
Performs a factory reset erase on main and non-main memory, and executes command from RAM...
bool DL_FlashCTL_factoryResetMultiBank(FLASHCTL_Regs *flashctl)
Performs a factory reset erase on main and non-main memory.
void DL_FlashCTL_programMemory32WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode)
Programs 32 bit data with user provided ECC code.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM8WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data)
Programs 8 bit data with hardware generated ECC code, and executes command from RAM.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM16(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data)
Programs 16 bit data to unprotected memory at the given address, and executes command from RAM...
bool DL_FlashCTL_massErase(FLASHCTL_Regs *flashctl)
Performs a mass erase on main memory on one bank.
void DL_FlashCTL_readVerify64(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Verifies 64-bit data in specified address.
void DL_FlashCTL_unprotectAllMemory(FLASHCTL_Regs *flashctl)
Unprotects all user memory from erase/program.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM8(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data)
Verifies 8-bit data in specified address, and executes command from RAM.
__STATIC_INLINE void DL_FlashCTL_enableStairStepErase(FLASHCTL_Regs *flashctl)
Enable Stair-Step Erase.
Definition: dl_flashctl.h:460
Definition: dl_flashctl.h:254
__STATIC_INLINE DL_FLASHCTL_REGION_SELECT DL_FlashCTL_getRegionSelect(FLASHCTL_Regs *flashctl)
Get the region select.
Definition: dl_flashctl.h:584
DL_FLASHCTL_FAIL_TYPE
Definition: dl_flashctl.h:262
__STATIC_INLINE void DL_FlashCTL_setBankSelect(FLASHCTL_Regs *flashctl, DL_FLASHCTL_BANK_SELECT bank)
Set the bank select.
Definition: dl_flashctl.h:606
void DL_FlashCTL_programMemory16(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data)
Programs 16 bit data to unprotected memory at the given address.
void DL_FlashCTL_readVerify16WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data)
Verifies 16-bit data in specified address with hardware generated ECC code.
void DL_FlashCTL_readVerify8WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data, uint8_t *eccCode)
Verifies 8-bit data in specified address with user provided ECC code.
Definition: dl_flashctl.h:269
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM64(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Verifies 64-bit data in specified address, and executes command from RAM.
DL_FLASHCTL_BANK_SELECT
Definition: dl_flashctl.h:248
DL_FLASHCTL_COMMAND_SIZE
Definition: dl_flashctl.h:222
void DL_FlashCTL_programMemory8WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data, uint8_t *eccCode)
Programs 8 bit data with user provided ECC code.
__STATIC_INLINE bool DL_FlashCTL_isInterruptEnabled(FLASHCTL_Regs *flashctl)
Check if the flash interrupt is enabled.
Definition: dl_flashctl.h:331
void DL_FlashCTL_programMemory64(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Programs 64 bit data to unprotected memory at the given address.
__STATIC_INLINE void DL_FlashCTL_setCommandData(FLASHCTL_Regs *flashctl, uint8_t index, uint32_t *data)
Set the data for a command data register.
Definition: dl_flashctl.h:713
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_massEraseFromRAM(FLASHCTL_Regs *flashctl)
Performs a mass erase on main memory, and executes command from RAM.
__STATIC_INLINE uint32_t DL_FlashCTL_getWaitState(FLASHCTL_Regs *flashctl)
Get the number of wait states used by the Flash.
Definition: dl_flashctl.h:976
Definition: dl_flashctl.h:296
__STATIC_INLINE bool DL_FlashCTL_isCommandExecuted(FLASHCTL_Regs *flashctl)
Checks if a command execution has been initiated.
Definition: dl_flashctl.h:408
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM64WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode)
Verifies 64-bit data in specified address with user provided ECC code, and executes command from RAM...
bool DL_FlashCTL_programMemoryBlocking(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint32_t dataSize, DL_FLASHCTL_REGION_SELECT regionSelect)
Programs provided data to unprotected memory at a given address.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM64WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Verifies 32-bit data in specified address with hardware generated ECC code, and executes command from...
Definition: dl_flashctl.h:264
void DL_FlashCTL_readVerify16(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data)
Verifies 16-bit data in specified address.
DL_FLASHCTL_IIDX
Definition: dl_flashctl.h:294
bool DL_FlashCTL_factoryReset(FLASHCTL_Regs *flashctl)
Performs a factory reset erase on main and non-main memory.
void DL_FlashCTL_programMemory8(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data)
Programs 8 bit data to unprotected memory at the given address.
Definition: dl_flashctl.h:243
DriverLib Common APIs.
void DL_FlashCTL_programMemory16WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data)
Programs 16 bit data with hardware generated ECC code.
void DL_FlashCTL_protectSector(FLASHCTL_Regs *flashctl, uint32_t addr, DL_FLASHCTL_REGION_SELECT regionSelect)
Sets a given sector to protected from erase/program.
bool DL_FlashCTL_programMemoryBlocking64WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode, uint32_t dataSize, DL_FLASHCTL_REGION_SELECT regionSelect)
Programs provided data with user provided ECC code.
Definition: dl_flashctl.h:274
Definition: dl_flashctl.h:230
__STATIC_INLINE void DL_FlashCTL_enableOverrideHardwareGeneratedECC(FLASHCTL_Regs *flashctl)
Enable overriding hardware generation of ECC code.
Definition: dl_flashctl.h:523
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM16WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data)
Programs 16 bit data with hardware generated ECC code, and executes command from RAM.
Definition: dl_flashctl.h:282
void DL_FlashCTL_unprotectMainMemory(FLASHCTL_Regs *flashctl)
Unprotects all main memory from erase/program.
__STATIC_INLINE uint8_t DL_FactoryRegion_getNumBanks(void)
Get the number of Flash banks on the device.
Definition: dl_factoryregion.h:103
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM64WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode)
Programs 64 bit data with user provided ECC code, and executes command from RAM.
void DL_FlashCTL_readVerify8WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data)
Verifies 8-bit data in specified address with hardware generated ECC code.
void DL_FlashCTL_programMemory8WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data)
Programs 8 bit data with hardware generated ECC code.
void DL_FlashCTL_programMemory64WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Programs 64 bit data with hardware generated ECC code.
Definition: dl_flashctl.h:288
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM8WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data)
Verifies 8-bit data in specified address with hardware generated ECC code, and executes command from ...
__STATIC_INLINE uint32_t DL_FlashCTL_getEnabledInterruptStatus(FLASHCTL_Regs *flashctl)
Check interrupt flag of enabled flash interrupt.
Definition: dl_flashctl.h:348
DL_FLASHCTL_COMMAND_STATUS
Definition: dl_flashctl.h:280
__STATIC_INLINE void DL_FlashCTL_setRegionSelect(FLASHCTL_Regs *flashctl, DL_FLASHCTL_REGION_SELECT region)
Set the region select.
Definition: dl_flashctl.h:568
void DL_FlashCTL_unprotectNonMainMemory(FLASHCTL_Regs *flashctl)
Unprotects all non-main memory from erase/program.
__STATIC_INLINE DL_FLASHCTL_BANK_SELECT DL_FlashCTL_getBankSelect(FLASHCTL_Regs *flashctl)
Get the bank select.
Definition: dl_flashctl.h:625
__STATIC_INLINE uint32_t DL_FlashCTL_getPendingInterrupt(FLASHCTL_Regs *flashctl)
Get highest priority pending flash interrupt.
Definition: dl_flashctl.h:384
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM32WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Programs 32 bit data with hardware generated ECC code, and executes command from RAM.
__STATIC_INLINE uint16_t DL_FactoryRegion_getMAINFlashSize(void)
Get the size of the MAIN Flash region.
Definition: dl_factoryregion.h:68
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM32WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Verifies 32-bit data in specified address with hardware generated ECC code, and executes command from...
Definition: dl_flashctl.h:258
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM64(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Programs 64 bit data to unprotected memory at the given address, and executes command from RAM...
void DL_FlashCTL_protectMainMemory(FLASHCTL_Regs *flashctl)
Protects all main memory from erase/program.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM16WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data)
Verifies 16-bit data in specified address with hardware generated ECC code, and executes command from...
Definition: dl_flashctl.h:250
__STATIC_INLINE uint32_t DL_FlashCTL_getCommandData(FLASHCTL_Regs *flashctl, uint8_t index)
Get the data from a command data register.
Definition: dl_flashctl.h:740
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM32WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode)
Verifies 32-bit data in specified address with user provided ECC code, and executes command from RAM...
bool DL_FlashCTL_programMemoryBlocking64WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint32_t dataSize, DL_FLASHCTL_REGION_SELECT regionSelect)
Programs provided data with hardware generated ECC code.
Definition: dl_flashctl.h:241
void DL_FlashCTL_readVerify8(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data)
Verifies 8-bit data in specified address.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM8WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint8_t *data, uint8_t *eccCode)
Programs 8 bit data with user provided ECC code, and executes command from RAM.
__STATIC_INLINE void DL_FlashCTL_enableAddressOverrideMode(FLASHCTL_Regs *flashctl)
Enable address override mode.
Definition: dl_flashctl.h:479
void DL_FlashCTL_blankVerify(FLASHCTL_Regs *flashctl, uint32_t address)
Verifies that a flash word is blank.
__STATIC_INLINE void DL_FlashCTL_setWaitState(FLASHCTL_Regs *flashctl, uint32_t waitState)
Set the number of wait states used by the Flash.
Definition: dl_flashctl.h:963
void DL_FlashCTL_programMemory32(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Programs 32 bit data to unprotected memory at the given address.
void DL_FlashCTL_unprotectSector(FLASHCTL_Regs *flashctl, uint32_t addr, DL_FLASHCTL_REGION_SELECT regionSelect)
Sets a given sector to unprotected from erase/program.
__STATIC_INLINE DL_FLASHCTL_FAIL_TYPE DL_FlashCTL_getFailureStatus(FLASHCTL_Regs *flashctl)
Returns the reason a command failed.
Definition: dl_flashctl.h:862
__STATIC_INLINE void DL_FlashCTL_setCommandExecute(FLASHCTL_Regs *flashctl)
Initiates a command execution.
Definition: dl_flashctl.h:419
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM32WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode)
Programs 32 bit data with user provided ECC code, and executes command from RAM.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM64WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Programs 64 bit data with hardware generated ECC code, and executes command from RAM.
Definition: dl_flashctl.h:252
__STATIC_INLINE uint8_t DL_FlashCTL_getCommandDataECC(FLASHCTL_Regs *flashctl, uint8_t index)
Get the ECC code in the command data ECC register.
Definition: dl_flashctl.h:794
__STATIC_INLINE uint32_t DL_FlashCTL_getCommandByteEnable(FLASHCTL_Regs *flashctl)
Get the bytes that are enabled for programming data.
Definition: dl_flashctl.h:682
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint32_t dataSize, DL_FLASHCTL_REGION_SELECT regionSelect)
Programs provided data to unprotected memory at a given address, and executes command from RAM...
Definition: dl_flashctl.h:276
Factory Region Driver Library.
void DL_FlashCTL_programMemory32WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Programs 32 bit data with hardware generated ECC code.
bool DL_FlashCTL_massEraseMultiBank(FLASHCTL_Regs *flashctl)
Performs a mass erase on main memory, and erases all flash banks.
Definition: dl_flashctl.h:226
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM16(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data)
Verifies 16-bit data in specified address, and executes command from RAM.
Definition: dl_flashctl.h:234
__STATIC_INLINE void DL_FlashCTL_disableInterrupt(FLASHCTL_Regs *flashctl)
Disable flash interrupt.
Definition: dl_flashctl.h:316
void DL_FlashCTL_readVerify64WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode)
Verifies 64-bit data in specified address with user provided ECC code.
__STATIC_INLINE bool DL_FlashCTL_isOverrideHardwareGeneratedECCEnabled(FLASHCTL_Regs *flashctl)
Checks if overriding hardware generation of ECC code is enabled.
Definition: dl_flashctl.h:536
void DL_FlashCTL_readVerify64WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Verifies 64-bit data in specified address with hardware generated ECC code.
Definition: dl_flashctl.h:228
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryFromRAM16WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data, uint8_t *eccCode)
Programs 16 bit data with user provided ECC code, and executes command from RAM.
__STATIC_INLINE bool DL_FlashCTL_waitForCmdDone(FLASHCTL_Regs *flashctl)
Blocking function that waits for a command execution to finish.
Definition: dl_flashctl.h:884
__STATIC_INLINE bool DL_FlashCTL_isStairStepEraseDisabled(FLASHCTL_Regs *flashctl)
Checks if stair-step erase is disabled.
Definition: dl_flashctl.h:444
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_blankVerifyFromRAM(FLASHCTL_Regs *flashctl, uint32_t address)
Verifies that a flash word is blank, and executes command from RAM.
void DL_FlashCTL_programMemory16WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint16_t *data, uint8_t *eccCode)
Programs 16 bit data with user provided ECC code.
Definition: dl_flashctl.h:271
__STATIC_INLINE void DL_FlashCTL_disableOverrideHardwareGeneratedECC(FLASHCTL_Regs *flashctl)
Disable overriding hardware generation of ECC code.
Definition: dl_flashctl.h:551
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_programMemoryBlockingFromRAM64WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode, uint32_t dataSize, DL_FLASHCTL_REGION_SELECT regionSelect)
Programs provided data with user provided ECC code, and executes command from RAM.
__STATIC_INLINE uint32_t DL_FlashCTL_getRawInterruptStatus(FLASHCTL_Regs *flashctl)
Check interrupt flag of the flash interrupt.
Definition: dl_flashctl.h:367
Definition: dl_flashctl.h:266
__STATIC_INLINE void DL_FlashCTL_enableInterrupt(FLASHCTL_Regs *flashctl)
Enable flash interrupt.
Definition: dl_flashctl.h:305
void DL_FlashCTL_programMemory64WithECCManual(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data, uint8_t *eccCode)
Programs 64 bit data with user provided ECC code.
DL_FLASHCTL_COMMAND_STATUS DL_FlashCTL_readVerifyFromRAM32(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Verifies 32-bit data in specified address, and executes command from RAM.
void DL_FlashCTL_readVerify32WithECCGenerated(FLASHCTL_Regs *flashctl, uint32_t address, uint32_t *data)
Verifies 32-bit data in specified address with hardware generated ECC code.
DL_FLASHCTL_REGION_SELECT
Definition: dl_flashctl.h:239
Definition: dl_flashctl.h:232
__STATIC_INLINE void DL_FlashCTL_disbleStairStepErase(FLASHCTL_Regs *flashctl)
Disable Stair-Step Erase.
Definition: dl_flashctl.h:431
__STATIC_INLINE void DL_FlashCTL_disableAddressOverrideMode(FLASHCTL_Regs *flashctl)
Disable address override mode.
Definition: dl_flashctl.h:506
__STATIC_INLINE uint32_t DL_FlashCTL_getFlashSectorNumberInBank(FLASHCTL_Regs *flashctl, uint32_t addr)
Gets the sector number of the input address relative to the bank of the address.
Definition: dl_flashctl.h:931
Definition: dl_flashctl.h:285
__STATIC_INLINE void DL_FlashCTL_setCommandByteEnable(FLASHCTL_Regs *flashctl, uint32_t byteMask)
Set the bytes to enable for programming data.
Definition: dl_flashctl.h:662
© Copyright 1995-2023, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale