json file download needs to check whether the sd card is mounted successfully

This commit is contained in:
wgzAIIT 2023-09-21 11:10:36 +08:00
parent 9fd61d3d2a
commit b41a1709c6
2 changed files with 23 additions and 17 deletions

View File

@ -274,6 +274,8 @@ static struct SdioDevDone dev_done =
SdioRead, SdioRead,
}; };
static bool is_mount_ok = false;
#if defined(FS_VFS) && defined(MOUNT_SDCARD_FS) #if defined(FS_VFS) && defined(MOUNT_SDCARD_FS)
#include <iot-vfs.h> #include <iot-vfs.h>
@ -283,11 +285,14 @@ static struct SdioDevDone dev_done =
*/ */
static int MountSDCardFs(enum FilesystemType fs_type) static int MountSDCardFs(enum FilesystemType fs_type)
{ {
if (MountFilesystem(SDIO_BUS_NAME, SDIO_DEVICE_NAME, SDIO_DRIVER_NAME, fs_type, "/") == 0) if (MountFilesystem(SDIO_BUS_NAME, SDIO_DEVICE_NAME, SDIO_DRIVER_NAME, fs_type, "/") == 0){
KPrintf("Sd card mount to '/'"); KPrintf("Sd card mount to '/'");
else is_mount_ok = true;
} else {
KPrintf("Sd card mount to '/' failed!"); KPrintf("Sd card mount to '/' failed!");
is_mount_ok = false;
}
return 0; return 0;
} }
#endif #endif
@ -329,6 +334,7 @@ static void SdCardDetach(void)
#ifdef MOUNT_SDCARD_FS #ifdef MOUNT_SDCARD_FS
UnmountFileSystem("/"); UnmountFileSystem("/");
is_mount_ok = false;
#endif #endif
} }
@ -350,9 +356,10 @@ static uint8 SdCardReadCd(void)
return BusDevReadData(pin->owner_haldev, &read_param); return BusDevReadData(pin->owner_haldev, &read_param);
} }
static int sd_card_status = 0;
static void SdCardTask(void* parameter) static void SdCardTask(void* parameter)
{ {
static int sd_card_status = 0;
while (1) { while (1) {
if (!SdCardReadCd()) { if (!SdCardReadCd()) {
if (!sd_card_status) { if (!sd_card_status) {
@ -368,11 +375,6 @@ static void SdCardTask(void* parameter)
} }
} }
int GetSdCardStatus(void)
{
return sd_card_status;
}
#ifdef MOUNT_SDCARD #ifdef MOUNT_SDCARD
int MountSDCard() int MountSDCard()
{ {
@ -390,6 +392,13 @@ int MountSDCard()
} }
#endif #endif
bool GetSdMountStatus(void)
{
if(!is_mount_ok)
KPrintf("The SD card was not mounted successfully or not inserted, please check!\r\n");
return is_mount_ok;
}
int Imxrt1052HwSdioInit(void) int Imxrt1052HwSdioInit(void)
{ {
x_err_t ret = EOK; x_err_t ret = EOK;

View File

@ -874,7 +874,7 @@ static void mqttCloudInteraction(void* parameter)
reconnect: reconnect:
if((AdapterNetActive() == 0) && MQTT_Connect() && MQTT_SubscribeTopic(topicdatabuff[0]) && MQTT_SubscribeTopic(topicdatabuff[1])) if((AdapterNetActive() == 0) && MQTT_Connect() && MQTT_SubscribeTopic(topicdatabuff[0]) && MQTT_SubscribeTopic(topicdatabuff[1]))
{ {
KPrintf("Log in to the cloud platform and subscribe to the ota topic successfully.\n"); KPrintf("Log in to the cloud platform and subscribe to the topic successfully.\n");
PropertyVersion(); PropertyVersion();
} }
else else
@ -888,9 +888,9 @@ reconnect:
uint8_t jsonfilename[32]; uint8_t jsonfilename[32];
memset(jsontopicdatabuff,0,sizeof(jsontopicdatabuff)); memset(jsontopicdatabuff,0,sizeof(jsontopicdatabuff));
sprintf(jsontopicdatabuff,"protocol/%s/files",CLIENTID); sprintf(jsontopicdatabuff,"protocol/%s/files",CLIENTID);
if(MQTT_SubscribeTopic(jsontopicdatabuff)) if(!MQTT_SubscribeTopic(jsontopicdatabuff))
{ {
KPrintf("subscribe to the json download topic successfully.\n"); KPrintf("subscribe to the json download topic failed!\n");
} }
#endif #endif
@ -1015,8 +1015,8 @@ reconnect:
} }
#ifdef USING_DOWNLOAD_JSON #ifdef USING_DOWNLOAD_JSON
// 3.下载json文件,SD卡要确保已经插入 // 3.下载json文件,SD卡要确保已经插入
extern int GetSdCardStatus(void); extern bool GetSdMountStatus(void);
if(strstr((char *)Platform_mqtt.cmdbuff,jsontopicdatabuff) && GetSdCardStatus()) if(strstr((char *)Platform_mqtt.cmdbuff,jsontopicdatabuff) && GetSdMountStatus())
{ {
KPrintf("------Start download joson file !------\r\n"); KPrintf("------Start download joson file !------\r\n");
memset(jsonfilename,0,sizeof(jsonfilename)); memset(jsonfilename,0,sizeof(jsonfilename));
@ -1079,8 +1079,6 @@ reconnect:
{ {
KPrintf("firmware file transfer failed,start reboot!\n"); KPrintf("firmware file transfer failed,start reboot!\n");
} }
MQTT_UnSubscribeTopic(topicdatabuff[0]);
MQTT_UnSubscribeTopic(topicdatabuff[1]);
MQTT_Disconnect(); MQTT_Disconnect();
mcuboot.flash_deinit(); mcuboot.flash_deinit();
MdelayKTask(2000); MdelayKTask(2000);
@ -1319,7 +1317,6 @@ reconnect:
{ {
KPrintf("firmware file transfer failed,start reboot!\n"); KPrintf("firmware file transfer failed,start reboot!\n");
} }
MQTT_UnSubscribeTopic(topicdatabuff);
MQTT_Disconnect(); MQTT_Disconnect();
mcuboot.flash_deinit(); mcuboot.flash_deinit();
MdelayKTask(2000); MdelayKTask(2000);