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)
{
UnInit();
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);
if (ret != 0) {
LogError("Format sd card failed [%s].\n", SD_CARD_DEVICE);
return CreateStatusCode(STATUS_CODE_NOT_OK);
}
LogInfo("Format sd card success.\n");
Init();
return CreateStatusCode(STATUS_CODE_OK);
}
void SdCardHal::Init(void)
@ -91,6 +93,7 @@ void SdCardHal::UnInit(void)
if (mDevDetectingThread.joinable()) {
mDevDetectingThread.join();
}
UnmountSdCard();
}
void SdCardHal::DevDetectingThread(void)
{
@ -202,4 +205,22 @@ const char *SdCardHal::PrintfStatusString(const SdCardHalStatus &status)
default:
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:
void ReportDetecedChangedResult(const SdCardHalStatus &status);
const char *PrintfStatusString(const SdCardHalStatus &status);
void UnmountSdCard(void);
void MountSdCard(void);
private:
SdCardHalStatus mStatus;