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){
}
}