Merge branch 'Branch_S550_Fast_Emmc' of gitlab.sifar.tech:linux-em-group/s530-ntk into Branch_S550_Fast_Emmc

This commit is contained in:
payton 2023-12-29 16:46:33 +08:00
commit 5a26873ecb
11 changed files with 95 additions and 22 deletions

View File

@ -63,6 +63,7 @@ void SF_StrgInit(void)
sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_ENOUGH; sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
sf_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_OFF; sf_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_OFF;
} }
pMMCDev = (SF_ST_MMC_DEV *)malloc(sizeof(SF_ST_MMC_DEV));
} }
void SF_StrgUnInit(void) void SF_StrgUnInit(void)
@ -74,6 +75,8 @@ void SF_StrgUnInit(void)
sf_mmc_dev[i] = NULL; sf_mmc_dev[i] = NULL;
} }
} }
free(pMMCDev);
pMMCDev = NULL;
} }
void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle) void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle)
@ -86,7 +89,6 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev)
UINT64 diskFree = 0; UINT64 diskFree = 0;
UINT32 ret = 0; UINT32 ret = 0;
return 0;
/*check disk free size*/ /*check disk free size*/
if(mmc_dev == MMC_DEV_SD) if(mmc_dev == MMC_DEV_SD)
{ {
@ -313,10 +315,12 @@ SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void)
if(workable_dev == MMC_DEV_NO) if(workable_dev == MMC_DEV_NO)
{ {
MLOGD("Strg Check, No dev can use\n");
return NULL; return NULL;
} }
else else
{ {
MLOGD("Strg Check, workable_dev = %d\n", workable_dev);
return sf_mmc_dev[workable_dev]; return sf_mmc_dev[workable_dev];
} }
} }
@ -326,9 +330,9 @@ static void* mmc_monitoring_thread(void *arg)
while(MMCMonitorTskCfg.IsRun) while(MMCMonitorTskCfg.IsRun)
{ {
#if USE_MMC_DEV_CHECK #if USE_MMC_DEV_CHECK
SF_SetMMCDev(SF_StrgCheckWorkableDev()); pMMCDev = SF_StrgCheckWorkableDev();
#endif #endif
sf_sleep_ms(500); sf_sleep_ms(1000);
} }
return NULL; return NULL;
} }
@ -341,6 +345,8 @@ int sf_mmc_dev_check_start(void)
MLOGD("thread sf_mmc_monitoring_start creat fail!\n"); MLOGD("thread sf_mmc_monitoring_start creat fail!\n");
return ret; return ret;
} }
MMCMonitorTskCfg.IsRun = 1;
MLOGD("mmc_dev check create success!\n");
return 0; return 0;
} }

View File

