diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index 43b30e0e7..5d21b03ee 100644 --- a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -833,17 +833,21 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) #endif dcfParm.WorkbuffSize = POOL_SIZE_DCF_BUFFER; - DCF_Open(&dcfParm); + + UINT32 handle = DCF_Open(&dcfParm); + + DBG_DUMP("Handle = %lu, drive = %c\n", handle, dcfParm.Drive); // DCF_ScanObj(); } #endif - - if (GxStrg_GetDeviceCtrl(stg_id, CARD_READONLY)) { - System_SetState(SYS_STATE_CARD, CARD_LOCKED); - DBG_IND("Card Locked\r\n"); - } else { - System_SetState(SYS_STATE_CARD, CARD_INSERTED); - DBG_IND("Card inserted\r\n"); + if(stg_id == 0){ + if (GxStrg_GetDeviceCtrl(stg_id, CARD_READONLY)) { + System_SetState(SYS_STATE_CARD, CARD_LOCKED); + DBG_IND("Card Locked\r\n"); + } else { + System_SetState(SYS_STATE_CARD, CARD_INSERTED); + DBG_IND("Card inserted\r\n"); + } } return NVTEVT_CONSUME; } @@ -930,6 +934,7 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) UINT32 result = paramArray[1]; #if HUNTING_CAMERA_MCU == ENABLE SF_MESSAGE_BUF_S stMessageBuf = {0}; + UINT32 strg_id = paramArray[0]; #endif #if defined(__FREERTOS) @@ -969,25 +974,25 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) result = FileSys_FormatDisk(pStrgDevCur, TRUE); } #endif - -#if ( !defined(_EMBMEM_SPI_NOR_) && (FS_MULTI_STRG_FUNC == ENABLE)) - UINT32 stg_id = paramArray[0]; - - if (stg_id != 0) { // stg_id=1 is interal storage FAT - return NVTEVT_CONSUME; - } -#endif } + DBG_WRN("stg_id = %lu\n", paramArray[0]); + switch (result) { case FST_STA_OK: - printf("read only = %llu\n", FileSys_GetDiskInfoEx('A', FST_INFO_IS_READ_ONLY)); - if(FileSys_GetDiskInfoEx('A', FST_INFO_IS_READ_ONLY)){ - system("mount -t vfat /dev/mmcblk0 /mnt/sd/ -o remount,rw"); - } + + if(strg_id == 0){ + printf("read only = %llu\n", FileSys_GetDiskInfoEx('A', FST_INFO_IS_READ_ONLY)); + if(FileSys_GetDiskInfoEx('A', FST_INFO_IS_READ_ONLY)){ + system("mount -t vfat /dev/mmcblk0 /mnt/sd/ -o remount,rw"); + } + } + //#if (USE_DCF == ENABLE) // if (!UI_GetData(FL_IsCopyToCarding)) { - DCF_ScanObj(); + DBG_DUMP("DCF scan\n"); + DCF_ScanObjEx(0); /* sd card: strg_id = 0, dcf handle = 1 */ + DCF_ScanObjEx(1); // } //#endif //FileSys_GetDiskInfo(FST_INFO_DISK_SIZE); @@ -1087,16 +1092,20 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) #endif break; case FST_STA_DISK_UNFORMAT: - System_SetState(SYS_STATE_FS, FS_UNFORMATTED); + if(strg_id == 0) + System_SetState(SYS_STATE_FS, FS_UNFORMATTED); break; case FST_STA_DISK_UNKNOWN_FORMAT: - System_SetState(SYS_STATE_FS, FS_UNKNOWN_FORMAT); + if(strg_id == 0) + System_SetState(SYS_STATE_FS, FS_UNKNOWN_FORMAT); break; case FST_STA_CARD_ERR: - System_SetState(SYS_STATE_FS, FS_DISK_ERROR); + if(strg_id == 0) + System_SetState(SYS_STATE_FS, FS_DISK_ERROR); break; default: - System_SetState(SYS_STATE_FS, FS_DISK_ERROR); + if(strg_id == 0) + System_SetState(SYS_STATE_FS, FS_DISK_ERROR); break; } diff --git a/code/application/source/cardv/SrcCode/System/sys_mempool.c b/code/application/source/cardv/SrcCode/System/sys_mempool.c index b70bbf66f..6550a3cc9 100755 --- a/code/application/source/cardv/SrcCode/System/sys_mempool.c +++ b/code/application/source/cardv/SrcCode/System/sys_mempool.c @@ -64,11 +64,18 @@ void mempool_init(void) } mempool_storage_nand = (UINT32)va; #endif + +#if (FS_MULTI_STRG_FUNC) + ret = vendor_common_mem_alloc_fixed_pool("filesys", &pa, (void **)&va, POOL_SIZE_FILESYS * 2, DDR_ID0); +#else ret = vendor_common_mem_alloc_fixed_pool("filesys", &pa, (void **)&va, POOL_SIZE_FILESYS, DDR_ID0); +#endif + if (ret != HD_OK) { return; } mempool_filesys = (UINT32)va; + ret = vendor_common_mem_alloc_fixed_pool("gxgfx_temp", &pa, (void **)&va, POOL_SIZE_GFX_TEMP, DDR_ID0); if (ret != HD_OK) { return; diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c index 3e402f9fa..6a4899e3f 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -1247,16 +1247,17 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) #endif #elif USE_DCF + UINT32 dcf_path = 1; /* 0:emmc 1:sd */ UINT32 nextFolderID = 0, nextFileID = 0; - if (DCF_GetDBInfo(DCF_INFO_IS_9999)) { + if (DCF_GetDBInfoEx(dcf_path, DCF_INFO_IS_9999)) { DBG_ERR("Exceed max dcf file!\r\n"); pFileName[0] = '\0'; } else { - DCF_GetNextID(&nextFolderID,&nextFileID); - DCF_MakeObjPath(nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); - DCF_AddDBfile(pFileName); - DBG_DUMP("%s added to DCF\r\n", pFileName); + DCF_GetNextIDEx(dcf_path, &nextFolderID,&nextFileID); + DCF_MakeObjPathEx(dcf_path, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); + DCF_AddDBfileEx(dcf_path, pFileName); + DBG_DUMP("%s added to DCF Path%lu\r\n", pFileName, dcf_path); #if HUNTING_CAMERA_MCU == ENABLE char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'}; sprintf(tmp, "S%03d%04d.JPG", nextFolderID, nextFileID); @@ -1317,13 +1318,14 @@ static void MovieExe_RawEncodeFileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) #elif USE_DCF UINT32 nextFolderID = 0, nextFileID = 0; + UINT32 dcf_path = 1; - if (DCF_GetDBInfo(DCF_INFO_IS_9999)) { + if (DCF_GetDBInfoEx(dcf_path, DCF_INFO_IS_9999)) { DBG_ERR("Exceed max dcf file!\r\n"); pFileName[0] = '\0'; } else { - DCF_GetNextID(&nextFolderID,&nextFileID); - DCF_MakeObjPath(nextFolderID, nextFileID, DCF_FILE_TYPE_JPG, pFileName); + DCF_GetNextIDEx(dcf_path, &nextFolderID,&nextFileID); + DCF_MakeObjPathEx(dcf_path, nextFolderID, nextFileID, DCF_FILE_TYPE_JPG, pFileName); } #endif diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index 524d5921e..4dd80a36a 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -6185,10 +6185,12 @@ INT32 PhotoExe_Preview_SliceEncode(VControl *pCtrl, UINT32 paramNum, UINT32 *par DBG_ERR("primary buffer overflow during combine jpg!\r\n"); } + UINT32 dcf_path = 1; /* 0:emmc , 1:sd */ + FstStatus.Status = ImageApp_Photo_WriteCB( dst_jpg_file.addr, dst_jpg_file.size, - HD_CODEC_TYPE_JPEG, 0); + HD_CODEC_TYPE_JPEG, dcf_path); { char* file_path = ImageApp_Photo_GetLastWriteFilePath(); @@ -6781,10 +6783,12 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data) extern INT32 ImageApp_Photo_WriteCB(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId); IMG_CAP_FST_INFO FstStatus = {FST_STA_OK}; + UINT32 dcf_path = 1; /* 0:emmc 1:sd */ + FstStatus.Status = ImageApp_Photo_WriteCB( (UINT32)queue_ele_in->jpg_combined_addr, queue_ele_in->jpg_combined_size, - HD_CODEC_TYPE_JPEG, 0); + HD_CODEC_TYPE_JPEG, dcf_path); { char* file_path = ImageApp_Photo_GetLastWriteFilePath(); diff --git a/code/lib/source/ImageApp/Photo/libimageapp_photo.a b/code/lib/source/ImageApp/Photo/libimageapp_photo.a index 479f299bb..c290a77a9 100644 Binary files a/code/lib/source/ImageApp/Photo/libimageapp_photo.a and b/code/lib/source/ImageApp/Photo/libimageapp_photo.a differ diff --git a/code/lib/source/ImageApp/Photo/libimageapp_photo.so b/code/lib/source/ImageApp/Photo/libimageapp_photo.so index 8adb2ff3c..3ee8cb15a 100755 Binary files a/code/lib/source/ImageApp/Photo/libimageapp_photo.so and b/code/lib/source/ImageApp/Photo/libimageapp_photo.so differ