mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-17 23:48:13 +08:00
修改了Web后台的部分界面,增加了HAmqtt中的总电量传感器,后台新增mqtt上报频率设置
This commit is contained in:
409
mico-os/platform/MCU/MX1101/FileSystem/presearch.c
Normal file
409
mico-os/platform/MCU/MX1101/FileSystem/presearch.c
Normal file
@@ -0,0 +1,409 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Mountain View Silicon Tech. Inc.
|
||||
// Copyright 2012, Mountain View Silicon Tech. Inc.,ShangHai,China
|
||||
// All rights reserved
|
||||
// Filename:presearch.c
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//#include "app_config.h"
|
||||
#include "dev_detect_driver.h"
|
||||
#include "fs_config.h"
|
||||
#include "folder.h"
|
||||
#include "fat_file.h"
|
||||
#include "fsinfo.h"
|
||||
#include "dir.h"
|
||||
#include "fsmount_buffermanager.h"
|
||||
#include "fs_mount.h"
|
||||
#include "fs_sync.h"
|
||||
#include "fs_filesort.h"
|
||||
#include "partition.h"
|
||||
#include "breakpoint.h"
|
||||
#include "Debug.h"
|
||||
|
||||
#define INDEPEND_FREERTOS
|
||||
|
||||
#ifndef INDEPEND_FREERTOS
|
||||
#include "os.h"
|
||||
#endif
|
||||
#define FUNC_SPI_UPDATE_EN
|
||||
|
||||
#ifdef FUNC_SPI_UPDATE_EN
|
||||
uint8_t UpgradeFileFound = 0xFF;
|
||||
#endif// FUNC_SPI_UPDATE_EN
|
||||
|
||||
static bool fs_inited_flag = 0;
|
||||
#ifndef INDEPEND_FREERTOS
|
||||
SEMAPHORE Sync; // Identifier of sync object
|
||||
#endif
|
||||
|
||||
#define FS_DBG(M, ...)
|
||||
|
||||
uint8_t FsSyncInit(void* FsContext)
|
||||
{
|
||||
#ifndef INDEPEND_FREERTOS
|
||||
if(FsContext)
|
||||
{
|
||||
SEMA_INIT(Sync, 1)
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
void FsLock(void* FsContext)
|
||||
{
|
||||
#ifndef INDEPEND_FREERTOS
|
||||
if(FsContext)
|
||||
{
|
||||
OSDOWN(Sync);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void FsUnLock(void* FsContext)
|
||||
{
|
||||
#ifndef INDEPEND_FREERTOS
|
||||
if(FsContext)
|
||||
{
|
||||
OSUP(Sync);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//Ѱ<><D1B0><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
//
|
||||
void FindSpecialFileCallBack(FS_CONTEXT* FsContext)
|
||||
{
|
||||
#ifdef FUNC_SPI_UPDATE_EN //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ΪSPI FLASH<53><48><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>*.MVA
|
||||
//ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼
|
||||
if((FsContext->gFsInfo.FolderSum == 1) && (UpgradeFileFound != 1)) //ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(memcmp(FsContext->gCurrentEntry->ExtName, "MVA", 3) == 0)
|
||||
{
|
||||
UpgradeFileFound = 1;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>Ϊdemo,<2C>ɸġ<C9B8><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Callһ<6C><D2BB>
|
||||
#if 0 //demo
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ص<EFBFBD><D8B5>ļ<EFBFBD>Handle <20><><EFBFBD>趨<EFBFBD><E8B6A8>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>磺FAT_FILE SpecialFile<6C><65>
|
||||
if(FsContext->gFsInfo.FolderSum == 1) //ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(memcmp(FsContext->gCurrentEntry->ExtName, "XYZ", 3) == 0)
|
||||
{
|
||||
FileGetInfo(&SpecialFile); //<2F>ҵ<EFBFBD><D2B5>ض<EFBFBD><D8B6>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>SpecialFile<6C><65>Ϣ<EFBFBD><CFA2>
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//<2F>ж<EFBFBD><D0B6>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ļ<EFBFBD>ϵͳ<CFB5>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t FileGetType(FS_CONTEXT* FsContext)
|
||||
{
|
||||
uint8_t ExtFileName[3];
|
||||
|
||||
ExtFileName[0] = FsContext->gCurrentEntry->ExtName[0];
|
||||
ExtFileName[1] = FsContext->gCurrentEntry->ExtName[1];
|
||||
ExtFileName[2] = FsContext->gCurrentEntry->ExtName[2];
|
||||
|
||||
|
||||
if((ExtFileName[0] == 'M') && (ExtFileName[1] == 'P') && (ExtFileName[2] == '3' || ExtFileName[2] == '2'))
|
||||
{
|
||||
return FILE_TYPE_MP3;
|
||||
}
|
||||
else if((ExtFileName[0] == 'W') && (ExtFileName[1] == 'M') && (ExtFileName[2] == 'A'))
|
||||
{
|
||||
return FILE_TYPE_WMA;
|
||||
}
|
||||
else if((ExtFileName[0] == 'A') && (ExtFileName[1] == 'S') && (ExtFileName[2] == 'F'))
|
||||
{
|
||||
return FILE_TYPE_WMA;
|
||||
}
|
||||
else if((ExtFileName[0] == 'W') && (ExtFileName[1] == 'M') && (ExtFileName[2] == 'V'))
|
||||
{
|
||||
return FILE_TYPE_WMA;
|
||||
}
|
||||
else if((ExtFileName[0] == 'A') && (ExtFileName[1] == 'S') && (ExtFileName[2] == 'X'))
|
||||
{
|
||||
return FILE_TYPE_WMA;
|
||||
}
|
||||
else if((ExtFileName[0] == 'W') && (ExtFileName[1] == 'A') && (ExtFileName[2] == 'V'))
|
||||
{
|
||||
return FILE_TYPE_WAV;
|
||||
}
|
||||
else if((ExtFileName[0] == 'S') && (ExtFileName[1] == 'B') && (ExtFileName[2] == 'C'))
|
||||
{
|
||||
return FILE_TYPE_SBC;
|
||||
}
|
||||
else if((ExtFileName[0] == 'F') && (ExtFileName[1] == 'L') && (ExtFileName[2] == 'A'))
|
||||
{
|
||||
return FILE_TYPE_FLAC;
|
||||
}
|
||||
else if(((ExtFileName[0] == 'A') && (ExtFileName[1] == 'A') && ExtFileName[2] == 'C')
|
||||
|| ((ExtFileName[0] == 'M') && (ExtFileName[1] == 'P') && ExtFileName[2] == '4')
|
||||
|| ((ExtFileName[0] == 'M') && (ExtFileName[1] == '4') && ExtFileName[2] == 'A'))
|
||||
{
|
||||
return FILE_TYPE_AAC;
|
||||
}
|
||||
else if((ExtFileName[0] == 'A') && (ExtFileName[1] == 'I') && (ExtFileName[2] == 'F'))
|
||||
{
|
||||
return FILE_TYPE_AIF;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FILE_TYPE_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
// <20><>ȡFSɨ<53><C9A8><EFBFBD><EFBFBD><EFBFBD>벥<EFBFBD><EBB2A5>ģʽ<C4A3>ϵ<EFBFBD><CFB5><EFBFBD>Ϣ<EFBFBD><CFA2>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ID<49><44>
|
||||
#ifdef FUNC_MATCH_PLAYER_BP
|
||||
|
||||
static PLAYER_BP_RET sPlayerBPRet = {-1, 1, 1};
|
||||
|
||||
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>Ŷϵ<C5B6>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>FS<46><53>ʼ<EFBFBD><CABC><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
PLAYER_BP_RET* GetMatchPlayerBPRet(void)
|
||||
{
|
||||
return &sPlayerBPRet;
|
||||
}
|
||||
|
||||
void SetMatchPlayerBPRet(int8_t BPIndex, uint16_t FileId, uint16_t FolderId)
|
||||
{
|
||||
sPlayerBPRet.BPIndex = BPIndex;
|
||||
sPlayerBPRet.FileId = FileId;
|
||||
sPlayerBPRet.FolderId = FolderId;
|
||||
}
|
||||
|
||||
#endif
|
||||
//
|
||||
//ͳ<><CDB3><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//
|
||||
bool PreSearch(FS_CONTEXT* FsContext)
|
||||
{
|
||||
ENTRY_TYPE EntryType;
|
||||
|
||||
#ifdef FUNC_MATCH_PLAYER_BP
|
||||
sPlayerBPRet.BPIndex = -1;
|
||||
#endif
|
||||
|
||||
FS_DBG("PreSearch start!\n");
|
||||
#ifdef FUNC_SPI_UPDATE_EN
|
||||
UpgradeFileFound = 0;
|
||||
#endif
|
||||
DirSetStartEntry(FsContext, FsContext->gFsInfo.RootStart, 0, TRUE);
|
||||
FSINFO_Init(FsContext);
|
||||
|
||||
FsContext->gFolderDirStart = FsContext->gFsInfo.RootStart;
|
||||
|
||||
while(1)
|
||||
{
|
||||
|
||||
EntryType = (ENTRY_TYPE)DirGetNextEntry(FsContext);
|
||||
|
||||
//FS_DBG("fcount:%d\n",++fcount);
|
||||
|
||||
if(FsContext->gEntryOffset == 0)
|
||||
{
|
||||
FSINFO_SaveFdi(FsContext);
|
||||
}
|
||||
|
||||
switch(EntryType)
|
||||
{
|
||||
case ENTRY_FILE: //<2F>Ǹ<EFBFBD><C7B8><EFBFBD>
|
||||
|
||||
//FS_DBG("fcount:%d\n",++fcount);
|
||||
if(FileGetType(FsContext) != FILE_TYPE_UNKNOWN)
|
||||
{
|
||||
//FS_DBG("<22>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%-.8s%-.3s\n", &FsContext->gCurrentEntry->FileName[0], &FsContext->gCurrentEntry->FileName[8]);
|
||||
if(FsContext->gFsInfo.FileSum >= 65535)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
FsContext->gFsInfo.FileSum++;
|
||||
FsContext->gFsInfo.FileSumInFolder++;
|
||||
//FS_DBG("Find a audio file:%d!\n", fcount);
|
||||
#if FS_FILE_SORT_EN == 1
|
||||
FileSortSearchNewFile(FsContext);
|
||||
#endif
|
||||
}
|
||||
|
||||
FindSpecialFileCallBack(FsContext);
|
||||
|
||||
break;
|
||||
|
||||
case ENTRY_FOLDER: //<2F><><EFBFBD>ļ<EFBFBD><C4BC>У<EFBFBD><D0A3>´<EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
FsContext->gFsInfo.FolderNumInFolder++;
|
||||
//FS_DBG("ENTRY_FOLDER: %d\n", FsContext->gFsInfo.FolderNumInFolder);
|
||||
break;
|
||||
|
||||
case ENTRY_END: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD><C4BC>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0>¼<EFBFBD>IJ<EFBFBD><C4B2>ֽڵ<D6BD>
|
||||
FSINFO_ChangeFileNum(FsContext);
|
||||
//<2F><>¼<EFBFBD><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(FsContext->gFsInfo.FolderSum == 1)
|
||||
{
|
||||
FsContext->gFsInfo.RootFileSum = FsContext->gFsInfo.FileSum;
|
||||
}
|
||||
|
||||
//<2F>ص<EFBFBD><D8B5><EFBFBD>ǰ<EFBFBD>ļ<EFBFBD><C4BC>еĿ<D0B5>ͷλ<CDB7><CEBB>
|
||||
//FS_DBG("<22><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD>λ<EFBFBD>ã<EFBFBD>\n");
|
||||
RewindFolderStart(FsContext);
|
||||
|
||||
//<2F>ӵ<EFBFBD>ǰλ<C7B0>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ϵͳ<CFB5><CDB3>Ѱ<EFBFBD><D1B0><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
if(!FindNextFolder(FsContext))
|
||||
{
|
||||
//FS_DBG("PreSearch end! %d ms \n", (uint16_t)PastTimeGet(&Timer));
|
||||
#if FS_FILE_SORT_EN == 1
|
||||
FileSortSearchEnd(FsContext);
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
else //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD><C4BC>гɹ<D0B3>
|
||||
{
|
||||
//FS_DBG("Into Next Folder%8s\n", &FsContext->gCurrentEntry->FileName[0]);
|
||||
if(FsContext->gFsInfo.FolderSum >= 65535)
|
||||
{
|
||||
#if FS_FILE_SORT_EN == 1
|
||||
FileSortSearchEnd(FsContext);
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
FsContext->gFsInfo.FolderSum++;
|
||||
FsContext->gFsInfo.FolderNumInFolder = 0;
|
||||
FsContext->gFsInfo.FileSumInFolder = 0;
|
||||
if(!DirEnterSonFolder(FsContext))
|
||||
{
|
||||
//FS_DBG("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
||||
FsContext->gFsInfo.FolderSum--;
|
||||
}
|
||||
//FS_DBG("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>гɹ<D0B3><C9B9><EFBFBD>\n");
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
//<2F>ļ<EFBFBD>ϵͳ<CFB5><CDB3>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>ļ<EFBFBD>ϵͳ<CFB5>й<EFBFBD><D0B9><EFBFBD>Ϣ.
|
||||
//
|
||||
bool FSInit(uint8_t DeviceID)
|
||||
{
|
||||
|
||||
//get fs memory
|
||||
FS_CONTEXT* Fs_Context;
|
||||
|
||||
Fs_Context = gFSContextBufferManager.pfnAllocFSContextBuffer(&gFSContextBufferManager.FSContextBuffer, DeviceID);
|
||||
|
||||
if(Fs_Context == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ENTER_FAT(Fs_Context);
|
||||
|
||||
if(!CheckAllDiskLinkFlag())
|
||||
{
|
||||
FS_DBG("disk not ready!\n");
|
||||
LEAVE_FAT(Fs_Context, FALSE);
|
||||
}
|
||||
|
||||
if(Fs_Context->gPreSearchStatus != PRESEARCH_STATUS_NONE)
|
||||
{
|
||||
FS_DBG("Mount Already\n");
|
||||
LEAVE_FAT(Fs_Context, TRUE);
|
||||
}
|
||||
|
||||
Fs_Context->gPreSearchStatus = PRESEARCH_STATUS_SEARCHING;
|
||||
|
||||
if(Fs_Context == 0 || FsGetAvailableLogicId() < 0)
|
||||
{
|
||||
LEAVE_FAT(Fs_Context, FALSE);
|
||||
}
|
||||
|
||||
//mount fs
|
||||
FsMount(FsGetAvailableLogicId(), Fs_Context);
|
||||
|
||||
FsGetCurContext()->gFsInfo.DevID = (DEV_ID)DeviceID;
|
||||
FsGetCurContext()->gFsInfo.CurrFATSecNum = -1;
|
||||
//FsGetCurContext()->gFsInfo.CurrDirSecNum = -1;
|
||||
FsGetCurContext()->gCurFreeClusNum = 2;
|
||||
|
||||
|
||||
if(!PartitionLoad(FsGetCurContext(), 0))
|
||||
{
|
||||
FS_DBG("PartitionLoad() error!\n");
|
||||
//return FALSE;
|
||||
FsMount(FsGetLogicIdByDeviceType(DeviceID), 0);
|
||||
gFSContextBufferManager.pfnFreeFSContextBuffer(&gFSContextBufferManager.FSContextBuffer, DeviceID);
|
||||
Fs_Context->gPreSearchStatus = PRESEARCH_STATUS_NONE;
|
||||
LEAVE_FAT(Fs_Context, FALSE);
|
||||
}
|
||||
FS_DBG("PartitionLoad() OK!\n");
|
||||
|
||||
// {
|
||||
// if(!PreSearch(FsGetCurContext()))
|
||||
// {
|
||||
// FS_DBG("PreSearch() error!\n");
|
||||
// //return FALSE;
|
||||
// LEAVE_FAT(Fs_Context, FALSE);
|
||||
// }
|
||||
// //end = OSSysTickGet();
|
||||
// //FS_DBG("PreSearch() End:%d\n", end - begin);
|
||||
// }
|
||||
|
||||
// Fs_Context->gPreSearchStatus = PRESEARCH_STATUS_SEARCHED;
|
||||
|
||||
// FS_DBG("PreSearch() OK\n");
|
||||
|
||||
|
||||
// FS_DBG("Song sum in disk: %d\n", FsGetCurContext()->gFsInfo.FileSum);
|
||||
// FS_DBG("Folder sum in disk: %d\n", FsGetCurContext()->gFsInfo.FolderSum);
|
||||
// FS_DBG("Valid folder sum in disk: %d\n", FsGetCurContext()->gFsInfo.ValidFolderSum);
|
||||
// FS_DBG("***********************************************\n");
|
||||
// FS_DBG("\n");
|
||||
|
||||
//return TRUE;
|
||||
LEAVE_FAT(Fs_Context, TRUE);
|
||||
|
||||
// fs_inited_flag = TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
//<2F>ļ<EFBFBD>ϵͳȥ<CDB3><C8A5>ʼ<EFBFBD><CABC>
|
||||
//
|
||||
bool FSDeInit(uint8_t DeviceID)
|
||||
{
|
||||
bool res = FALSE;
|
||||
|
||||
int8_t LogicId = FsGetLogicIdByDeviceType(DeviceID);
|
||||
|
||||
FS_CONTEXT* Fs_Context = FsGetContextByDeviceType(DeviceID);
|
||||
|
||||
#ifdef FUNC_MATCH_PLAYER_BP
|
||||
// sPlayerBPRet.BPIndex = -1;
|
||||
#endif
|
||||
|
||||
ENTER_FAT(Fs_Context);
|
||||
if(LogicId >= 0)
|
||||
{
|
||||
FsMount(LogicId, 0);
|
||||
|
||||
res = gFSContextBufferManager.pfnFreeFSContextBuffer(&gFSContextBufferManager.FSContextBuffer, DeviceID);
|
||||
}
|
||||
//return res;
|
||||
LEAVE_FAT(Fs_Context, res);
|
||||
|
||||
// fs_inited_flag = FALSE;
|
||||
}
|
||||
|
||||
bool IsFsInited(void)
|
||||
{
|
||||
return fs_inited_flag;
|
||||
}
|
||||
Reference in New Issue
Block a user