1.rtos下emmc修改

This commit is contained in:
payton 2023-12-20 19:24:21 +08:00
parent 7e4f40ccc0
commit dd14b586b3
7 changed files with 209 additions and 36 deletions

View File

@ -849,7 +849,7 @@
// 2. enable FS_DX_TYPE_DRIVE_B as DX_TYPE_CARD2 // 2. enable FS_DX_TYPE_DRIVE_B as DX_TYPE_CARD2
// 3. enable FS_MULTI_STRG_FUNC // 3. enable FS_MULTI_STRG_FUNC
// 4. NETWORK = NETWORK_NONE (Both uITRON and eCos) // 4. NETWORK = NETWORK_NONE (Both uITRON and eCos)
#define FS_MULTI_STRG_FUNC DISABLE #define FS_MULTI_STRG_FUNC ENABLE
//MULTI_DRIVE //MULTI_DRIVE
#if defined(_EMBMEM_EMMC_) && (FS_MULTI_STRG_FUNC==DISABLE) #if defined(_EMBMEM_EMMC_) && (FS_MULTI_STRG_FUNC==DISABLE)
#define FS_DX_TYPE_DRIVE_A USER_DX_TYPE_EMBMEM_FAT #define FS_DX_TYPE_DRIVE_A USER_DX_TYPE_EMBMEM_FAT

View File

@ -299,16 +299,16 @@ void System_OnStrgInit_FS(void)
Pool.addr = mempool_filesys; Pool.addr = mempool_filesys;
#if (FS_MULTI_STRG_FUNC == ENABLE) #if (FS_MULTI_STRG_FUNC == ENABLE)
MEM_RANGE Pool2; MEM_RANGE Pool2;
Pool.Size = POOL_SIZE_FS_BUFFER; Pool.size = POOL_SIZE_FILESYS;
GxStrg_SetConfigEx(0, FILE_CFG_BUF, (UINT32)&Pool); GxStrg_SetConfigEx(0, FILE_CFG_BUF, (UINT32)&Pool);
Pool2.Addr = Pool.Addr + POOL_SIZE_FS_BUFFER; Pool2.addr = Pool.addr + POOL_SIZE_FILESYS;
Pool2.Size = POOL_SIZE_FS_BUFFER; Pool2.size = POOL_SIZE_FILESYS;
GxStrg_SetConfigEx(1, FILE_CFG_BUF, (UINT32)&Pool2); GxStrg_SetConfigEx(1, FILE_CFG_BUF, (UINT32)&Pool2);
#if defined(_CPU2_LINUX_) && defined(_EMBMEM_EMMC_) #if defined(_CPU2_LINUX_) && defined(_EMBMEM_EMMC_)
// 3rd is for linux-pstore mounted by filesys // 3rd is for linux-pstore mounted by filesys
MEM_RANGE Pool3; MEM_RANGE Pool3;
Pool3.Addr = Pool2.Addr + POOL_SIZE_FS_BUFFER; Pool3.Addr = Pool2.addr + POOL_SIZE_FS_BUFFER;
Pool3.Size = POOL_SIZE_FS_BUFFER; Pool3.size = POOL_SIZE_FS_BUFFER;
GxStrg_SetConfigEx(PST_DEV_ID, FILE_CFG_BUF, (UINT32)&Pool3); GxStrg_SetConfigEx(PST_DEV_ID, FILE_CFG_BUF, (UINT32)&Pool3);
#endif #endif
#else #else
@ -592,22 +592,24 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
// Open DCF // Open DCF
dcfParm.Drive = (stg_id == 0) ? 'A' : 'B'; dcfParm.Drive = (stg_id == 0) ? 'A' : 'B';
#if (FS_MULTI_STRG_FUNC) #if (FS_MULTI_STRG_FUNC)
if (POOL_CNT_DCF_BUFFER !=2) { // if (POOL_CNT_DCF_BUFFER !=2) {
DBG_FATAL("POOL_CNT_DCF_BUFFER be 2 for FS_MULTI_STRG_FUNC.\r\n"); // DBG_FATAL("POOL_CNT_DCF_BUFFER be 2 for FS_MULTI_STRG_FUNC.\r\n");
} else { // } else {
switch(stg_id) { switch(stg_id) {
case 0: case 0:
dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)); // dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER));
dcfParm.WorkbuffAddr = mempool_dcf;
break; break;
case 1: case 1:
dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)) + POOL_SIZE_DCF_BUFFER; // dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)) + POOL_SIZE_DCF_BUFFER;
dcfParm.WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER;
break; break;
default: default:
DBG_ERR("unknown stg_id=%d\r\n", stg_id); DBG_ERR("unknown stg_id=%d\r\n", stg_id);
dcfParm.WorkbuffAddr = 0; dcfParm.WorkbuffAddr = 0;
break; break;
} }
} // }
#else #else
dcfParm.WorkbuffAddr = mempool_dcf;//dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)); dcfParm.WorkbuffAddr = mempool_dcf;//dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER));

