修改RTOS下无法保存缩略图到EMMC问题和优化存储设备切换逻辑
This commit is contained in:
parent
8bbe9651b2
commit
49b78482b1
|
@ -26,7 +26,7 @@ typedef struct
|
||||||
int mounted_status;
|
int mounted_status;
|
||||||
}STRG_CB_PARAM;
|
}STRG_CB_PARAM;
|
||||||
|
|
||||||
static SF_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL};
|
SF_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL};
|
||||||
|
|
||||||
void SF_StrgInit(void)
|
void SF_StrgInit(void)
|
||||||
{
|
{
|
||||||
|
@ -37,6 +37,7 @@ void SF_StrgInit(void)
|
||||||
// 处理内存分配失败的情况
|
// 处理内存分配失败的情况
|
||||||
}
|
}
|
||||||
sf_mmc_dev[i]->dcf_handle = -1;
|
sf_mmc_dev[i]->dcf_handle = -1;
|
||||||
|
sf_mmc_dev[i]->dev_type = MMC_DEV_NO;
|
||||||
sf_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO;
|
sf_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO;
|
||||||
sf_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_NO;
|
sf_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_NO;
|
||||||
sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_NO;
|
sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_NO;
|
||||||
|
@ -79,11 +80,11 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev)
|
||||||
|
|
||||||
if(diskFree < 30) /* 30MB */
|
if(diskFree < 30) /* 30MB */
|
||||||
{
|
{
|
||||||
ret = TRUE;
|
ret = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ret = FALSE;
|
ret = 0;
|
||||||
}
|
}
|
||||||
MLOGD("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree);
|
MLOGD("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -200,7 +201,7 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void)
|
int SF_StrgCheckWorkableDev(void)
|
||||||
{
|
{
|
||||||
MMC_DEV_TYPE workable_dev = MMC_DEV_NO;
|
MMC_DEV_TYPE workable_dev = MMC_DEV_NO;
|
||||||
MLOGD("sf mmc check workable dev start!!!\n");
|
MLOGD("sf mmc check workable dev start!!!\n");
|
||||||
|
@ -302,19 +303,20 @@ SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev);
|
MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev);
|
||||||
for(int i = 0; i < 2; i++)
|
for(int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
|
sf_mmc_dev[i]->dev_type = workable_dev;
|
||||||
MLOGD("node:%d, mount:%d, space:%d, loop:%d\n",
|
MLOGD("node:%d, mount:%d, space:%d, loop:%d\n",
|
||||||
sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state,
|
sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state,
|
||||||
sf_mmc_dev[i]->space_state, sf_mmc_dev[i]->loop_state);
|
sf_mmc_dev[i]->space_state, sf_mmc_dev[i]->loop_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(workable_dev != MMC_DEV_NO)
|
if(workable_dev != MMC_DEV_NO)
|
||||||
{
|
{
|
||||||
MLOGD("dcf_handle = %d\n", sf_mmc_dev[workable_dev]->dcf_handle);
|
MLOGD("dcf_handle = %d\n", sf_mmc_dev[workable_dev]->dcf_handle);
|
||||||
return sf_mmc_dev[workable_dev];
|
return sf_mmc_dev[workable_dev]->dcf_handle;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return NULL;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,6 +70,7 @@ typedef enum
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
MMC_DEV_TYPE dev_type;
|
||||||
MMC_DEV_NODE_STATE node;
|
MMC_DEV_NODE_STATE node;
|
||||||
MMC_DEV_MOUNT_STATE moumted_state;
|
MMC_DEV_MOUNT_STATE moumted_state;
|
||||||
MMC_DEV_SPACE_STATE space_state;
|
MMC_DEV_SPACE_STATE space_state;
|
||||||
|
@ -82,7 +83,7 @@ void SF_StrgInit(void);
|
||||||
void SF_StrgUnInit(void);
|
void SF_StrgUnInit(void);
|
||||||
void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle);
|
void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle);
|
||||||
void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf);
|
void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf);
|
||||||
SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void);
|
int SF_StrgCheckWorkableDev(void);
|
||||||
|
|
||||||
|
|
||||||
#endif //_SF_SYS_STRG_MNG_H_
|
#endif //_SF_SYS_STRG_MNG_H_
|
||||||
|
|
|
@ -760,14 +760,14 @@ INT32 System_Set_Storage_Act_Drive(char drive)
|
||||||
|
|
||||||
DCF_HANDLE System_Get_DCF_Handle(void)
|
DCF_HANDLE System_Get_DCF_Handle(void)
|
||||||
{
|
{
|
||||||
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
int dcf_handle = SF_StrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(dcf_handle < 0)
|
||||||
{
|
{
|
||||||
DBG_ERR("No MMC_Dev Can use!\n");
|
DBG_ERR("No MMC_Dev Can use!\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
DBG_WRN("DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
|
DBG_WRN("DCF_GET_HANDLE, %d\n", dcf_handle);
|
||||||
return mmc_dev->dcf_handle;
|
return dcf_handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle)
|
CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle)
|
||||||
|
|
|
@ -948,8 +948,8 @@
|
||||||
#define SF_BASE_VERSION "7MR5RCwDC05"
|
#define SF_BASE_VERSION "7MR5RCwDC05"
|
||||||
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
|
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
|
||||||
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
||||||
#define PHOTO_THUMB_PATH "A:\\THUMB\\"
|
#define PHOTO_THUMB_PATH ":\\THUMB\\"
|
||||||
#define MOVIE_THUMB_PATH "A:\\THUMB\\"
|
#define MOVIE_THUMB_PATH ":\\THUMB\\"
|
||||||
#define SF_SEND_LIST_DIR "/mnt/sd/THUMB"
|
#define SF_SEND_LIST_DIR "/mnt/sd/THUMB"
|
||||||
#define SF_THUMB_SEND_LIST PHOTO_THUMB_PATH"send.list"
|
#define SF_THUMB_SEND_LIST PHOTO_THUMB_PATH"send.list"
|
||||||
#define SF_THUMB_SEND_AUTO PHOTO_THUMB_PATH"auto.list"
|
#define SF_THUMB_SEND_AUTO PHOTO_THUMB_PATH"auto.list"
|
||||||
|
|
|
@ -1127,9 +1127,24 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3
|
||||||
|
|
||||||
char tmp[256] = {'\0'};
|
char tmp[256] = {'\0'};
|
||||||
|
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("No MMC_Dev Can use!\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(mmc_dev->dev_type == MMC_DEV_SD)
|
||||||
|
{
|
||||||
|
snprintf(tmp, sizeof(tmp), "%c%s%s", 'A', MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */
|
snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */
|
||||||
snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG");
|
snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG");
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "sys_usrmem.h"
|
#include "sys_usrmem.h"
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
#include <sf_mcu.h>
|
#include <sf_mcu.h>
|
||||||
|
#include "sf_sd_common.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define VDO_YUV_BUFSIZE(w, h, pxlfmt) ALIGN_CEIL_4(((w) * (h) * HD_VIDEO_PXLFMT_BPP(pxlfmt)) / 8)
|
#define VDO_YUV_BUFSIZE(w, h, pxlfmt) ALIGN_CEIL_4(((w) * (h) * HD_VIDEO_PXLFMT_BPP(pxlfmt)) / 8)
|
||||||
|
@ -2384,7 +2385,22 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("No MMC_Dev Can use!\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(mmc_dev->dev_type == MMC_DEV_SD)
|
||||||
|
{
|
||||||
|
snprintf(tmp, sizeof(tmp), "%c%s%s", 'A', PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */
|
||||||
|
}
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
UINT32 length = strlen(file_path);
|
UINT32 length = strlen(file_path);
|
||||||
snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */
|
snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */
|
||||||
|
|
|
@ -59,10 +59,9 @@ typedef enum
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
//MMC_DEV_NODE_STATE node;
|
MMC_DEV_TYPE dev_type;
|
||||||
MMC_DEV_MOUNT_STATE moumted_state;
|
MMC_DEV_MOUNT_STATE moumted_state;
|
||||||
MMC_DEV_SPACE_STATE space_state;
|
MMC_DEV_SPACE_STATE space_state;
|
||||||
//MMC_DEV_LOOP_STATE loop_state;
|
|
||||||
int dcf_handle;
|
int dcf_handle;
|
||||||
}SF_RTOS_ST_MMC_DEV;
|
}SF_RTOS_ST_MMC_DEV;
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ static BOOL IsCardFull = FALSE;
|
||||||
SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL;
|
SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL;
|
||||||
extern BOOL DrvCARD_DetStrgCard(void);
|
extern BOOL DrvCARD_DetStrgCard(void);
|
||||||
|
|
||||||
static SF_RTOS_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL};
|
SF_RTOS_ST_MMC_DEV *sf_rtos_mmc_dev[MMC_DEV_MAX_NUM] = {NULL};
|
||||||
|
|
||||||
BOOL sf_is_card_full(void)
|
BOOL sf_is_card_full(void)
|
||||||
{
|
{
|
||||||
|
@ -117,15 +117,16 @@ void SF_RtosStrgInit(void)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < MMC_DEV_MAX_NUM; i++)
|
for(int i = 0; i < MMC_DEV_MAX_NUM; i++)
|
||||||
{
|
{
|
||||||
sf_mmc_dev[i] = (SF_RTOS_ST_MMC_DEV *)malloc(sizeof(SF_RTOS_ST_MMC_DEV));
|
sf_rtos_mmc_dev[i] = (SF_RTOS_ST_MMC_DEV *)malloc(sizeof(SF_RTOS_ST_MMC_DEV));
|
||||||
if(sf_mmc_dev[i] == NULL) {
|
if(sf_rtos_mmc_dev[i] == NULL) {
|
||||||
// 处理内存分配失败的情况
|
// 处理内存分配失败的情况
|
||||||
}
|
}
|
||||||
sf_mmc_dev[i]->dcf_handle = -1;
|
sf_rtos_mmc_dev[i]->dcf_handle = -1;
|
||||||
//sf_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO;
|
sf_rtos_mmc_dev[i]->dev_type = MMC_DEV_NO;
|
||||||
sf_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_NO;
|
//sf_rtos_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO;
|
||||||
sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_NO;
|
sf_rtos_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_NO;
|
||||||
//sf_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_NO;
|
sf_rtos_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_NO;
|
||||||
|
//sf_rtos_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_NO;
|
||||||
}
|
}
|
||||||
DBG_WRN("SF_RtosStrgInit!\n");
|
DBG_WRN("SF_RtosStrgInit!\n");
|
||||||
}
|
}
|
||||||
|
@ -134,15 +135,15 @@ void SF_RtosStrgUnInit(void)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < MMC_DEV_MAX_NUM; i++)
|
for(int i = 0; i < MMC_DEV_MAX_NUM; i++)
|
||||||
{
|
{
|
||||||
if(sf_mmc_dev[i] != NULL) {
|
if(sf_rtos_mmc_dev[i] != NULL) {
|
||||||
free(sf_mmc_dev[i]);
|
free(sf_rtos_mmc_dev[i]);
|
||||||
sf_mmc_dev[i] = NULL;
|
sf_rtos_mmc_dev[i] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DBG_WRN("SF_RtosStrgUnInit!\n");
|
DBG_WRN("SF_RtosStrgUnInit!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static UINT32 sf_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev)
|
static UINT32 sf_rtos_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev)
|
||||||
{
|
{
|
||||||
UINT64 diskFree = 0;
|
UINT64 diskFree = 0;
|
||||||
UINT32 ret = 0;
|
UINT32 ret = 0;
|
||||||
|
@ -167,14 +168,14 @@ static UINT32 sf_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev)
|
||||||
|
|
||||||
if(diskFree < 30) /* 30MB */
|
if(diskFree < 30) /* 30MB */
|
||||||
{
|
{
|
||||||
ret = TRUE;
|
ret = 1;
|
||||||
IsCardFull = TRUE;
|
IsCardFull = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ret = FALSE;
|
ret = 0;
|
||||||
}
|
}
|
||||||
DBG_WRN("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree);
|
DBG_WRN("[%d]sd card diskFree=%lluM, ret = %d\n", __LINE__, diskFree, ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,28 +183,29 @@ int SF_RtosStrgRegister(int devid, int mounted_state)
|
||||||
{
|
{
|
||||||
if(mounted_state == FST_STA_OK)
|
if(mounted_state == FST_STA_OK)
|
||||||
{
|
{
|
||||||
sf_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED;
|
sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sf_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED;
|
sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
int isfull = sf_mmc_dev_space_check_full(devid);
|
UINT32 isfull = sf_rtos_mmc_dev_space_check_full(devid);
|
||||||
if(isfull)
|
if(isfull == 1)
|
||||||
{
|
{
|
||||||
sf_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
|
sf_rtos_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH;
|
||||||
}
|
}
|
||||||
else{
|
else if(isfull == 0)
|
||||||
sf_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH;
|
{
|
||||||
|
sf_rtos_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
|
||||||
}
|
}
|
||||||
DBG_WRN("devid = %d, state = %d\n", devid, mounted_state);
|
DBG_WRN("11devid = %d, state = %d\n", devid, mounted_state);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SF_RtosStrgSetDcfHandle(UINT32 strg_id, UINT32 handle)
|
void SF_RtosStrgSetDcfHandle(UINT32 strg_id, UINT32 handle)
|
||||||
{
|
{
|
||||||
sf_mmc_dev[strg_id]->dcf_handle = handle;
|
sf_rtos_mmc_dev[strg_id]->dcf_handle = handle;
|
||||||
DBG_WRN("strg_id = %d, handle = %d\n", strg_id, handle);
|
DBG_WRN("strg_id = %d, handle = %d\n", strg_id, handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,34 +214,34 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
|
||||||
{
|
{
|
||||||
MMC_DEV_TYPE workable_dev = MMC_DEV_NO;
|
MMC_DEV_TYPE workable_dev = MMC_DEV_NO;
|
||||||
|
|
||||||
if((sf_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) &&
|
if((sf_rtos_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) &&
|
||||||
(sf_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED))
|
(sf_rtos_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED))
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_NO;
|
workable_dev = MMC_DEV_NO;
|
||||||
}
|
}
|
||||||
else if(sf_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
|
else if(sf_rtos_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
|
||||||
{
|
{
|
||||||
if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_EMMC;
|
workable_dev = MMC_DEV_EMMC;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON)
|
//if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON)
|
||||||
{
|
{
|
||||||
//workable_dev = MMC_DEV_EMMC;
|
//workable_dev = MMC_DEV_EMMC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(sf_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
|
else if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
|
||||||
{
|
{
|
||||||
if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
if(sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_SD;
|
workable_dev = MMC_DEV_SD;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON)
|
//if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON)
|
||||||
{
|
{
|
||||||
//workable_dev = MMC_DEV_SD;
|
//workable_dev = MMC_DEV_SD;
|
||||||
}
|
}
|
||||||
|
@ -247,42 +249,45 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH &&
|
if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH &&
|
||||||
sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_EMMC;
|
workable_dev = MMC_DEV_EMMC;
|
||||||
}
|
}
|
||||||
else if(sf_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
else if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_EMMC;
|
workable_dev = MMC_DEV_EMMC;
|
||||||
}
|
}
|
||||||
else if(sf_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
else if(sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_SD;
|
workable_dev = MMC_DEV_SD;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//if(sf_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON)
|
//if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON)
|
||||||
{
|
{
|
||||||
//workable_dev = MMC_DEV_EMMC;
|
//workable_dev = MMC_DEV_EMMC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DBG_WRN("dev_id = %d!!!\n", workable_dev);
|
DBG_WRN("dev_id = %d!!!\n", workable_dev);
|
||||||
for(int i = 0; i < 2; i++)
|
for(int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
DBG_WRN("mount:%d, space:%d\n",
|
sf_rtos_mmc_dev[i]->dev_type = workable_dev;
|
||||||
sf_mmc_dev[i]->moumted_state, sf_mmc_dev[i]->space_state);
|
DBG_WRN("mount:%d, space:%d\n", sf_rtos_mmc_dev[i]->moumted_state,
|
||||||
|
sf_rtos_mmc_dev[i]->space_state);
|
||||||
}
|
}
|
||||||
|
if(workable_dev == MMC_DEV_NO)
|
||||||
if(workable_dev != MMC_DEV_NO)
|
|
||||||
{
|
{
|
||||||
DBG_WRN("dcf_handle = %d\n", sf_mmc_dev[workable_dev]->dcf_handle);
|
return NULL;
|
||||||
return sf_mmc_dev[workable_dev];
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return NULL;
|
{
|
||||||
|
return sf_rtos_mmc_dev[workable_dev];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user