#include <ti/devices/msp432p4xx/driverlib/driverlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
unsigned
int
j= 0;
int
main(
void
)
{
WDT_A_holdTimer();
P2OUT &= ~0x02;
P1DIR |= 0x01;
P1OUT ^= 0x01;
for
(j=0; j< 100000; j++);
P1OUT &= ~0x01;
uint8_t data_value = 0x47;
WDT_A_setTimeoutReset(WDT_A_SOFT_RESET);
WDT_A_initWatchdogTimer(WDT_A_CLOCKSOURCE_SMCLK, WDT_A_CLOCKITERATIONS_8192K);
WDT_A_startTimer();
while
((P1IN & BIT4)==0);
int
sector_array[32] = {FLASH_SECTOR0, FLASH_SECTOR1, FLASH_SECTOR2, FLASH_SECTOR3, FLASH_SECTOR4, FLASH_SECTOR5,
FLASH_SECTOR6, FLASH_SECTOR7, FLASH_SECTOR8, FLASH_SECTOR9, FLASH_SECTOR10, FLASH_SECTOR11,
FLASH_SECTOR12, FLASH_SECTOR13, FLASH_SECTOR14, FLASH_SECTOR15, FLASH_SECTOR16, FLASH_SECTOR17,
FLASH_SECTOR18, FLASH_SECTOR19, FLASH_SECTOR20, FLASH_SECTOR21, FLASH_SECTOR22, FLASH_SECTOR23,
FLASH_SECTOR24, FLASH_SECTOR25, FLASH_SECTOR26, FLASH_SECTOR27, FLASH_SECTOR28, FLASH_SECTOR29,
FLASH_SECTOR30, FLASH_SECTOR31};
while
(1) {
for
(j=0; j< 100000; j++);
WDT_A_clearTimer();
void
* dest = (
char
*) 0x00020000;
uint8_t data [4096];
memset
(data, data_value, 4096);
int
i = 0;
for
(i = 0; i < 32; i++){
WDT_A_clearTimer();
while
((P1IN & BIT4)==0);
FlashCtl_unprotectSector(FLASH_MAIN_MEMORY_SPACE_BANK1, sector_array[i]);
FlashCtl_initiateMassErase();
FlashCtl_enableWordProgramming(FLASH_IMMEDIATE_WRITE_MODE);
FlashCtl_programMemory(data, dest, 4096);
FlashCtl_protectSector(FLASH_MAIN_MEMORY_SPACE_BANK1, sector_array[i]);
dest = dest + 0x00001000;
}
WDT_A_clearTimer();
P2OUT ^= 0x02;
for
(j=0; j< 100000; j++);
P2OUT &= ~0x01;
}
}