diff options
author | Christian Pointner <equinox@mur.at> | 2014-04-09 04:22:00 +0200 |
---|---|---|
committer | Christian Pointner <equinox@mur.at> | 2014-04-09 04:22:00 +0200 |
commit | a324fa64bf9c1070d37b2089973e644cecbd240f (patch) | |
tree | 0ff08df4dd6f484645a5f8c476de1a1fd7613214 | |
parent | added gitingore (diff) |
added SDIO for F405 and blockstore
-rw-r--r-- | software/mpu/Makefile | 1 | ||||
-rw-r--r-- | software/mpu/blockstore.c | 70 | ||||
-rw-r--r-- | software/mpu/blockstore.h | 39 | ||||
-rw-r--r-- | software/mpu/board-F405/board.c | 28 | ||||
-rw-r--r-- | software/mpu/board-F405/board.h | 128 | ||||
-rw-r--r-- | software/mpu/halconf.h | 16 | ||||
-rw-r--r-- | software/mpu/main.c | 3 |
7 files changed, 220 insertions, 65 deletions
diff --git a/software/mpu/Makefile b/software/mpu/Makefile index a1393b1..528b4ea 100644 --- a/software/mpu/Makefile +++ b/software/mpu/Makefile @@ -109,6 +109,7 @@ CSRC = $(PORTSRC) \ heartbeat.c \ usb-cdc-shell.c \ ihu.c \ + blockstore.c \ main.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global diff --git a/software/mpu/blockstore.c b/software/mpu/blockstore.c new file mode 100644 index 0000000..fc22321 --- /dev/null +++ b/software/mpu/blockstore.c @@ -0,0 +1,70 @@ +/* + * + * mur.sat + * + * Somewhen in the year 2012, mur.at will have a nano satellite launched + * into a low earth orbit (310 km above the surface of our planet). The + * satellite itself is a TubeSat personal satellite kit, developed and + * launched by interorbital systems. mur.sat is a joint venture of mur.at, + * ESC im Labor and realraum. + * + * Please visit the project hompage at sat.mur.at for further information. + * + * + * Copyright (C) 2014 Christian Pointner <equinox@mur.at> + * + * This file is part of mur.sat. + * + * mur.sat 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 + * any later version. + * + * mur.sat 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 mur.sat. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include "ch.h" +#include "hal.h" + +#include "blockstore.h" + +static Thread *tpBlockstore; +static WORKING_AREA(waBlockstore, 128); +static msg_t blockstoreRun(void *arg) +{ + BaseBlockDevice *bd = arg; + chRegSetThreadName("blockstore"); + + for(;;) { + blkstate_t s = blkGetDriverState(bd); + if(BLK_STOP == s || BLK_UNINIT) { + return 0; + } + // DO something + chThdSleepMilliseconds(100); + } + return 0; +} + +static const SDCConfig sdccfg = { + 0 +}; + +void blockstoreInit(void) +{ + sdcStart(&SDCD1, &sdccfg); + tpBlockstore = chThdCreateStatic(waBlockstore, sizeof(waBlockstore), NORMALPRIO, blockstoreRun, &SDCD1); +} + +void blockstoreStop(void) +{ + sdcStop(&SDCD1); // we probably shouldn't do that without checking the state... + chThdWait(tpBlockstore); +} diff --git a/software/mpu/blockstore.h b/software/mpu/blockstore.h new file mode 100644 index 0000000..9dc4230 --- /dev/null +++ b/software/mpu/blockstore.h @@ -0,0 +1,39 @@ +/* + * + * mur.sat + * + * Somewhen in the year 2012, mur.at will have a nano satellite launched + * into a low earth orbit (310 km above the surface of our planet). The + * satellite itself is a TubeSat personal satellite kit, developed and + * launched by interorbital systems. mur.sat is a joint venture of mur.at, + * ESC im Labor and realraum. + * + * Please visit the project hompage at sat.mur.at for further information. + * + * + * Copyright (C) 2014 Christian Pointner <equinox@mur.at> + * + * This file is part of mur.sat. + * + * mur.sat 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 + * any later version. + * + * mur.sat 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 mur.sat. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#ifndef MURSAT_blockstore_h_INCLUDED +#define MURSAT_blockstore_h_INCLUDED + +void blockstoreInit(void); +void blockstoreStop(void); + +#endif diff --git a/software/mpu/board-F405/board.c b/software/mpu/board-F405/board.c index e66dd1c..0813bb6 100644 --- a/software/mpu/board-F405/board.c +++ b/software/mpu/board-F405/board.c @@ -61,3 +61,31 @@ void __early_init(void) { */ void boardInit(void) { } + +#if HAL_USE_SDC +/** + * @brief Insertion monitor function. + * + * @param[in] sdcp pointer to the @p SDCDriver object + * + * @notapi + */ +bool_t sdc_lld_is_card_inserted(SDCDriver *sdcp) { + + (void)sdcp; + return !palReadPad(GPIOA, GPIOA_SDIO_CD); +} + +/** + * @brief Protection detection. + * + * @param[in] sdcp pointer to the @p SDCDriver object + * + * @notapi + */ +bool_t sdc_lld_is_write_protected(SDCDriver *sdcp) { + + (void)sdcp; + return !palReadPad(GPIOA, GPIOA_SDIO_WP); +} +#endif /* HAL_USE_SDC */ diff --git a/software/mpu/board-F405/board.h b/software/mpu/board-F405/board.h index 9f2017c..f056102 100644 --- a/software/mpu/board-F405/board.h +++ b/software/mpu/board-F405/board.h @@ -67,8 +67,8 @@ #define GPIOA_USB_DM 11 #define GPIOA_USB_DP 12 #define GPIOA_USB_DISC 13 -#define GPIOA_PIN14 14 -#define GPIOA_PIN15 15 +#define GPIOA_SDIO_WP 14 +#define GPIOA_SDIO_CD 15 #define GPIOB_PIN0 0 #define GPIOB_PIN1 1 @@ -95,18 +95,18 @@ #define GPIOC_PIN5 5 #define GPIOC_PIN6 6 #define GPIOC_PIN7 7 -#define GPIOC_PIN8 8 -#define GPIOC_PIN9 9 -#define GPIOC_PIN10 10 -#define GPIOC_PIN11 11 -#define GPIOC_PIN12 12 +#define GPIOC_SDIO_D0 8 +#define GPIOC_SDIO_D1 9 +#define GPIOC_SDIO_D2 10 +#define GPIOC_SDIO_D3 11 +#define GPIOC_SDIO_CK 12 #define GPIOC_PIN13 13 #define GPIOC_PIN14 14 #define GPIOC_PIN15 15 #define GPIOD_PIN0 0 #define GPIOD_PIN1 1 -#define GPIOD_PIN2 2 +#define GPIOD_SDIO_CMD 2 #define GPIOD_PIN3 3 #define GPIOD_PIN4 4 #define GPIOD_PIN5 5 @@ -245,8 +245,8 @@ * PA11 - USB_DM (alternate 10). * PA12 - USB_DP (alternate 10). * PA13 - USB_DISC (output pushpull maximum). - * PA14 - PIN14 (input pullup). - * PA15 - PIN15 (input pullup). + * PA14 - SDIO_WP (input pullup). + * PA15 - SDIO_CD (input pullup). */ #define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_PIN0) | \ PIN_MODE_INPUT(GPIOA_PIN1) | \ @@ -262,8 +262,8 @@ PIN_MODE_ALTERNATE(GPIOA_USB_DM) | \ PIN_MODE_ALTERNATE(GPIOA_USB_DP) | \ PIN_MODE_OUTPUT(GPIOA_USB_DISC) | \ - PIN_MODE_INPUT(GPIOA_PIN14) | \ - PIN_MODE_INPUT(GPIOA_PIN15)) + PIN_MODE_INPUT(GPIOA_SDIO_WP) | \ + PIN_MODE_INPUT(GPIOA_SDIO_CD)) #define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_PIN0) | \ PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \ PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \ @@ -278,8 +278,8 @@ PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \ PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \ PIN_OTYPE_PUSHPULL(GPIOA_USB_DISC) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN15)) + PIN_OTYPE_PUSHPULL(GPIOA_SDIO_WP) | \ + PIN_OTYPE_PUSHPULL(GPIOA_SDIO_CD)) #define VAL_GPIOA_OSPEEDR (PIN_OSPEED_100M(GPIOA_PIN0) | \ PIN_OSPEED_100M(GPIOA_PIN1) | \ PIN_OSPEED_100M(GPIOA_PIN2) | \ @@ -294,8 +294,8 @@ PIN_OSPEED_100M(GPIOA_USB_DM) | \ PIN_OSPEED_100M(GPIOA_USB_DP) | \ PIN_OSPEED_100M(GPIOA_USB_DISC) | \ - PIN_OSPEED_100M(GPIOA_PIN14) | \ - PIN_OSPEED_100M(GPIOA_PIN15)) + PIN_OSPEED_100M(GPIOA_SDIO_WP) | \ + PIN_OSPEED_100M(GPIOA_SDIO_CD)) #define VAL_GPIOA_PUPDR (PIN_PUPDR_PULLUP(GPIOA_PIN0) | \ PIN_PUPDR_PULLUP(GPIOA_PIN1) | \ PIN_PUPDR_PULLUP(GPIOA_PIN2) | \ @@ -309,8 +309,8 @@ PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \ PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \ PIN_PUPDR_FLOATING(GPIOA_USB_DISC) | \ - PIN_PUPDR_PULLDOWN(GPIOA_PIN14) | \ - PIN_PUPDR_FLOATING(GPIOA_PIN15)) + PIN_PUPDR_PULLUP(GPIOA_SDIO_WP) | \ + PIN_PUPDR_PULLUP(GPIOA_SDIO_CD)) #define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_PIN0) | \ PIN_ODR_HIGH(GPIOA_PIN1) | \ PIN_ODR_HIGH(GPIOA_PIN2) | \ @@ -325,8 +325,8 @@ PIN_ODR_HIGH(GPIOA_USB_DM) | \ PIN_ODR_HIGH(GPIOA_USB_DP) | \ PIN_ODR_HIGH(GPIOA_USB_DISC) | \ - PIN_ODR_HIGH(GPIOA_PIN14) | \ - PIN_ODR_HIGH(GPIOA_PIN15)) + PIN_ODR_HIGH(GPIOA_SDIO_WP) | \ + PIN_ODR_HIGH(GPIOA_SDIO_CD)) #define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_PIN0, 0) | \ PIN_AFIO_AF(GPIOA_PIN1, 0) | \ PIN_AFIO_AF(GPIOA_PIN2, 7) | \ @@ -341,8 +341,8 @@ PIN_AFIO_AF(GPIOA_USB_DM, 10) | \ PIN_AFIO_AF(GPIOA_USB_DP, 10) | \ PIN_AFIO_AF(GPIOA_USB_DISC, 0) | \ - PIN_AFIO_AF(GPIOA_PIN14, 0) | \ - PIN_AFIO_AF(GPIOA_PIN15, 0)) + PIN_AFIO_AF(GPIOA_SDIO_WP, 0) | \ + PIN_AFIO_AF(GPIOA_SDIO_CD, 0)) /* * GPIOB setup: @@ -473,11 +473,11 @@ * PC5 - PIN5 (input pullup). * PC6 - PIN6 (input pullup). * PC7 - PIN7 (input pullup). - * PC8 - PIN8 (input pullup). - * PC9 - PIN9 (input pullup). - * PC10 - PIN10 (input pullup). - * PC11 - PIN11 (input pullup). - * PC12 - PIN12 (input pullup). + * PC8 - SDIO_D0 (alternate function 12). + * PC9 - SDIO_D1 (alternate function 12). + * PC10 - SDIO_D2 (alternate function 12). + * PC11 - SDIO_D3 (alternate function 12). + * PC12 - SDIO_CK (alternate function 12). * PC13 - PIN13 (input pullup). * PC14 - PIN14 (input pullup). * PC15 - PIN15 (input pullup). @@ -490,11 +490,11 @@ PIN_MODE_INPUT(GPIOC_PIN5) | \ PIN_MODE_INPUT(GPIOC_PIN6) | \ PIN_MODE_INPUT(GPIOC_PIN7) | \ - PIN_MODE_INPUT(GPIOC_PIN8) | \ - PIN_MODE_INPUT(GPIOC_PIN9) | \ - PIN_MODE_INPUT(GPIOC_PIN10) | \ - PIN_MODE_INPUT(GPIOC_PIN11) | \ - PIN_MODE_INPUT(GPIOC_PIN12) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_D0) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_D1) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_D2) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_D3) | \ + PIN_MODE_ALTERNATE(GPIOC_SDIO_CK) | \ PIN_MODE_INPUT(GPIOC_PIN13) | \ PIN_MODE_INPUT(GPIOC_PIN14) | \ PIN_MODE_INPUT(GPIOC_PIN15)) @@ -506,11 +506,11 @@ PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \ PIN_OTYPE_PUSHPULL(GPIOC_PIN6) | \ PIN_OTYPE_PUSHPULL(GPIOC_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_D0) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_D1) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_D2) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_D3) | \ + PIN_OTYPE_PUSHPULL(GPIOC_SDIO_CK) | \ PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \ PIN_OTYPE_PUSHPULL(GPIOC_PIN14) | \ PIN_OTYPE_PUSHPULL(GPIOC_PIN15)) @@ -522,11 +522,11 @@ PIN_OSPEED_100M(GPIOC_PIN5) | \ PIN_OSPEED_100M(GPIOC_PIN6) | \ PIN_OSPEED_100M(GPIOC_PIN7) | \ - PIN_OSPEED_100M(GPIOC_PIN8) | \ - PIN_OSPEED_100M(GPIOC_PIN9) | \ - PIN_OSPEED_100M(GPIOC_PIN10) | \ - PIN_OSPEED_100M(GPIOC_PIN11) | \ - PIN_OSPEED_100M(GPIOC_PIN12) | \ + PIN_OSPEED_100M(GPIOC_SDIO_D0) | \ + PIN_OSPEED_100M(GPIOC_SDIO_D1) | \ + PIN_OSPEED_100M(GPIOC_SDIO_D2) | \ + PIN_OSPEED_100M(GPIOC_SDIO_D3) | \ + PIN_OSPEED_100M(GPIOC_SDIO_CK) | \ PIN_OSPEED_100M(GPIOC_PIN13) | \ PIN_OSPEED_100M(GPIOC_PIN14) | \ PIN_OSPEED_100M(GPIOC_PIN15)) @@ -538,11 +538,11 @@ PIN_PUPDR_PULLUP(GPIOC_PIN5) | \ PIN_PUPDR_PULLUP(GPIOC_PIN6) | \ PIN_PUPDR_PULLUP(GPIOC_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOC_SDIO_D0) | \ + PIN_PUPDR_PULLUP(GPIOC_SDIO_D1) | \ + PIN_PUPDR_PULLUP(GPIOC_SDIO_D2) | \ + PIN_PUPDR_PULLUP(GPIOC_SDIO_D3) | \ + PIN_PUPDR_PULLUP(GPIOC_SDIO_CK) | \ PIN_PUPDR_PULLUP(GPIOC_PIN13) | \ PIN_PUPDR_PULLUP(GPIOC_PIN14) | \ PIN_PUPDR_PULLUP(GPIOC_PIN15)) @@ -554,11 +554,11 @@ PIN_ODR_HIGH(GPIOC_PIN5) | \ PIN_ODR_HIGH(GPIOC_PIN6) | \ PIN_ODR_HIGH(GPIOC_PIN7) | \ - PIN_ODR_HIGH(GPIOC_PIN8) | \ - PIN_ODR_HIGH(GPIOC_PIN9) | \ - PIN_ODR_HIGH(GPIOC_PIN10) | \ - PIN_ODR_HIGH(GPIOC_PIN11) | \ - PIN_ODR_HIGH(GPIOC_PIN12) | \ + PIN_ODR_HIGH(GPIOC_SDIO_D0) | \ + PIN_ODR_HIGH(GPIOC_SDIO_D1) | \ + PIN_ODR_HIGH(GPIOC_SDIO_D2) | \ + PIN_ODR_HIGH(GPIOC_SDIO_D3) | \ + PIN_ODR_HIGH(GPIOC_SDIO_CK) | \ PIN_ODR_HIGH(GPIOC_PIN13) | \ PIN_ODR_HIGH(GPIOC_PIN14) | \ PIN_ODR_HIGH(GPIOC_PIN15)) @@ -570,11 +570,11 @@ PIN_AFIO_AF(GPIOC_PIN5, 0) | \ PIN_AFIO_AF(GPIOC_PIN6, 0) | \ PIN_AFIO_AF(GPIOC_PIN7, 0)) -#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_PIN8, 0) | \ - PIN_AFIO_AF(GPIOC_PIN9, 0) | \ - PIN_AFIO_AF(GPIOC_PIN10, 0) | \ - PIN_AFIO_AF(GPIOC_PIN11, 0) | \ - PIN_AFIO_AF(GPIOC_PIN12, 0) | \ +#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_SDIO_D0, 12) | \ + PIN_AFIO_AF(GPIOC_SDIO_D1, 12) | \ + PIN_AFIO_AF(GPIOC_SDIO_D2, 12) | \ + PIN_AFIO_AF(GPIOC_SDIO_D3, 12) | \ + PIN_AFIO_AF(GPIOC_SDIO_CK, 12) | \ PIN_AFIO_AF(GPIOC_PIN13, 0) | \ PIN_AFIO_AF(GPIOC_PIN14, 0) | \ PIN_AFIO_AF(GPIOC_PIN15, 0)) @@ -585,7 +585,7 @@ * * PD0 - PIN0 (input pullup). * PD1 - PIN1 (input pullup). - * PD2 - PIN2 (input pullup). + * PD2 - SDIO_CMD (alternate function 12). * PD3 - PIN3 (input pullup). * PD4 - PIN4 (input pullup). * PD5 - PIN5 (input pullup). @@ -602,7 +602,7 @@ */ #define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \ PIN_MODE_INPUT(GPIOD_PIN1) | \ - PIN_MODE_INPUT(GPIOD_PIN2) | \ + PIN_MODE_ALTERNATE(GPIOD_SDIO_CMD) | \ PIN_MODE_INPUT(GPIOD_PIN3) | \ PIN_MODE_INPUT(GPIOD_PIN4) | \ PIN_MODE_INPUT(GPIOD_PIN5) | \ @@ -618,7 +618,7 @@ PIN_MODE_INPUT(GPIOD_PIN15)) #define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \ PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOD_SDIO_CMD) | \ PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \ PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \ PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \ @@ -634,7 +634,7 @@ PIN_OTYPE_PUSHPULL(GPIOD_PIN15)) #define VAL_GPIOD_OSPEEDR (PIN_OSPEED_100M(GPIOD_PIN0) | \ PIN_OSPEED_100M(GPIOD_PIN1) | \ - PIN_OSPEED_100M(GPIOD_PIN2) | \ + PIN_OSPEED_100M(GPIOD_SDIO_CMD) | \ PIN_OSPEED_100M(GPIOD_PIN3) | \ PIN_OSPEED_100M(GPIOD_PIN4) | \ PIN_OSPEED_100M(GPIOD_PIN5) | \ @@ -650,7 +650,7 @@ PIN_OSPEED_100M(GPIOD_PIN15)) #define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \ PIN_PUPDR_PULLUP(GPIOD_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOD_SDIO_CMD) | \ PIN_PUPDR_PULLUP(GPIOD_PIN3) | \ PIN_PUPDR_PULLUP(GPIOD_PIN4) | \ PIN_PUPDR_PULLUP(GPIOD_PIN5) | \ @@ -666,7 +666,7 @@ PIN_PUPDR_PULLUP(GPIOD_PIN15)) #define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \ PIN_ODR_HIGH(GPIOD_PIN1) | \ - PIN_ODR_HIGH(GPIOD_PIN2) | \ + PIN_ODR_HIGH(GPIOD_SDIO_CMD) | \ PIN_ODR_HIGH(GPIOD_PIN3) | \ PIN_ODR_HIGH(GPIOD_PIN4) | \ PIN_ODR_HIGH(GPIOD_PIN5) | \ @@ -682,7 +682,7 @@ PIN_ODR_HIGH(GPIOD_PIN15)) #define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0) | \ PIN_AFIO_AF(GPIOD_PIN1, 0) | \ - PIN_AFIO_AF(GPIOD_PIN2, 0) | \ + PIN_AFIO_AF(GPIOD_SDIO_CMD, 12) | \ PIN_AFIO_AF(GPIOD_PIN3, 0) | \ PIN_AFIO_AF(GPIOD_PIN4, 0) | \ PIN_AFIO_AF(GPIOD_PIN5, 0) | \ diff --git a/software/mpu/halconf.h b/software/mpu/halconf.h index 31a845e..25f5c2a 100644 --- a/software/mpu/halconf.h +++ b/software/mpu/halconf.h @@ -118,7 +118,7 @@ * @brief Enables the SDC subsystem. */ #if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE +#define HAL_USE_SDC TRUE #endif /** @@ -263,6 +263,20 @@ #define SDC_NICE_WAITING TRUE #endif +/** + * @brief Write timeout in milliseconds. + */ +#if !defined(SDC_WRITE_TIMEOUT_MS) || defined(__DOXYGEN__) +#define SDC_WRITE_TIMEOUT_MS 250 +#endif + +/** + * @brief Read timeout in milliseconds. + */ +#if !defined(SDC_READ_TIMEOUT_MS) || defined(__DOXYGEN__) +#define SDC_READ_TIMEOUT_MS 5 +#endif + /*===========================================================================*/ /* SERIAL driver related settings. */ /*===========================================================================*/ diff --git a/software/mpu/main.c b/software/mpu/main.c index 99ca5a2..3bae9f0 100644 --- a/software/mpu/main.c +++ b/software/mpu/main.c @@ -37,6 +37,7 @@ #include "usb-cdc-shell.h" #include "ihu.h" +#include "blockstore.h" static void sysInit(void) { @@ -55,6 +56,7 @@ static void subsystemsInit(void) { /* call init functions of all subsystems which should spawn threads for their task */ heartbeatInit(); + blockstoreInit(); ihuInit(); } @@ -63,6 +65,7 @@ static void subsystemsStop(void) /* Safely stop critical threads, aka call shutdown functions of all subsystems */ /* -> invoke the xxxStop() method on all the active device drivers */ ihuStop(); + blockstoreStop(); } static void sysShutdown(void) |