View File

@ -25,5 +25,15 @@ void card_init(void)
sdio_setCallBack(SDIO_CALLBACK_CARD_DETECT, (SDIO_CALLBACK_HDL)card_det_insert); sdio_setCallBack(SDIO_CALLBACK_CARD_DETECT, (SDIO_CALLBACK_HDL)card_det_insert);
sdio_setCallBack(SDIO_CALLBACK_WRITE_PROTECT, (SDIO_CALLBACK_HDL)card_det_wp); sdio_setCallBack(SDIO_CALLBACK_WRITE_PROTECT, (SDIO_CALLBACK_HDL)card_det_wp);
pStrg->SetParam(STRG_SET_MEMORY_REGION, mempool_storage_sdio, POOL_SIZE_STORAGE_SDIO); pStrg->SetParam(STRG_SET_MEMORY_REGION, mempool_storage_sdio, POOL_SIZE_STORAGE_SDIO);
#if FS_MULTI_STRG_FUNC
pStrg = sdio2_getStorageObject(STRG_OBJ_FAT1);
sdio2_setCallBack(SDIO_CALLBACK_CARD_DETECT, (SDIO_CALLBACK_HDL)card_det_insert);
sdio2_setCallBack(SDIO_CALLBACK_WRITE_PROTECT, (SDIO_CALLBACK_HDL)card_det_wp);
pStrg->SetParam(STRG_SET_MEMORY_REGION, mempool_storage_sdio + POOL_SIZE_STORAGE_SDIO, POOL_SIZE_STORAGE_SDIO);
#endif
#endif #endif
} }

View File

