diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-02-06 14:48:58 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-02-06 15:07:01 +0200 |
commit | 97a0846af906cde677742bff810fb7965c38fbb7 (patch) | |
tree | f7cabd3529645afc62463a105116398fdcd825af | |
parent | ff1a96ce2cd95c42beca5209b353f83da773522d (diff) |
stmhal/diskio: Introduce MICROPY_HW_HAS_FLASH setting.
To allow to reuse stmhal/diskio for ports which don't have flash but have
other storage devices.
-rw-r--r-- | stmhal/boards/CERB40/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/ESPRUINO_PICO/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/HYDRABUS/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/NETDUINO_PLUS_2/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/PYBLITEV10/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/PYBV10/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/PYBV11/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/PYBV3/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/PYBV4/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/STM32F411DISC/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/STM32F429DISC/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/STM32F4DISC/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/boards/STM32F7DISC/mpconfigboard.h | 1 | ||||
-rw-r--r-- | stmhal/diskio.c | 10 |
14 files changed, 22 insertions, 1 deletions
diff --git a/stmhal/boards/CERB40/mpconfigboard.h b/stmhal/boards/CERB40/mpconfigboard.h index ac3560905..432e0af79 100644 --- a/stmhal/boards/CERB40/mpconfigboard.h +++ b/stmhal/boards/CERB40/mpconfigboard.h @@ -5,6 +5,7 @@ #define MICROPY_PY_SYS_PLATFORM "pyboard" #define MICROPY_HW_HAS_SWITCH (0) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (0) #define MICROPY_HW_HAS_MMA7660 (0) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/ESPRUINO_PICO/mpconfigboard.h b/stmhal/boards/ESPRUINO_PICO/mpconfigboard.h index e7a338d3e..0da57b607 100644 --- a/stmhal/boards/ESPRUINO_PICO/mpconfigboard.h +++ b/stmhal/boards/ESPRUINO_PICO/mpconfigboard.h @@ -3,6 +3,7 @@ #define MICROPY_PY_SYS_PLATFORM "pyboard" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (0) #define MICROPY_HW_HAS_MMA7660 (0) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/HYDRABUS/mpconfigboard.h b/stmhal/boards/HYDRABUS/mpconfigboard.h index b63974e80..4fe0874d7 100644 --- a/stmhal/boards/HYDRABUS/mpconfigboard.h +++ b/stmhal/boards/HYDRABUS/mpconfigboard.h @@ -4,6 +4,7 @@ #define MICROPY_HW_MCU_NAME "STM32F4" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (1) #define MICROPY_HW_HAS_MMA7660 (0) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/NETDUINO_PLUS_2/mpconfigboard.h b/stmhal/boards/NETDUINO_PLUS_2/mpconfigboard.h index a60986927..872e285ae 100644 --- a/stmhal/boards/NETDUINO_PLUS_2/mpconfigboard.h +++ b/stmhal/boards/NETDUINO_PLUS_2/mpconfigboard.h @@ -5,6 +5,7 @@ #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) // On the netuino, the sdcard appears to be wired up as a 1-bit // SPI, so the driver needs to be converted to support that before // we can turn this on. diff --git a/stmhal/boards/PYBLITEV10/mpconfigboard.h b/stmhal/boards/PYBLITEV10/mpconfigboard.h index 452d3061a..97c972095 100644 --- a/stmhal/boards/PYBLITEV10/mpconfigboard.h +++ b/stmhal/boards/PYBLITEV10/mpconfigboard.h @@ -3,6 +3,7 @@ #define MICROPY_PY_SYS_PLATFORM "pyboard" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (1) #define MICROPY_HW_HAS_MMA7660 (1) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/PYBV10/mpconfigboard.h b/stmhal/boards/PYBV10/mpconfigboard.h index f8cb14b51..bc1d848b7 100644 --- a/stmhal/boards/PYBV10/mpconfigboard.h +++ b/stmhal/boards/PYBV10/mpconfigboard.h @@ -3,6 +3,7 @@ #define MICROPY_PY_SYS_PLATFORM "pyboard" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (1) #define MICROPY_HW_HAS_MMA7660 (1) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/PYBV11/mpconfigboard.h b/stmhal/boards/PYBV11/mpconfigboard.h index 30a14bade..b3c0983e3 100644 --- a/stmhal/boards/PYBV11/mpconfigboard.h +++ b/stmhal/boards/PYBV11/mpconfigboard.h @@ -3,6 +3,7 @@ #define MICROPY_PY_SYS_PLATFORM "pyboard" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (1) #define MICROPY_HW_HAS_MMA7660 (1) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/PYBV3/mpconfigboard.h b/stmhal/boards/PYBV3/mpconfigboard.h index 34c6a596f..67877fd0b 100644 --- a/stmhal/boards/PYBV3/mpconfigboard.h +++ b/stmhal/boards/PYBV3/mpconfigboard.h @@ -2,6 +2,7 @@ #define MICROPY_HW_MCU_NAME "STM32F405RG" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (1) #define MICROPY_HW_HAS_MMA7660 (1) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/PYBV4/mpconfigboard.h b/stmhal/boards/PYBV4/mpconfigboard.h index 663564eb9..7c75508ed 100644 --- a/stmhal/boards/PYBV4/mpconfigboard.h +++ b/stmhal/boards/PYBV4/mpconfigboard.h @@ -3,6 +3,7 @@ #define MICROPY_PY_SYS_PLATFORM "pyboard" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (1) #define MICROPY_HW_HAS_MMA7660 (1) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/STM32F411DISC/mpconfigboard.h b/stmhal/boards/STM32F411DISC/mpconfigboard.h index 57ae542df..3bab1304c 100644 --- a/stmhal/boards/STM32F411DISC/mpconfigboard.h +++ b/stmhal/boards/STM32F411DISC/mpconfigboard.h @@ -3,6 +3,7 @@ #define MICROPY_PY_SYS_PLATFORM "pyboard" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (0) #define MICROPY_HW_HAS_MMA7660 (0) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/STM32F429DISC/mpconfigboard.h b/stmhal/boards/STM32F429DISC/mpconfigboard.h index 33dd507d5..e6c2fc9ef 100644 --- a/stmhal/boards/STM32F429DISC/mpconfigboard.h +++ b/stmhal/boards/STM32F429DISC/mpconfigboard.h @@ -4,6 +4,7 @@ #define MICROPY_HW_MCU_NAME "STM32F429" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (0) #define MICROPY_HW_HAS_MMA7660 (0) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/boards/STM32F4DISC/mpconfigboard.h b/stmhal/boards/STM32F4DISC/mpconfigboard.h index edfca3670..4b0745259 100644 --- a/stmhal/boards/STM32F4DISC/mpconfigboard.h +++ b/stmhal/boards/STM32F4DISC/mpconfigboard.h @@ -4,6 +4,7 @@ #define MICROPY_HW_MCU_NAME "STM32F407" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (0) #define MICROPY_HW_HAS_MMA7660 (0) #define MICROPY_HW_HAS_LIS3DSH (1) diff --git a/stmhal/boards/STM32F7DISC/mpconfigboard.h b/stmhal/boards/STM32F7DISC/mpconfigboard.h index 0bfb54a62..c0e47c3ce 100644 --- a/stmhal/boards/STM32F7DISC/mpconfigboard.h +++ b/stmhal/boards/STM32F7DISC/mpconfigboard.h @@ -4,6 +4,7 @@ #define MICROPY_HW_MCU_NAME "STM32F746" #define MICROPY_HW_HAS_SWITCH (1) +#define MICROPY_HW_HAS_FLASH (1) #define MICROPY_HW_HAS_SDCARD (1) #define MICROPY_HW_HAS_MMA7660 (0) #define MICROPY_HW_HAS_LIS3DSH (0) diff --git a/stmhal/diskio.c b/stmhal/diskio.c index 6d0a8b40c..136291d5c 100644 --- a/stmhal/diskio.c +++ b/stmhal/diskio.c @@ -30,7 +30,7 @@ #include <stdint.h> #include <stdio.h> -#include STM32_HAL_H +#include "py/mphal.h" #include "py/runtime.h" #include "lib/fatfs/ff.h" /* FatFs lower layer API */ @@ -60,9 +60,11 @@ DSTATUS disk_initialize ( ) { switch (pdrv) { +#if MICROPY_HW_HAS_FLASH case PD_FLASH: storage_init(); return 0; +#endif #if MICROPY_HW_HAS_SDCARD case PD_SDCARD: @@ -130,6 +132,7 @@ DRESULT disk_read ( ) { switch (pdrv) { +#if MICROPY_HW_HAS_FLASH case PD_FLASH: for (int i = 0; i < count; i++) { if (!storage_read_block(buff + i * FLASH_BLOCK_SIZE, sector + i)) { @@ -137,6 +140,7 @@ DRESULT disk_read ( } } return RES_OK; +#endif #if MICROPY_HW_HAS_SDCARD case PD_SDCARD: @@ -173,6 +177,7 @@ DRESULT disk_write ( ) { switch (pdrv) { +#if MICROPY_HW_HAS_FLASH case PD_FLASH: for (int i = 0; i < count; i++) { if (!storage_write_block(buff + i * FLASH_BLOCK_SIZE, sector + i)) { @@ -180,6 +185,7 @@ DRESULT disk_write ( } } return RES_OK; +#endif #if MICROPY_HW_HAS_SDCARD case PD_SDCARD: @@ -221,6 +227,7 @@ DRESULT disk_ioctl ( ) { switch (pdrv) { +#if MICROPY_HW_HAS_FLASH case PD_FLASH: switch (cmd) { case CTRL_SYNC: @@ -232,6 +239,7 @@ DRESULT disk_ioctl ( return RES_OK; } break; +#endif #if MICROPY_HW_HAS_SDCARD case PD_SDCARD: |