This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C123GH6PM: TM4C123x Flash save data issue

Part Number: TM4C123GH6PM

Hii,

I want to save a value to the internal flash memory of the processor on the TM4C123GH6PM development board.

Where am I doing wrong?

#include <stdint.h>
#include <string.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include "inc/hw_flash.h"
#include "inc/hw_gpio.h"
#include "inc/hw_memmap.h"
#include "inc/hw_nvic.h"
#include "inc/hw_ints.h"
#include "inc/hw_sysctl.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/udma.h"
#include "driverlib/uart.h"
#include "driverlib/eeprom.h"
#include "driverlib/flash.h"


#define FLASH_BASE_ADDR         ((volatile uint32_t*)0x00020004)


uint32_t myData[2];
uint32_t myRead[2];


void Flash_Read(void* data, int wordCount)
{
    for (int i = 0; i < wordCount; i++) {
        ((uint32_t*)data)[i] = FLASH_BASE_ADDR[i];
    }
}


int main(void)
{
    SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_OSC_MAIN  | SYSCTL_XTAL_16MHZ | SYSCTL_USE_PLL);

    myData[0] = 0x11223344;
    myData[1] = 0xABCDEF12;

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 );
    GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 , 0x00);
    SysCtlDelay(20000000);

    FlashErase((uint32_t)FLASH_BASE_ADDR);
    FlashProgram(myData, (uint32_t)FLASH_BASE_ADDR, sizeof(myData));

    GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 , 0x08);
    SysCtlDelay(20000000);
    Flash_Read(myRead,2);

	while(1){

	}
}