@ -12,6 +12,7 @@
#include "sys_fastboot.h" #include "sys_fastboot.h"
#include "PrjCfg.h" #include "PrjCfg.h"
#include "DxHunting.h" #include "DxHunting.h"
#include <kwrap/debug.h>
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
#include "PrjInc.h" #include "PrjInc.h"
#include "wdt.h" #include "wdt.h"
@ -32,7 +33,7 @@ static void card_insert_job(void)
int ret; int ret;
FILE_TSK_INIT_PARAM Param = {0}; FILE_TSK_INIT_PARAM Param = {0};
FS_HANDLE StrgDXH; FS_HANDLE StrgDXH, StrgDXH2;
printf("filesys_init b\r\n"); printf("filesys_init b\r\n");
memset(&Param, 0, sizeof(FILE_TSK_INIT_PARAM)); memset(&Param, 0, sizeof(FILE_TSK_INIT_PARAM));
@ -42,6 +43,49 @@ static void card_insert_job(void)
StrgDXH = (FS_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1); StrgDXH = (FS_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1);
#endif #endif
#if FS_MULTI_STRG_FUNC
StrgDXH2 = (FS_HANDLE)sdio2_getStorageObject(STRG_OBJ_FAT1);
DBG_WRN("sdio2_getStorageObject\n");
{
UINT32 totoal_sectors = 0;
// UINT32 uiPhyAddr = 0;
// UINT32 uiPhySize = 0;
// unsigned long long partition_ofs= 0, partition_size = 0;
// unsigned long long usr_area_size = 0;
STORAGE_OBJ* pStrg = sdio2_getStorageObject(STRG_OBJ_FAT1);
// void *strg_mem = malloc(0x300);
// pStrg->SetParam(STRG_SET_MEMORY_REGION, (UINT32)strg_mem, 0x300);
pStrg->Open(); //for initial emmc speed up, should open first, and then set partition
pStrg->GetParam(STRG_GET_DEVICE_PHY_SECTORS, (UINT32)&totoal_sectors, 0);
if (totoal_sectors == 0) {
DBG_WRN("totoal_sectors couldn't be zero\n");
}
DBG_WRN("storage_partition_init: totoal_sectors = %d\r\n", totoal_sectors);
pStrg->SetParam(STRG_SET_PARTITION_SECTORS, 16, totoal_sectors - 16);
// pStrg->Close();
//set the FAT size
// ret = storage_get_partition_addr(&partition_ofs, &partition_size, PARTITION_PATH_ROOTFSL1);
// usr_area_size = (unsigned long long)totoal_sectors*(unsigned long long)_EMBMEM_BLK_SIZE_;
// uiPhyAddr = partition_ofs/_EMBMEM_BLK_SIZE_;
// uiPhySize = (usr_area_size - partition_ofs)/_EMBMEM_BLK_SIZE_;
// if (ret == 0) {
// pStrg = EMB_GETSTRGOBJ(STRG_OBJ_FW_FAT);
// pStrg->SetParam(STRG_SET_MEMORY_REGION, (UINT32)strg_mem, STRG_MEM_SIZE);
// pStrg->SetParam(STRG_SET_PARTITION_SECTORS, uiPhyAddr, uiPhySize);
// } else {
// DBG_ERR("Cat get the %s path info\r\n", PARTITION_PATH_ROOTFSL1);
// }
}
#endif
uiPoolAddr = mempool_filesys; uiPoolAddr = mempool_filesys;
Param.FSParam.WorkBuf = uiPoolAddr; Param.FSParam.WorkBuf = uiPoolAddr;
Param.FSParam.WorkBufSize = (POOL_SIZE_FILESYS); Param.FSParam.WorkBufSize = (POOL_SIZE_FILESYS);
@ -52,11 +96,11 @@ static void card_insert_job(void)
Param.FSParam.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0'; Param.FSParam.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0';
Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM; Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM;
if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) {
printf("FileSys_Init failed\r\n"); DBG_WRN("FileSys_Init failed\r\n");
} }
ret = FileSys_OpenEx('A', StrgDXH, &Param); ret = FileSys_OpenEx('A', StrgDXH, &Param);
if (FST_STA_OK != ret) { if (FST_STA_OK != ret) {
printf("FileSys_Open err %d\r\n", ret); DBG_WRN("FileSys_Open err %d\r\n", ret);
} }
// call the function to wait init finish // call the function to wait init finish
FileSys_WaitFinishEx('A'); FileSys_WaitFinishEx('A');
@ -64,7 +108,7 @@ static void card_insert_job(void)
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
if(TRUE == sf_check_card_full()) if(TRUE == sf_check_card_full())
{ {
printf("ERR card full\r\n"); DBG_WRN("ERR card full\r\n");
fastboot_set_done(BOOT_INIT_FILESYSOK); fastboot_set_done(BOOT_INIT_FILESYSOK);
} }
else else
@ -75,8 +119,31 @@ static void card_insert_job(void)
} }
#endif #endif
#if FS_MULTI_STRG_FUNC
uiPoolAddr = mempool_filesys + POOL_SIZE_FILESYS;
Param.FSParam.WorkBuf = uiPoolAddr;
Param.FSParam.WorkBufSize = (POOL_SIZE_FILESYS);
// support exFAT
Param.FSParam.bSupportExFAT = FALSE;
//Param.pDiskErrCB = (FileSys_CB)Card_InitCB;
strncpy(Param.FSParam.szMountPath, "/mnt/sd2", sizeof(Param.FSParam.szMountPath) - 1); //only used by FsLinux
Param.FSParam.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0';
Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM;
// if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) {
// printf("FileSys_Init failed\r\n");
// }
DBG_WRN("Open B:\n");
ret = FileSys_OpenEx('B', StrgDXH2, &Param);
if (FST_STA_OK != ret) {
printf("FileSys_Open err %d\r\n", ret);
}
// call the function to wait init finish
FileSys_WaitFinishEx('B');
// FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE);
#endif
//fastboot_set_done(BOOT_INIT_FILESYSOK); //fastboot_set_done(BOOT_INIT_FILESYSOK);
printf("filesys_init e\r\n"); DBG_WRN("filesys_init e\r\n");
} }
#if !defined(_EMBMEM_EMMC_) #if !defined(_EMBMEM_EMMC_)

