From 78f052e54090651dbc4f2d6d7165f3adb68ee98a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Sun, 14 Aug 2016 19:25:58 +0200 Subject: [PATCH] rename flash library --- lib/flash_storage.c | 113 -------------------------------------------- lib/flash_storage.h | 33 ------------- 2 files changed, 146 deletions(-) delete mode 100644 lib/flash_storage.c delete mode 100644 lib/flash_storage.h diff --git a/lib/flash_storage.c b/lib/flash_storage.c deleted file mode 100644 index b7df97e..0000000 --- a/lib/flash_storage.c +++ /dev/null @@ -1,113 +0,0 @@ -/* This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -/* Copyright (c) 2016 King Kévin */ -/* this library is used to store (read and write) data in flash */ -/* peripherals used: none */ - -/* standard libraries */ -#include // standard integer types -#include // general utilities - -/* STM32 (including CM3) libraries */ -#include // device signature utilities -#include // flash utilities - -#include "flash_storage.h" // flash storage library API -#include "global.h" // global definitions - -// the flash page size (medium-density devices have 1KiB page size) -#define PAGE_SIZE 1024 - -/* read data from address
into - * returns if read succeeded */ -bool storage_read(uint32_t address, uint8_t *buffer, size_t size) -{ - // verify it's in the storage area - if (addressSTORAGE_END) { - return false; - } - if (buffer==NULL || size==0) { - return false; - } - - // copy data byte per byte - // a more efficient way would be to copy words, than the remaining bytes - for (size_t i=0; i data from to address
- * returns if write succeeded */ -bool storage_write(uint32_t address, uint8_t *buffer, size_t size) -{ - // verify it's in the storage area - if (addressSTORAGE_END) { - return false; - } - if (buffer==NULL || size==0) { - return false; - } - - uint8_t page[PAGE_SIZE]; // the complete page to write - - flash_unlock(); // unlock flash to be able to write it - // go through memory - while (size) { - uint32_t page_pre = address%PAGE_SIZE; // the beginning data size in the page - address -= page_pre; // go to beginning of the page - storage_read(address, &page[0], page_pre); // copy existing data - if (size>=PAGE_SIZE-page_pre) { // no need to read tailing page data - for (uint16_t i=0; i. - * - */ -/* Copyright (c) 2016 King Kévin */ -/* this library is used to store (read and write) data in flash */ -/* peripherals used: none */ -#include // device signature utilities - -// how much data (in bytes) should we be able to store (be sure it's available and does not overlap the firmware) -#define STORAGE_SIZE 2048 -// the end of the flash area where to store data -#define STORAGE_END FLASH_BASE+DESIG_FLASH_SIZE -// the start of the flash area where to store data (be sure it's after the firmware data) -// we will only use the last kilobytes -#define STORAGE_START STORAGE_END-STORAGE_SIZE - -/* read data from address
into - * returns if read succeeded */ -bool storage_read(uint32_t address, uint8_t *buffer, size_t size); -/* write data from to address
- * returns if write succeeded */ -bool storage_write(uint32_t address, uint8_t *buffer, size_t size);