Files
IronOS/source/Core/BSP/Magic/flash.c
2022-04-22 18:22:33 +10:00

37 lines
895 B
C

/*
* flash.c
*
* Created on: 29 May 2020
* Author: Ralim
*/
#include "BSP.h"
#include "BSP_Flash.h"
#include "hal_flash.h"
#include "string.h"
#define FLASH_PAGE_SIZE ((uint16_t)1024)
#define SETTINGS_START_PAGE (1023 * 1024) // Hal auto offsets base addr
#define SETTINGS_READ_PAGE 0x23000000 + SETTINGS_START_PAGE
uint8_t flash_save_buffer(const uint8_t *buffer, const uint16_t length) {
flash_erase(SETTINGS_START_PAGE, length);
flash_write(SETTINGS_START_PAGE, buffer, sizeof(length));
return 1;
}
void flash_read_buffer(uint8_t *buffer, const uint16_t length) {
/* read 0x00010000 flash data */
flash_read(SETTINGS_START_PAGE, buffer, sizeof(length));
return;
// #TODO
uint32_t *b = (uint32_t *)buffer;
uint32_t *b2 = (uint32_t *)SETTINGS_START_PAGE;
for (int i = 0; i < length / 4; i++) {
b[i] = b2[i];
}
}