View File

@ -60,7 +60,11 @@ void mempool_init(void)
UINT32 pa; UINT32 pa;
HD_RESULT ret; HD_RESULT ret;
#if FS_MULTI_STRG_FUNC
ret = vendor_common_mem_alloc_fixed_pool("sdio", &pa, (void **)&va, POOL_SIZE_STORAGE_SDIO * 2, DDR_ID0);
#else
ret = vendor_common_mem_alloc_fixed_pool("sdio", &pa, (void **)&va, POOL_SIZE_STORAGE_SDIO, DDR_ID0); ret = vendor_common_mem_alloc_fixed_pool("sdio", &pa, (void **)&va, POOL_SIZE_STORAGE_SDIO, DDR_ID0);
#endif
if (ret != HD_OK) { if (ret != HD_OK) {
return; return;
} }
@ -77,7 +81,11 @@ void mempool_init(void)
} }
mempool_storage_nor = (UINT32)va; mempool_storage_nor = (UINT32)va;
#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); ret = vendor_common_mem_alloc_fixed_pool("filesys", &pa, (void **)&va, POOL_SIZE_FILESYS, DDR_ID0);
#endif
if (ret != HD_OK) { if (ret != HD_OK) {
return; return;
} }
@ -215,11 +223,17 @@ void mempool_init(void)
mempool_usbcmd_va = (UINT32)va; mempool_usbcmd_va = (UINT32)va;
#endif #endif
#if (HUNTING_CAMERA_MODEL == ENABLE) #if (HUNTING_CAMERA_MODEL == ENABLE)
#if (FS_MULTI_STRG_FUNC)
ret = vendor_common_mem_alloc_fixed_pool("dcf", &pa, (void **)&va, POOL_SIZE_DCF_BUFFER * 2, DDR_ID0);
#else
ret = vendor_common_mem_alloc_fixed_pool("dcf", &pa, (void **)&va, POOL_SIZE_DCF_BUFFER, DDR_ID0); ret = vendor_common_mem_alloc_fixed_pool("dcf", &pa, (void **)&va, POOL_SIZE_DCF_BUFFER, DDR_ID0);
#endif
if (ret != HD_OK) { if (ret != HD_OK) {
return; return;
} }
mempool_dcf = (UINT32)va; mempool_dcf = (UINT32)va;
#endif #endif
} }

View File