@ -32,7 +32,7 @@
#define EMMC_DEVICE_NAME "/dev/mmcblk1p1" #define EMMC_DEVICE_NAME "/dev/mmcblk1p1"
#define EMMC_MOUNT_ROOT "/mnt/sd2" #define EMMC_MOUNT_ROOT "/mnt/sd2"
#define USE_MMC_DEV_CHECK (1) #define USE_MMC_DEV_CHECK (0)
typedef enum typedef enum
{ {

View File

@ -447,7 +447,9 @@ int NvtMain(void)
printf("create cardv message successs!!!!\n"); printf("create cardv message successs!!!!\n");
} }
sf_cardv_message_thread_init(); sf_cardv_message_thread_init();
#if USE_MMC_DEV_CHECK
sf_mmc_dev_check_start();
#endif
SF_MESSAGE_BUF_S stMessageBuf = {0}; SF_MESSAGE_BUF_S stMessageBuf = {0};
/*if(!sf_gpio_get_status(GPIO_KEY_TEST)){ /*if(!sf_gpio_get_status(GPIO_KEY_TEST)){
@ -476,8 +478,6 @@ int NvtMain(void)
sf_led_init(); sf_led_init();
#endif #endif
sf_sd_exist_reg_cb(DrvCARD_DetStrgCard); sf_sd_exist_reg_cb(DrvCARD_DetStrgCard);
sf_mmc_dev_check_start();
#endif #endif
System_WaitForPowerOffStart(); // Wait for shutdown cmd System_WaitForPowerOffStart(); // Wait for shutdown cmd

View File

@ -38,9 +38,10 @@
#define __DBGFLT__ "*" //*=All, [mark]=CustomClass #define __DBGFLT__ "*" //*=All, [mark]=CustomClass
#include <kwrap/debug.h> #include <kwrap/debug.h>
#include "SF_SysStrgMng.h" #include "SF_SysStrgMng.h"
#if USE_MMC_DEV_CHECK
SF_ST_MMC_DEV *mmc_dev = NULL; SF_ST_MMC_DEV *mmc_dev = NULL;
#endif
void UIStorageCheck_AllSize(UINT64 *uiTotal, UINT64 *uiRemain) void UIStorageCheck_AllSize(UINT64 *uiTotal, UINT64 *uiRemain)
{ {
(*uiTotal) = FileSys_GetDiskInfo(FST_INFO_DISK_SIZE); (*uiTotal) = FileSys_GetDiskInfo(FST_INFO_DISK_SIZE);
@ -257,9 +258,11 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
UINT32 useFileDB = 0; UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB); useFileDB = UI_GetData(FL_IsUseFileDB);
mmc_dev = SF_GetMMCDev();
DBG_IND("UI_StorageCheck: Check item = 0x%x\r\n", uiCheckItem); DBG_IND("UI_StorageCheck: Check item = 0x%x\r\n", uiCheckItem);
#if USE_MMC_DEV_CHECK #if USE_MMC_DEV_CHECK
mmc_dev = SF_GetMMCDev();
if(mmc_dev == NULL) if(mmc_dev == NULL)
{ {
DBG_ERR("No MMC_Dev Can use!\n"); DBG_ERR("No MMC_Dev Can use!\n");

View File

@ -63,8 +63,9 @@ static void card_insert_job(void)
// call the function to wait init finish // call the function to wait init finish
FileSys_WaitFinishEx('A'); FileSys_WaitFinishEx('A');
FileSys_SetParamEx('A', FST_PARM_UPDATE_FSINFO , TRUE); FileSys_SetParamEx('A', FST_PARM_UPDATE_FSINFO , TRUE);
#if USE_RTOS_MMC_CHECK
SF_RtosStrgRegister(0, ret); SF_RtosStrgRegister(0, ret);
#endif
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
if(TRUE == sf_check_card_full()) if(TRUE == sf_check_card_full())
{ {
@ -122,7 +123,9 @@ static void card_insert_job2(void)
FileSys_WaitFinishEx('B'); FileSys_WaitFinishEx('B');
FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE); FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE);
#if USE_RTOS_MMC_CHECK
SF_RtosStrgRegister(1, ret); SF_RtosStrgRegister(1, ret);
#endif
fastboot_set_done(BOOT_INIT_FILESYSOK_2); fastboot_set_done(BOOT_INIT_FILESYSOK_2);
printf("filesys2_init e\r\n"); printf("filesys2_init e\r\n");
@ -143,7 +146,9 @@ static void sys_detect_card_task(void)
#if defined(_EMBMEM_EMMC_) #if defined(_EMBMEM_EMMC_)
THREAD_ENTRY(); THREAD_ENTRY();
#if USE_RTOS_MMC_CHECK
SF_RtosStrgInit(); SF_RtosStrgInit();
#endif
card_insert_job(); card_insert_job();
THREAD_RETURN(0); THREAD_RETURN(0);
@ -176,7 +181,9 @@ static void sys_detect_card_task(void)
vTaskDelay(pdMS_TO_TICKS(1000)); vTaskDelay(pdMS_TO_TICKS(1000));
} }
#if USE_RTOS_MMC_CHECK
SF_RtosStrgUnInit(); SF_RtosStrgUnInit();
#endif
THREAD_RETURN(0); THREAD_RETURN(0);
#endif #endif
} }

View File

@ -1172,6 +1172,7 @@ 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
#if USE_RTOS_MMC_CHECK
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0) if(mmc_dev->dcf_handle < 0)
{ {
@ -1188,7 +1189,9 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3
snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */ snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */
} }
} }
#else
snprintf(tmp, sizeof(tmp), "%c%s%s", 'A', MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */
#endif
#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");
@ -1301,7 +1304,9 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
if(TRUE != sf_is_card_full()) if(TRUE != sf_is_card_full())
#endif #endif
{ {
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); #if USE_RTOS_MMC_CHECK
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl);
#endif
fastboot_set_done(BOOT_INIT_FILENAMINGOK); fastboot_set_done(BOOT_INIT_FILENAMINGOK);
} }
} }
@ -1342,7 +1347,9 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg)
if(TRUE != sf_is_card_full()) if(TRUE != sf_is_card_full())
#endif #endif
{ {
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); #if USE_RTOS_MMC_CHECK
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl2);
#endif
fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); fastboot_set_done(BOOT_INIT_FILENAMINGOK_2);
} }
#endif #endif

View File

