增加USE_MMC_DEV_CHECK宏开关
This commit is contained in:
parent
e6138b8e55
commit
924dc666e9
|
@ -32,6 +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 (0)
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
|
|
|
@ -178,6 +178,7 @@ void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2)
|
||||||
stMessageBuf.cmdId = CMD_SD;
|
stMessageBuf.cmdId = CMD_SD;
|
||||||
sf_com_message_send_to_app(&stMessageBuf);
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
printf("strg_cb send MOUNT! dev_id = %d\n", param1);
|
printf("strg_cb send MOUNT! dev_id = %d\n", param1);
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
SF_StrgRegister(&stMessageBuf);
|
SF_StrgRegister(&stMessageBuf);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -348,9 +348,9 @@ void System_OnStrgInit_FS(void)
|
||||||
GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_BUF, (UINT32)&Pool);
|
GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_BUF, (UINT32)&Pool);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
SF_StrgInit();// 初始化sf_mmc设备Obj
|
SF_StrgInit();// 初始化sf_mmc设备Obj
|
||||||
|
#endif
|
||||||
#if !defined(__FREERTOS)
|
#if !defined(__FREERTOS)
|
||||||
GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_FS_TYPE, FileSys_GetOPS_Linux()); //for FILE_CFG_FS_TYPE, DevID is don't care
|
GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_FS_TYPE, FileSys_GetOPS_Linux()); //for FILE_CFG_FS_TYPE, DevID is don't care
|
||||||
|
|
||||||
|
@ -530,8 +530,9 @@ void System_OnStrgExit_FS(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
SF_StrgUnInit();// 反初始化sf_mmc设备Obj
|
SF_StrgUnInit();// 反初始化sf_mmc设备Obj
|
||||||
|
#endif
|
||||||
// unmount file system
|
// unmount file system
|
||||||
GxStrg_CloseDevice(0);
|
GxStrg_CloseDevice(0);
|
||||||
#if (FS_MULTI_STRG_FUNC)
|
#if (FS_MULTI_STRG_FUNC)
|
||||||
|
@ -760,6 +761,7 @@ INT32 System_Set_Storage_Act_Drive(char drive)
|
||||||
|
|
||||||
DCF_HANDLE System_Get_DCF_Handle(void)
|
DCF_HANDLE System_Get_DCF_Handle(void)
|
||||||
{
|
{
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev->dcf_handle < 0)
|
||||||
{
|
{
|
||||||
|
@ -768,6 +770,9 @@ DCF_HANDLE System_Get_DCF_Handle(void)
|
||||||
}
|
}
|
||||||
DBG_WRN("DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
|
DBG_WRN("DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
|
||||||
return mmc_dev->dcf_handle;
|
return mmc_dev->dcf_handle;
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle)
|
CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle)
|
||||||
|
@ -913,7 +918,9 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
DBG_WRN("emmc act\n");
|
DBG_WRN("emmc act\n");
|
||||||
System_Set_Storage_Act_Drive(g_strg_mapping_table[strg_id].drive);
|
System_Set_Storage_Act_Drive(g_strg_mapping_table[strg_id].drive);
|
||||||
}
|
}
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
SF_StrgSetDcfHandle(strg_id, g_strg_mapping_table[strg_id].dcf_hdl); //获取mmc设备dcf_handle
|
SF_StrgSetDcfHandle(strg_id, g_strg_mapping_table[strg_id].dcf_hdl); //获取mmc设备dcf_handle
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1117,7 +1124,9 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
stMessageBuf.arg3 = FST_STA_OK;
|
stMessageBuf.arg3 = FST_STA_OK;
|
||||||
stMessageBuf.cmdId = CMD_SD;
|
stMessageBuf.cmdId = CMD_SD;
|
||||||
sf_com_message_send_to_app(&stMessageBuf);
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
SF_StrgRegister(&stMessageBuf);
|
SF_StrgRegister(&stMessageBuf);
|
||||||
|
#endif
|
||||||
printf("System_OnStrgAttach send MOUNT! dev_id = %d\n", strg_id);
|
printf("System_OnStrgAttach send MOUNT! dev_id = %d\n", strg_id);
|
||||||
Ux_PostEvent(NVTEVT_STRG_MOUNT_OK, 0);
|
Ux_PostEvent(NVTEVT_STRG_MOUNT_OK, 0);
|
||||||
}
|
}
|
||||||
|
@ -1212,7 +1221,9 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
stMessageBuf.arg2 = strg_id;
|
stMessageBuf.arg2 = strg_id;
|
||||||
stMessageBuf.cmdId = CMD_SD;
|
stMessageBuf.cmdId = CMD_SD;
|
||||||
sf_com_message_send_to_app(&stMessageBuf);
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
SF_StrgRegister(&stMessageBuf);
|
SF_StrgRegister(&stMessageBuf);
|
||||||
|
#endif
|
||||||
printf("System_OnStrgAttach send UNMOUNT! dev_id = %d\n", strg_id);
|
printf("System_OnStrgAttach send UNMOUNT! dev_id = %d\n", strg_id);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -699,6 +699,7 @@ UINT32 PhotoExe_GetFreePicNum(void)
|
||||||
UINT32 reserveSize = 0x1e00000; // 30MB
|
UINT32 reserveSize = 0x1e00000; // 30MB
|
||||||
UINT32 CaptureSize;
|
UINT32 CaptureSize;
|
||||||
UINT32 size;
|
UINT32 size;
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
|
|
||||||
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
@ -706,10 +707,14 @@ UINT32 PhotoExe_GetFreePicNum(void)
|
||||||
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
|
||||||
|
uiFreeSpace = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE);
|
||||||
|
#if USE_MMC_DEV_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);
|
||||||
|
@ -718,6 +723,7 @@ UINT32 PhotoExe_GetFreePicNum(void)
|
||||||
{
|
{
|
||||||
uiFreeSpace = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE);
|
uiFreeSpace = FileSys_GetDiskInfoEx('B', 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);
|
||||||
|
|
||||||
|
|
|
@ -58,12 +58,15 @@ void UIStorageCheck_ResetFileReachMax(void)
|
||||||
//#NT#Add check for folder attribute
|
//#NT#Add check for folder attribute
|
||||||
static BOOL check_CurrDir_writable(void)
|
static BOOL check_CurrDir_writable(void)
|
||||||
{
|
{
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
|
|
||||||
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
||||||
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,16 @@ 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_MMC_DEV_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;
|
||||||
|
@ -98,13 +107,15 @@ static BOOL check_CurrDir_writable(void)
|
||||||
|
|
||||||
BOOL UIStorageCheck_DCIMWritable(void)
|
BOOL UIStorageCheck_DCIMWritable(void)
|
||||||
{
|
{
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
|
|
||||||
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
||||||
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) {
|
||||||
|
@ -114,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_MMC_DEV_CHECK
|
||||||
|
|
||||||
if(mmc_dev->dev_type == MMC_DEV_SD)
|
if(mmc_dev->dev_type == MMC_DEV_SD)
|
||||||
{
|
{
|
||||||
|
@ -123,7 +135,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) {
|
||||||
if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) {
|
if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) {
|
||||||
|
@ -161,8 +175,11 @@ static BOOL UIStrgCheckFolderFull(DCF_HANDLE DcfHandle)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
bIsFileReachMax = FALSE;
|
bIsFileReachMax = FALSE;
|
||||||
|
#if USE_MMC_DEV_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);
|
||||||
|
@ -226,13 +243,15 @@ static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
|
||||||
|
|
||||||
BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
|
BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
|
||||||
{
|
{
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
|
|
||||||
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
||||||
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 +262,12 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
|
||||||
if (useFileDB) {
|
if (useFileDB) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
#if USE_MMC_DEV_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 +282,12 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case STORAGE_CHECK_ERROR:
|
case STORAGE_CHECK_ERROR:
|
||||||
|
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
UIStrgCheckErr(mmc_dev->dev_type);
|
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)
|
||||||
|
|
|
@ -673,13 +673,14 @@ static void update_camera_message(void)
|
||||||
{
|
{
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
// if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
|
// if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
|
||||||
|
#if USE_MMC_DEV_CHECK
|
||||||
|
|
||||||
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
|
||||||
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");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
switch (puiPara->ImgSize)
|
switch (puiPara->ImgSize)
|
||||||
{
|
{
|
||||||
case PHOTO_SIZE_40M:
|
case PHOTO_SIZE_40M:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user