@ -88,6 +88,7 @@ static CHAR g_photo_fast_write_file_Path[NMC_TOTALFILEPATH_MAX_LE
static INT32 g_photo_fast_id_mapping[PHOTO_CAP_ID_MAX] = {-1,-1}; static INT32 g_photo_fast_id_mapping[PHOTO_CAP_ID_MAX] = {-1,-1};
static PHOTO_FILENAME_CB *g_fpPhotoFastFileNameCB = NULL; static PHOTO_FILENAME_CB *g_fpPhotoFastFileNameCB = NULL;
static DCF_HANDLE g_dcf_hdl = 0; static DCF_HANDLE g_dcf_hdl = 0;
static DCF_HANDLE g_dcf_hdl2 = 0;
static HD_PATH_ID g_video_enc_path[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static HD_PATH_ID g_video_enc_path[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0};
static UINT32 g_bVideoEncPathStart[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static UINT32 g_bVideoEncPathStart[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0};
static HD_VIDEOENC_BUFINFO g_enc_buf_info[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static HD_VIDEOENC_BUFINFO g_enc_buf_info[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0};
@ -722,6 +723,31 @@ INT32 PhotoFast_FileNaming_Open(void)
DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME);
DCF_ScanObj(); DCF_ScanObj();
#if (FS_MULTI_STRG_FUNC)
{
DCF_OPEN_PARM dcfParm = {
.Drive = 'B',
.WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER,
.WorkbuffSize = POOL_SIZE_DCF_BUFFER,
};
g_dcf_hdl2 = DCF_Open(&dcfParm);
if(g_dcf_hdl2 < 0){
DBG_ERR("get dcf handle error!\n");
}
DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2);
// DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FOLDER, TRUE);
// DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE);
// DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV);
// DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO);
// DCF_SetDirFreeChars(DCF_DIR_NAME);
// DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME);
DCF_ScanObjEx(g_dcf_hdl2);
}
#endif
return 0; return 0;
} }
@ -734,6 +760,11 @@ INT32 PhotoFast_FileNaming_Close(void)
g_dcf_hdl = -1; g_dcf_hdl = -1;
} }
#if (FS_MULTI_STRG_FUNC)
DCF_Close(g_dcf_hdl2);
g_dcf_hdl2 = -1;
#endif
DCF_UnInstallID(); DCF_UnInstallID();
} }
@ -856,6 +887,11 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
INT32 rt; INT32 rt;
UINT32 Length; UINT32 Length;
CHAR FilePath[NMC_TOTALFILEPATH_MAX_LEN]; CHAR FilePath[NMC_TOTALFILEPATH_MAX_LEN];
#if FS_MULTI_STRG_FUNC
CHAR FilePath2[NMC_TOTALFILEPATH_MAX_LEN];
#endif
UINT32 fileType; UINT32 fileType;
UINT32 open_flag; UINT32 open_flag;
UINT32 nextFolderID = 0, nextFileID = 0; UINT32 nextFolderID = 0, nextFileID = 0;
@ -901,6 +937,27 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
DCF_AddDBfile(FilePath); DCF_AddDBfile(FilePath);
DBG_DUMP("%s added to DCF\r\n", FilePath); DBG_DUMP("%s added to DCF\r\n", FilePath);
} }
#if 0//FS_MULTI_STRG_FUNC
if (DCF_GetDBInfoEx(g_dcf_hdl2, DCF_INFO_IS_9999)) {
DBG_ERR("Exceed max dcf file!\r\n");
return FST_STA_NOFREE_SPACE;
}
else {
if (Fmt == HD_CODEC_TYPE_RAW){
fileType = DCF_FILE_TYPE_RAW;
}
else{
fileType = DCF_FILE_TYPE_JPG;
}
//DCF_GetNextIDEx(g_dcf_hdl2, &nextFolderID,&nextFileID);
DCF_MakeObjPathEx(g_dcf_hdl2, nextFolderID, nextFileID, fileType, FilePath2);
DCF_AddDBfileEx(g_dcf_hdl2, FilePath2);
DBG_DUMP("%s added to DCF2\r\n", FilePath2);
}
#endif
} }
else{ else{
strncpy(FilePath, Path, sizeof(FilePath)); strncpy(FilePath, Path, sizeof(FilePath));
@ -948,6 +1005,29 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
rt =FST_STA_ERROR; rt =FST_STA_ERROR;
} }
#if FS_MULTI_STRG_FUNC
DBG_WRN("write %s\n", FilePath2);
if ((fp = FileSys_OpenFile(FilePath2, open_flag)) != NULL) {
Length = Size;
rt = FileSys_WriteFile(fp, (UINT8 *)Addr, &Length, 0, NULL);
FileSys_FlushFile(fp);
FileSys_CloseFile(fp);
if (rt == FST_STA_OK) {
// DCF_AddDBfile(FilePath);
// DBG_DUMP("%s added to DCF\r\n", FilePath);
} else {
DBG_ERR("Addr=0x%x,Size=0x%x,Fmt=%d\r\n", Addr, Size, Fmt);
}
}else{
DBG_ERR("FileSys_OpenFile fail\r\n");
rt =FST_STA_ERROR;
}
#endif
return rt; return rt;
} }

