From 3be2b8bf120b733e32d46e00a513862d0d66db45 Mon Sep 17 00:00:00 2001 From: Veijo Pesonen Date: Thu, 19 Dec 2019 11:27:22 +0200 Subject: [PATCH] QSPIFBlockDevice: Makes default configuration to use mbed_lib.json settings QSPIFBlockDevice parameters come from mbed_lib.json if not provided explicitly. Introduced an app config file for running filesystem tests with QSPIF modules --- .../COMPONENT_QSPIF/QSPIFBlockDevice.h | 36 +++++++++++++++++-- .../storage/system_storage/SystemStorage.cpp | 11 +----- .../QSPIFBlockDeviceAndHeapBlockDevice.json | 19 ++++++++++ 3 files changed, 53 insertions(+), 13 deletions(-) create mode 100644 tools/test_configs/QSPIFBlockDeviceAndHeapBlockDevice.json diff --git a/components/storage/blockdevice/COMPONENT_QSPIF/QSPIFBlockDevice.h b/components/storage/blockdevice/COMPONENT_QSPIF/QSPIFBlockDevice.h index 3a3dc712b0..3f1ec01400 100644 --- a/components/storage/blockdevice/COMPONENT_QSPIF/QSPIFBlockDevice.h +++ b/components/storage/blockdevice/COMPONENT_QSPIF/QSPIFBlockDevice.h @@ -19,6 +19,31 @@ #include "drivers/QSPI.h" #include "features/storage/blockdevice/BlockDevice.h" +#ifndef MBED_CONF_QSPIF_QSPI_IO0 +#define MBED_CONF_QSPIF_QSPI_IO0 NC +#endif +#ifndef MBED_CONF_QSPIF_QSPI_IO1 +#define MBED_CONF_QSPIF_QSPI_IO1 NC +#endif +#ifndef MBED_CONF_QSPIF_QSPI_IO2 +#define MBED_CONF_QSPIF_QSPI_IO2 NC +#endif +#ifndef MBED_CONF_QSPIF_QSPI_IO3 +#define MBED_CONF_QSPIF_QSPI_IO3 NC +#endif +#ifndef MBED_CONF_QSPIF_QSPI_SCK +#define MBED_CONF_QSPIF_QSPI_SCK NC +#endif +#ifndef MBED_CONF_QSPIF_QSPI_CSN +#define MBED_CONF_QSPIF_QSPI_CSN NC +#endif +#ifndef MBED_CONF_QSPIF_QSPI_POLARITY_MODE +#define MBED_CONF_QSPIF_QSPI_POLARITY_MODE 0 +#endif +#ifndef MBED_CONF_QSPIF_QSPI_FREQ +#define MBED_CONF_QSPIF_QSPI_FREQ 40000000 +#endif + /** Enum qspif standard error codes * * @enum qspif_bd_error @@ -98,10 +123,15 @@ public: * @param clock_mode specifies the QSPI Clock Polarity mode (QSPIF_POLARITY_MODE_0/QSPIF_POLARITY_MODE_1) * default value = 0 * @param freq Clock frequency of the QSPI bus (defaults to 40MHz) - * */ - QSPIFBlockDevice(PinName io0, PinName io1, PinName io2, PinName io3, PinName sclk, PinName csel, - int clock_mode, int freq = MBED_CONF_QSPIF_QSPI_FREQ); + QSPIFBlockDevice(PinName io0 = MBED_CONF_QSPIF_QSPI_IO0, + PinName io1 = MBED_CONF_QSPIF_QSPI_IO1, + PinName io2 = MBED_CONF_QSPIF_QSPI_IO2, + PinName io3 = MBED_CONF_QSPIF_QSPI_IO3, + PinName sclk = MBED_CONF_QSPIF_QSPI_SCK, + PinName csel = MBED_CONF_QSPIF_QSPI_CSN, + int clock_mode = MBED_CONF_QSPIF_QSPI_POLARITY_MODE, + int freq = MBED_CONF_QSPIF_QSPI_FREQ); /** Initialize a block device * diff --git a/features/storage/system_storage/SystemStorage.cpp b/features/storage/system_storage/SystemStorage.cpp index 579497b1f5..ba6f01a6cf 100644 --- a/features/storage/system_storage/SystemStorage.cpp +++ b/features/storage/system_storage/SystemStorage.cpp @@ -88,16 +88,7 @@ MBED_WEAK BlockDevice *BlockDevice::get_default_instance() #elif COMPONENT_QSPIF - static QSPIFBlockDevice default_bd( - MBED_CONF_QSPIF_QSPI_IO0, - MBED_CONF_QSPIF_QSPI_IO1, - MBED_CONF_QSPIF_QSPI_IO2, - MBED_CONF_QSPIF_QSPI_IO3, - MBED_CONF_QSPIF_QSPI_SCK, - MBED_CONF_QSPIF_QSPI_CSN, - MBED_CONF_QSPIF_QSPI_POLARITY_MODE, - MBED_CONF_QSPIF_QSPI_FREQ - ); + static QSPIFBlockDevice default_bd; return &default_bd; diff --git a/tools/test_configs/QSPIFBlockDeviceAndHeapBlockDevice.json b/tools/test_configs/QSPIFBlockDeviceAndHeapBlockDevice.json new file mode 100644 index 0000000000..91dbefc5fa --- /dev/null +++ b/tools/test_configs/QSPIFBlockDeviceAndHeapBlockDevice.json @@ -0,0 +1,19 @@ +{ + "config": { + "sim-blockdevice": { + "help": "Simulated block device, requires sufficient heap", + "macro_name": "MBED_TEST_SIM_BLOCKDEVICE", + "value": "HeapBlockDevice" + }, + "test-blockdevice": { + "help": "Used blockdevice", + "macro_name": "MBED_TEST_BLOCKDEVICE", + "value": "QSPIFBlockDevice" + }, + "test-filesystem": { + "help": "Used filesystem", + "macro_name": "MBED_TEST_FILESYSTEM", + "value": "LittleFileSystem" + } + } +}