Bayley Wang / Mbed 2 deprecated foc-ed_in_the_bot_compact

Dependencies:   FastPWM3 mbed

Committer:
bwang
Date:
Thu Feb 08 02:16:04 2018 +0000
Revision:
178:4e721c904fd7
02/07/2018 21:15 - moved PreferenceWriter and prefs.h back from test project, code still compiles

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bwang 178:4e721c904fd7 1 #include "stm32f4xx_flash.h"
bwang 178:4e721c904fd7 2 #include "FlashWriter.h"
bwang 178:4e721c904fd7 3
bwang 178:4e721c904fd7 4 FlashWriter::FlashWriter(int sector) {
bwang 178:4e721c904fd7 5 if (sector > 7) sector = 7;
bwang 178:4e721c904fd7 6 __sector = sector;
bwang 178:4e721c904fd7 7 __base = __SECTOR_ADDRS[sector];
bwang 178:4e721c904fd7 8 __ready = false;
bwang 178:4e721c904fd7 9 }
bwang 178:4e721c904fd7 10
bwang 178:4e721c904fd7 11 bool FlashWriter::ready() {
bwang 178:4e721c904fd7 12 return __ready;
bwang 178:4e721c904fd7 13 }
bwang 178:4e721c904fd7 14
bwang 178:4e721c904fd7 15 void FlashWriter::open() {
bwang 178:4e721c904fd7 16 FLASH_Unlock();
bwang 178:4e721c904fd7 17 FLASH_ClearFlag( FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR);
bwang 178:4e721c904fd7 18 FLASH_EraseSector(__SECTORS[__sector], VoltageRange_3);
bwang 178:4e721c904fd7 19 __ready = true;
bwang 178:4e721c904fd7 20 }
bwang 178:4e721c904fd7 21
bwang 178:4e721c904fd7 22 void FlashWriter::write(uint32_t index, int x) {
bwang 178:4e721c904fd7 23 union {int a; uint32_t b;};
bwang 178:4e721c904fd7 24 a = x;
bwang 178:4e721c904fd7 25 FLASH_ProgramWord(__base + 4 * index, b);
bwang 178:4e721c904fd7 26 }
bwang 178:4e721c904fd7 27
bwang 178:4e721c904fd7 28 void FlashWriter::write(uint32_t index, unsigned int x) {
bwang 178:4e721c904fd7 29 FLASH_ProgramWord(__base + 4 * index, x);
bwang 178:4e721c904fd7 30 }
bwang 178:4e721c904fd7 31
bwang 178:4e721c904fd7 32 void FlashWriter::write(uint32_t index, float x) {
bwang 178:4e721c904fd7 33 union {float a; uint32_t b;};
bwang 178:4e721c904fd7 34 a = x;
bwang 178:4e721c904fd7 35 FLASH_ProgramWord(__base + 4 * index, b);
bwang 178:4e721c904fd7 36 }
bwang 178:4e721c904fd7 37
bwang 178:4e721c904fd7 38 void FlashWriter::close() {
bwang 178:4e721c904fd7 39 FLASH_Lock();
bwang 178:4e721c904fd7 40 __ready = false;
bwang 178:4e721c904fd7 41 }
bwang 178:4e721c904fd7 42
bwang 178:4e721c904fd7 43 int flashReadInt(uint32_t sector, uint32_t index) {
bwang 178:4e721c904fd7 44 return *(int*) (__SECTOR_ADDRS[sector] + 4 * index);
bwang 178:4e721c904fd7 45 }
bwang 178:4e721c904fd7 46
bwang 178:4e721c904fd7 47 uint32_t flashReadUint(uint32_t sector, uint32_t index) {
bwang 178:4e721c904fd7 48 return *(uint32_t*) (__SECTOR_ADDRS[sector] + 4 * index);
bwang 178:4e721c904fd7 49 }
bwang 178:4e721c904fd7 50
bwang 178:4e721c904fd7 51 float flashReadFloat(uint32_t sector, uint32_t index) {
bwang 178:4e721c904fd7 52 return *(float*) (__SECTOR_ADDRS[sector] + 4 * index);
bwang 178:4e721c904fd7 53 }