diff --git a/arm_mps2_an386/liteos_m/board/driver/flash/ram_virt_flash.c b/arm_mps2_an386/liteos_m/board/driver/flash/ram_virt_flash.c index c8310798de9748708d80aaf0e0e7904f3cc7430d..10651e71a963e46ea554784920426b0bafe26f97 100644 --- a/arm_mps2_an386/liteos_m/board/driver/flash/ram_virt_flash.c +++ b/arm_mps2_an386/liteos_m/board/driver/flash/ram_virt_flash.c @@ -52,6 +52,25 @@ HalLogicPartition g_halPartitions[] = { HalLogicPartition *getPartitionInfo(VOID) { + UINTPTR partitionMem; +#if (LOSCFG_SUPPORT_LITTLEFS == 1) + partitionMem = (UINTPTR)malloc(g_halPartitions[FLASH_PARTITION_DATA0].partitionLength); + if (!partitionMem) { + return NULL; + } + g_halPartitions[FLASH_PARTITION_DATA0].partitionStartAddr = partitionMem; +#endif +#if (LOSCFG_SUPPORT_FATFS == 1) + partitionMem = (UINTPTR)malloc(g_halPartitions[FLASH_PARTITION_DATA1].partitionLength); + if (!partitionMem) { +#if (LOSCFG_SUPPORT_LITTLEFS == 1) + free(g_halPartitions[FLASH_PARTITION_DATA0].partitionStartAddr); +#endif + return NULL; + } + g_halPartitions[FLASH_PARTITION_DATA1].partitionStartAddr = partitionMem; +#endif + return g_halPartitions; } diff --git a/arm_mps2_an386/liteos_m/board/fs/fs_init.c b/arm_mps2_an386/liteos_m/board/fs/fs_init.c index 2765c97bd5305c8979bc4c8a6c5d75dbc41c3fb1..052920d7e915aad67024b60f249d076ec9b718ff 100644 --- a/arm_mps2_an386/liteos_m/board/fs/fs_init.c +++ b/arm_mps2_an386/liteos_m/board/fs/fs_init.c @@ -44,6 +44,10 @@ INT32 LfsLowLevelInit() INT32 ret; struct fs_cfg fs[LOSCFG_LFS_MAX_MOUNT_SIZE] = {0}; HalLogicPartition *halPartitionsInfo = getPartitionInfo(); + if (halPartitionsInfo == NULL) { + printf("%s: getPartitionInfo failed!\n", __func__); + return -1; + } INT32 lengthArray = halPartitionsInfo[FLASH_PARTITION_DATA0].partitionLength; INT32 addrArray = halPartitionsInfo[FLASH_PARTITION_DATA0].partitionStartAddr;