@ -624,16 +624,20 @@ UINT32 PhotoExe_GetFreePicNum(void)
UINT32 CaptureSize; UINT32 CaptureSize;
UINT32 size; UINT32 size;
#if USE_RTOS_MMC_CHECK
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0) if(mmc_dev->dcf_handle < 0)
{ {
DBG_ERR("No MMC_Dev Can use!\n"); DBG_ERR("No MMC_Dev Can use!\n");
return FALSE; return FALSE;
} }
#endif
#if (FILESIZE_ALIGN_FUNC) #if (FILESIZE_ALIGN_FUNC)
reserveSize += FS_ALIGN_RESERVED_SIZE; reserveSize += FS_ALIGN_RESERVED_SIZE;
#endif #endif
#if USE_RTOS_MMC_CHECK
if(mmc_dev->dev_type == MMC_DEV_SD) if(mmc_dev->dev_type == MMC_DEV_SD)
{ {
uiFreeSpace = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); uiFreeSpace = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE);
@ -642,7 +646,9 @@ UINT32 PhotoExe_GetFreePicNum(void)
{ {
uiFreeSpace = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE); uiFreeSpace = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE);
} }
#else
uiFreeSpace = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE);
#endif
DBG_IND("[cap]Free Space = %d KB\r\n", uiFreeSpace / 1024); DBG_IND("[cap]Free Space = %d KB\r\n", uiFreeSpace / 1024);
size = UI_GetData(FL_PHOTO_SIZE); size = UI_GetData(FL_PHOTO_SIZE);

View File

