Changeset 36 for trunk/firmware/App/SES/Core
- Timestamp:
- Oct 20, 2026, 2:17:01 PM (2 weeks ago)
- Location:
- trunk/firmware/App/SES/Core/Tasks
- Files:
-
- 3 edited
-
Inc/sdmmcTask.h (modified) (1 diff)
-
Src/mainTask.cpp (modified) (1 diff)
-
Src/sdmmcTask.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/firmware/App/SES/Core/Tasks/Inc/sdmmcTask.h
r33 r36 1 1 #ifndef __SDMMCTASK_H 2 2 #define __SDMMCTASK_H 3 4 typedef enum SdCardCmd 5 { 6 SDMMC_Initialize, 7 SDMMC_Deinitialize, 8 } SdCardCmd_t; 3 9 4 10 #ifdef __cplusplus -
trunk/firmware/App/SES/Core/Tasks/Src/mainTask.cpp
r35 r36 12 12 void StartMainTask(void* arg) 13 13 { 14 osDelay(6000U); 14 15 while(1) 15 16 { -
trunk/firmware/App/SES/Core/Tasks/Src/sdmmcTask.cpp
r35 r36 16 16 NotPresent, 17 17 Inserted, 18 Initialized,19 Deinitialized,20 Error21 18 }; 22 19 20 extern osMessageQueueId_t sdmmcCmdQueueHandle; 21 23 22 constexpr unsigned SD_PRESENCE_SCAN_RATE_ms = 50U; 24 constexpr unsigned MEDIA_CLOSED = 1U;25 constexpr unsigned MEDIA_OPENED = 0U;26 23 27 24 CHAR FX_SD_VOLUME_NAME[] = "SDMMC"; … … 53 50 sdLastState = sdCurrentState = SdCardState::Inserted; 54 51 printf("SD-card was inserted\n"); 52 SdCardCmd_t msg = SDMMC_Initialize; 53 osStatus_t status = osMessageQueuePut(sdmmcCmdQueueHandle, &msg, 0U, osWaitForever); 54 if (status != osOK) printf("Cannot put SDMMC_INIT message into queue!\n"); 55 55 } 56 56 } … … 63 63 64 64 case SdCardState::Inserted: 65 if (HAL_GPIO_ReadPin(SD_PRESENCE_GPIO_Port, SD_PRESENCE_Pin) == SD_ PRESENT)65 if (HAL_GPIO_ReadPin(SD_PRESENCE_GPIO_Port, SD_PRESENCE_Pin) == SD_NOT_PRESENT) 66 66 { 67 67 insertionDetectionCnt = 0; … … 72 72 sdLastState = sdCurrentState = SdCardState::NotPresent; 73 73 printf("SD-card was extracted\n"); 74 SdCardCmd_t msg = SDMMC_Deinitialize; 75 osStatus_t status = osMessageQueuePut(sdmmcCmdQueueHandle, &msg, 0U, osWaitForever); 76 if (status != osOK) printf("Cannot put SDMMC_DEINIT message into queue!\n"); 74 77 } 75 78 } … … 80 83 extractionDetectionCnt = 0; 81 84 break; 85 } // switch(sdCurrentState) 82 86 83 case SdCardState::Initialized: break; 84 case SdCardState::Deinitialized: break; 85 case SdCardState::Error: break; 87 UINT sd_status; 88 SdCardCmd_t msg; 89 osStatus_t status = osMessageQueueGet(sdmmcCmdQueueHandle, &msg, NULL, SD_PRESENCE_SCAN_RATE_ms); // wait for a message 90 if (status == osOK) 91 { 92 switch(msg) 93 { 94 case SDMMC_Initialize: 95 printf("Initializing...\n"); 96 // Open the SD disk driver 97 sd_status = fx_media_open(&sdio_disk, FX_SD_VOLUME_NAME, fx_stm32_sd_driver, (VOID*)FX_NULL, (VOID*)fx_sd_media_memory, sizeof(fx_sd_media_memory)); 98 // Check the media open sd_status 99 if (sd_status == FX_SUCCESS) 100 { 101 } 102 else 103 printf("Cannot open media!\n"); 104 105 break; 106 107 case SDMMC_Deinitialize: 108 printf("Deinitializing...\n"); 109 break; 110 } 86 111 } 87 osDelay(SD_PRESENCE_SCAN_RATE_ms); 88 } 89 90 /*UINT sd_status = FX_SUCCESS; 91 fx_system_initialize(); // Initialize FileX 92 93 // Open the SD disk driver 94 sd_status = fx_media_open(&sdio_disk, FX_SD_VOLUME_NAME, fx_stm32_sd_driver, (VOID *)FX_NULL, (VOID *) fx_sd_media_memory, sizeof(fx_sd_media_memory)); 95 96 fx_media_close_notify_set(&sdio_disk, [](FX_MEDIA* media_ptr) { UNUSED(media_ptr); media_status = MEDIA_CLOSED; }); 97 98 99 // Check the media open sd_status 100 if (sd_status != FX_SUCCESS) 101 { 102 Error_Handler(); 103 }*/ 104 105 106 while(1) 107 { 108 osDelay(1000U); 109 } 112 } // while(1) 110 113 }
Note:
See TracChangeset
for help on using the changeset viewer.