View File

@ -153,10 +153,10 @@ ER AppInit_ModeUSBMSDC(void)
MSDCInfo.msdc_vendor_cb = NULL; MSDCInfo.msdc_vendor_cb = NULL;
//#NT#2016/12/20#Niven Cho -begin //#NT#2016/12/20#Niven Cho -begin
//#NT#MULTI_DRIVE //#NT#MULTI_DRIVE
#if (FS_MULTI_STRG_FUNC == ENABLE) // #if (FS_MULTI_STRG_FUNC == ENABLE)
char *pDxName2 = NULL; // char *pDxName2 = NULL;
DX_HANDLE pStrgDev2 = 0; // DX_HANDLE pStrgDev2 = 0;
#endif // #endif
pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A); pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A);
@ -178,21 +178,21 @@ ER AppInit_ModeUSBMSDC(void)
} }
DBG_DUMP("===>%s\r\n", pDxName); DBG_DUMP("===>%s\r\n", pDxName);
#if (FS_MULTI_STRG_FUNC == ENABLE) // #if (FS_MULTI_STRG_FUNC == ENABLE)
MSDCInfo.pStrgHandle[1] = pStrgDev2; // MSDCInfo.pStrgHandle[1] = pStrgDev2;
if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) { // if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) {
pDxName2 = NULL; // pDxName2 = NULL;
} // }
#endif // #endif
#if (FS_MULTI_STRG_FUNC == ENABLE) // #if (FS_MULTI_STRG_FUNC == ENABLE)
MSDCInfo.pStrgHandle[1] = pStrgDev2; // MSDCInfo.pStrgHandle[1] = pStrgDev2;
if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) { // if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) {
pDxName2 = NULL; // pDxName2 = NULL;
} // }
#endif // #endif
#if (FS_MULTI_STRG_FUNC == ENABLE) #if (FS_MULTI_STRG_FUNC == ENABLE)
MSDCInfo.msdc_storage_detCB[0] = (MSDC_StorageDet_CB)DrvCARD_DetStrgCard; MSDCInfo.msdc_storage_detCB[0] = (MSDC_StorageDet_CB)DrvCARD_DetStrgCard;
@ -280,7 +280,7 @@ INT32 MSDCExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
pLastStrgDev = GxStrg_GetDevice(0); pLastStrgDev = GxStrg_GetDevice(0);
if (pLastStrgDev == 0) { if (pLastStrgDev == 0) {
//PowerOn_CB() POWERON_CB_SXOPEN 沒有提早啟動File System //PowerOn_CB() POWERON_CB_SXOPEN <EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ұ<EFBFBD>File System
DBG_ERR("MSDC: Wait for FS start...\r\n"); DBG_ERR("MSDC: Wait for FS start...\r\n");
FileSys_WaitFinish(); FileSys_WaitFinish();