@ -58,12 +58,15 @@ void UIStorageCheck_ResetFileReachMax(void)
static BOOL check_CurrDir_writable(void) static BOOL check_CurrDir_writable(void)
{ {
#if USE_RTOS_MMC_CHECK
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0) if(mmc_dev->dcf_handle < 0)
{ {
DBG_ERR("No MMC_Dev Can use!\n"); DBG_ERR("No MMC_Dev Can use!\n");
return FALSE; return FALSE;
} }
#endif
UINT32 useFileDB = 0; UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB); useFileDB = UI_GetData(FL_IsUseFileDB);
@ -73,10 +76,15 @@ static BOOL check_CurrDir_writable(void)
#if (USE_DCF == ENABLE) #if (USE_DCF == ENABLE)
UINT32 CurrDirID; UINT32 CurrDirID;
SDCFDIRINFO dirinfo = {0}; SDCFDIRINFO dirinfo = {0};
#if USE_RTOS_MMC_CHECK
CurrDirID = DCF_GetDBInfoEx(mmc_dev->dcf_handle, DCF_INFO_CUR_DIR_ID); CurrDirID = DCF_GetDBInfoEx(mmc_dev->dcf_handle, DCF_INFO_CUR_DIR_ID);
if (CurrDirID) { if (CurrDirID) {
if (DCF_GetDirInfoEx(mmc_dev->dcf_handle, CurrDirID, &dirinfo)) { if (DCF_GetDirInfoEx(mmc_dev->dcf_handle, CurrDirID, &dirinfo)) {
#else
CurrDirID = DCF_GetDBInfo(DCF_INFO_CUR_DIR_ID);
if (CurrDirID) {
if (DCF_GetDirInfo(CurrDirID, &dirinfo)) {
#endif
if (M_IsReadOnly(dirinfo.ucAttrib)) { if (M_IsReadOnly(dirinfo.ucAttrib)) {
DBG_IND("DCF folder %d is READONLY.\r\n", CurrDirID); DBG_IND("DCF folder %d is READONLY.\r\n", CurrDirID);
return FALSE; return FALSE;
@ -100,13 +108,15 @@ static BOOL check_CurrDir_writable(void)
BOOL UIStorageCheck_DCIMWritable(void) BOOL UIStorageCheck_DCIMWritable(void)
{ {
#if USE_RTOS_MMC_CHECK
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0) if(mmc_dev->dcf_handle < 0)
{ {
DBG_ERR("No MMC_Dev Can use!\n"); DBG_ERR("No MMC_Dev Can use!\n");
return FALSE; return FALSE;
} }
#endif
UINT32 useFileDB = 0; UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB); useFileDB = UI_GetData(FL_IsUseFileDB);
if (useFileDB) { if (useFileDB) {
@ -115,6 +125,7 @@ BOOL UIStorageCheck_DCIMWritable(void)
INT32 uiStatus = 0; INT32 uiStatus = 0;
UINT8 ucAttrib = 0; UINT8 ucAttrib = 0;
BOOL ret = FALSE; BOOL ret = FALSE;
#if USE_RTOS_MMC_CHECK
if(mmc_dev->dev_type == MMC_DEV_SD) if(mmc_dev->dev_type == MMC_DEV_SD)
{ {
uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib); uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib);
@ -123,6 +134,9 @@ BOOL UIStorageCheck_DCIMWritable(void)
{ {
uiStatus = FileSys_GetAttrib("B:\\DCIM", &ucAttrib); uiStatus = FileSys_GetAttrib("B:\\DCIM", &ucAttrib);
} }
#else
uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib);
#endif
if (uiStatus == FST_STA_OK) { if (uiStatus == FST_STA_OK) {
if (ucAttrib & FS_ATTRIB_DIRECTORY) { if (ucAttrib & FS_ATTRIB_DIRECTORY) {
@ -161,8 +175,11 @@ static BOOL UIStrgCheckFolderFull(DCF_HANDLE DcfHandle)
return TRUE; return TRUE;
} }
bIsFileReachMax = FALSE; bIsFileReachMax = FALSE;
#if USE_RTOS_MMC_CHECK
ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId); ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId);
#else
ret = DCF_GetNextID(&DCF_DirId, &DCF_FileId);
#endif
if (ret && DCF_DirId == 0 && DCF_FileId == 0) { if (ret && DCF_DirId == 0 && DCF_FileId == 0) {
bIsFileReachMax = TRUE; bIsFileReachMax = TRUE;
DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId); DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId);
@ -199,6 +216,8 @@ static BOOL UIStrgCheckFull(UINT32 *pFreeCount)
static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id) static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
{ {
#if USE_RTOS_MMC_CHECK
if(dev_id == MMC_DEV_SD) if(dev_id == MMC_DEV_SD)
{ {
FileSys_WaitFinishEx('A'); FileSys_WaitFinishEx('A');
@ -207,7 +226,9 @@ static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
{ {
FileSys_WaitFinishEx('B'); FileSys_WaitFinishEx('B');
} }
#else
FileSys_WaitFinishEx('A');
#endif
if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR
|| System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT || System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT
|| System_GetState(SYS_STATE_FS) == FS_UNFORMATTED || System_GetState(SYS_STATE_FS) == FS_UNFORMATTED
@ -226,13 +247,15 @@ static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
{ {
#if USE_RTOS_MMC_CHECK
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0) if(mmc_dev->dcf_handle < 0)
{ {
DBG_ERR("No MMC_Dev Can use!\n"); DBG_ERR("No MMC_Dev Can use!\n");
return FALSE; return FALSE;
} }
#endif
UINT32 useFileDB = 0; UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB); useFileDB = UI_GetData(FL_IsUseFileDB);
@ -243,7 +266,11 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
if (useFileDB) { if (useFileDB) {
return FALSE; return FALSE;
} else { } else {
#if USE_RTOS_MMC_CHECK
UIStrgCheckFolderFull(mmc_dev->dcf_handle); UIStrgCheckFolderFull(mmc_dev->dcf_handle);
#else
UIStrgCheckFolderFull(0);
#endif
} }
break; break;
case STORAGE_CHECK_FULL: case STORAGE_CHECK_FULL:
@ -258,7 +285,12 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
} }
break; break;
case STORAGE_CHECK_ERROR: case STORAGE_CHECK_ERROR:
UIStrgCheckErr(mmc_dev->dev_type);
#if USE_RTOS_MMC_CHECK
UIStrgCheckErr(mmc_dev->dev_type);
#else
UIStrgCheckErr(0);
#endif
break; break;
case STORAGE_CHECK_DCIM_READONLY: case STORAGE_CHECK_DCIM_READONLY:
if ((UIStorageCheck_DCIMWritable() == FALSE) if ((UIStorageCheck_DCIMWritable() == FALSE)

View File

@ -747,7 +747,9 @@ INT32 PhotoFast_FileNaming_Open(void)
} }
DCF_ScanObjEx(g_dcf_hdl); DCF_ScanObjEx(g_dcf_hdl);
#if USE_RTOS_MMC_CHECK
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
#endif
} }
else{ else{
DBG_WRN("dcf handle1 is already opened\n"); DBG_WRN("dcf handle1 is already opened\n");
@ -777,7 +779,9 @@ INT32 PhotoFast_FileNaming_Open2(void)
DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2); DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2);
DCF_ScanObjEx(g_dcf_hdl2); DCF_ScanObjEx(g_dcf_hdl2);
#if USE_RTOS_MMC_CHECK
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
#endif
} }
else{ else{
DBG_WRN("dcf handle2 is already opened\n"); DBG_WRN("dcf handle2 is already opened\n");
@ -806,9 +810,11 @@ INT32 PhotoFast_FileNaming_Close(void)
DCF_UnInstallID(); DCF_UnInstallID();
} }
#if USE_RTOS_MMC_CHECK
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
#endif
return 0; return 0;
} }

View File

@ -2389,6 +2389,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
#endif #endif
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
#if USE_RTOS_MMC_CHECK
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0) if(mmc_dev->dcf_handle < 0)
{ {
@ -2405,6 +2406,9 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */ snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */
} }
} }
#else
snprintf(tmp, sizeof(tmp), "%c%s%s", 'A', PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */
#endif
#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 */

View File

@ -22,6 +22,8 @@
#define MMC_DEV_MAX_NUM (2) #define MMC_DEV_MAX_NUM (2)
#define USE_RTOS_MMC_CHECK (0)
typedef enum typedef enum
{ {
MMC_DEV_SD = 0, MMC_DEV_SD = 0,