diff --git a/Ubiquitous/XiZi_IIoT/board/xidatong-arm32/third_party_driver/sdio/connect_sdio.c b/Ubiquitous/XiZi_IIoT/board/xidatong-arm32/third_party_driver/sdio/connect_sdio.c index ee7daf13a..5397da037 100644 --- a/Ubiquitous/XiZi_IIoT/board/xidatong-arm32/third_party_driver/sdio/connect_sdio.c +++ b/Ubiquitous/XiZi_IIoT/board/xidatong-arm32/third_party_driver/sdio/connect_sdio.c @@ -274,6 +274,8 @@ static struct SdioDevDone dev_done = SdioRead, }; +static bool is_mount_ok = false; + #if defined(FS_VFS) && defined(MOUNT_SDCARD_FS) #include @@ -283,11 +285,14 @@ static struct SdioDevDone dev_done = */ 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 '/'"); - else + is_mount_ok = true; + } else { KPrintf("Sd card mount to '/' failed!"); - + is_mount_ok = false; + } + return 0; } #endif @@ -329,6 +334,7 @@ static void SdCardDetach(void) #ifdef MOUNT_SDCARD_FS UnmountFileSystem("/"); + is_mount_ok = false; #endif } @@ -350,9 +356,10 @@ static uint8 SdCardReadCd(void) return BusDevReadData(pin->owner_haldev, &read_param); } -static int sd_card_status = 0; static void SdCardTask(void* parameter) { + static int sd_card_status = 0; + while (1) { if (!SdCardReadCd()) { if (!sd_card_status) { @@ -368,11 +375,6 @@ static void SdCardTask(void* parameter) } } -int GetSdCardStatus(void) -{ - return sd_card_status; -} - #ifdef MOUNT_SDCARD int MountSDCard() { @@ -390,6 +392,13 @@ int MountSDCard() } #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) { x_err_t ret = EOK; diff --git a/Ubiquitous/XiZi_IIoT/tool/bootloader/ota/ota.c b/Ubiquitous/XiZi_IIoT/tool/bootloader/ota/ota.c index eb3eb4d8e..42495fc86 100644 --- a/Ubiquitous/XiZi_IIoT/tool/bootloader/ota/ota.c +++ b/Ubiquitous/XiZi_IIoT/tool/bootloader/ota/ota.c @@ -874,7 +874,7 @@ static void mqttCloudInteraction(void* parameter) reconnect: 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(); } else @@ -888,9 +888,9 @@ reconnect: uint8_t jsonfilename[32]; memset(jsontopicdatabuff,0,sizeof(jsontopicdatabuff)); 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 @@ -1015,8 +1015,8 @@ reconnect: } #ifdef USING_DOWNLOAD_JSON // 3.下载json文件,SD卡要确保已经插入 - extern int GetSdCardStatus(void); - if(strstr((char *)Platform_mqtt.cmdbuff,jsontopicdatabuff) && GetSdCardStatus()) + extern bool GetSdMountStatus(void); + if(strstr((char *)Platform_mqtt.cmdbuff,jsontopicdatabuff) && GetSdMountStatus()) { KPrintf("------Start download joson file !------\r\n"); memset(jsonfilename,0,sizeof(jsonfilename)); @@ -1079,8 +1079,6 @@ reconnect: { KPrintf("firmware file transfer failed,start reboot!\n"); } - MQTT_UnSubscribeTopic(topicdatabuff[0]); - MQTT_UnSubscribeTopic(topicdatabuff[1]); MQTT_Disconnect(); mcuboot.flash_deinit(); MdelayKTask(2000); @@ -1319,7 +1317,6 @@ reconnect: { KPrintf("firmware file transfer failed,start reboot!\n"); } - MQTT_UnSubscribeTopic(topicdatabuff); MQTT_Disconnect(); mcuboot.flash_deinit(); MdelayKTask(2000);