Format sd card.

This commit is contained in:
Fancy code 2024-07-16 10:37:08 +08:00
parent d15663c9f7
commit 0b49e1a2ec
2 changed files with 24 additions and 1 deletions

View File

@ -67,14 +67,16 @@ StatusCode SdCardHal::GetCapacity(unsigned long long &totalSizeMB, unsigned long
} }
StatusCode SdCardHal::FormatSDCard(void) StatusCode SdCardHal::FormatSDCard(void)
{ {
UnInit();
char command[128] = {0}; char command[128] = {0};
sprintf(command, "mkfs.ext4 -F %s", SD_CARD_DEVICE); sprintf(command, "mkfs.vfat -F 32 %s", SD_CARD_DEVICE);
int ret = fx_system(command); int ret = fx_system(command);
if (ret != 0) { if (ret != 0) {
LogError("Format sd card failed [%s].\n", SD_CARD_DEVICE); LogError("Format sd card failed [%s].\n", SD_CARD_DEVICE);
return CreateStatusCode(STATUS_CODE_NOT_OK); return CreateStatusCode(STATUS_CODE_NOT_OK);
} }
LogInfo("Format sd card success.\n"); LogInfo("Format sd card success.\n");
Init();
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }
void SdCardHal::Init(void) void SdCardHal::Init(void)
@ -91,6 +93,7 @@ void SdCardHal::UnInit(void)
if (mDevDetectingThread.joinable()) { if (mDevDetectingThread.joinable()) {
mDevDetectingThread.join(); mDevDetectingThread.join();
} }
UnmountSdCard();
} }
void SdCardHal::DevDetectingThread(void) void SdCardHal::DevDetectingThread(void)
{ {
@ -203,3 +206,21 @@ const char *SdCardHal::PrintfStatusString(const SdCardHalStatus &status)
return "UNDEFINE."; return "UNDEFINE.";
} }
} }
void SdCardHal::UnmountSdCard(void)
{
char command[128] = {0};
/** TODO:
* @brief Here, the SD card is forcibly loaded, and the DevDetectingThread function of this article causes the SD
* card node to be occupied and cannot be loaded. To find problems and optimize them, it is especially important to
* check whether there are any omissions.
*/
sprintf(command, "umount -fl %s", SD_CARD_MOUNT_PATH);
int ret = fx_system(command);
if (ret != 0) {
LogError("Format sd card failed [%s].\n", SD_CARD_DEVICE);
return;
}
}
void SdCardHal::MountSdCard(void)
{
}

View File

@ -33,6 +33,8 @@ public:
private: private:
void ReportDetecedChangedResult(const SdCardHalStatus &status); void ReportDetecedChangedResult(const SdCardHalStatus &status);
const char *PrintfStatusString(const SdCardHalStatus &status); const char *PrintfStatusString(const SdCardHalStatus &status);
void UnmountSdCard(void);
void MountSdCard(void);
private: private:
SdCardHalStatus mStatus; SdCardHalStatus mStatus;