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