From 3440f11481452204d68283230b2e421df01e5d56 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 1 Jul 2012 17:10:40 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4382 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/ARMCM3-STM32F103ZG-FATFS/main.c | 33 ++++++++------------ demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c | 1 + 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/demos/ARMCM3-STM32F103ZG-FATFS/main.c b/demos/ARMCM3-STM32F103ZG-FATFS/main.c index b44612091..5433daced 100644 --- a/demos/ARMCM3-STM32F103ZG-FATFS/main.c +++ b/demos/ARMCM3-STM32F103ZG-FATFS/main.c @@ -62,28 +62,20 @@ static EventSource inserted_event, removed_event; static void tmrfunc(void *p) { BaseBlockDevice *bbdp = p; - /* The presence check is performed only while the driver is not in a - transfer state because it is often performed by changing the mode of - the pin connected to the CS/D3 contact of the card, this could disturb - the transfer.*/ - blkstate_t state = blkGetDriverState(bbdp); chSysLockFromIsr(); - if ((state != BLK_READING) && (state != BLK_WRITING)) { - /* Safe to perform the check.*/ - if (cnt > 0) { - if (blkIsInserted(bbdp)) { - if (--cnt == 0) { - chEvtBroadcastI(&inserted_event); - } + if (cnt > 0) { + if (blkIsInserted(bbdp)) { + if (--cnt == 0) { + chEvtBroadcastI(&inserted_event); } - else - cnt = POLLING_INTERVAL; } - else { - if (!blkIsInserted(bbdp)) { - cnt = POLLING_INTERVAL; - chEvtBroadcastI(&removed_event); - } + else + cnt = POLLING_INTERVAL; + } + else { + if (!blkIsInserted(bbdp)) { + cnt = POLLING_INTERVAL; + chEvtBroadcastI(&removed_event); } } chVTSetI(&tmr, MS2ST(POLLING_DELAY), tmrfunc, bbdp); @@ -284,11 +276,12 @@ static void InsertHandler(eventid_t id) { static void RemoveHandler(eventid_t id) { (void)id; + sdcDisconnect(&SDCD1); fs_ready = FALSE; } /* - * Red LED blinker thread, times are in milliseconds. + * LEDs blinker thread, times are in milliseconds. */ static WORKING_AREA(waThread1, 128); static msg_t Thread1(void *arg) { diff --git a/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c b/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c index ae0104e31..f23488ec8 100644 --- a/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c +++ b/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c @@ -584,6 +584,7 @@ static void InsertHandler(eventid_t id) { static void RemoveHandler(eventid_t id) { (void)id; + sdcDisconnect(&SDCD1); fs_ready = FALSE; }