Bayley Wang / Mbed 2 deprecated foc-ed_in_the_bot_compact

Dependencies:   FastPWM3 mbed

Committer:
bwang
Date:
Fri Mar 10 08:29:13 2017 +0000
Revision:
82:5e741c5ffd9f
things somewhat work?

Who changed what in which revision?

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