硬汉嵌入式论坛

 找回密码
 立即注册
查看: 530|回复: 4
收起左侧

[RL-FlashFS] EFS文件系统能否在W25Q32上分两个盘符?

[复制链接]

21

主题

61

回帖

124

积分

初级会员

积分
124
发表于 2024-2-2 12:04:49 | 显示全部楼层 |阅读模式
如题,EFS文件系统能否将W25Q32的前2M空间分配为盘符F0:?,后2M空间分配为盘符F1:?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
发表于 2024-2-3 08:34:57 | 显示全部楼层
不行,没有分区功能。
回复

使用道具 举报

21

主题

61

回帖

124

积分

初级会员

积分
124
 楼主| 发表于 2024-2-3 21:11:50 | 显示全部楼层
eric2013 发表于 2024-2-3 08:34
不行,没有分区功能。

版主,我尝试了下发现可以实现,基于W25Q32和《基于STM32H7的RL-FlashFS V6.X驱动SPI Flash》工程为例,将SPI Flash前2MB分配为F0:,后2MB分配为F1:,步骤如下:
1、将原来的驱动文件W25QXX.c拷贝一份重命名为W25QXX_1.c,将W25QXX.h拷贝一份重命名为W25QXX_1.h。W25QXX_1.c中的宏DRIVER_FLASH_NUM的值更改为1.。并将W25QXX_1.c中包含的头文件更改为W25QXX_1.h。
2、W25QXX.h和W25QXX_1.h中更改宏NOR_SECTOR_COUNT的值为512.
3、W25QXX_1.h中增加定义宏如下,从0x0200000开始:
[C] 纯文本查看 复制代码
#define FLASH1_SECTORS                                               \
  ARM_FLASH_SECTOR_INFO(0x0200000,0x1000),     /* Sector Size 4kB */ \
  ARM_FLASH_SECTOR_INFO(0x0201000,0x1000),     /* Sector Size 4kB */ \
......
  ARM_FLASH_SECTOR_INFO(0x03FE000,0x1000),     /* Sector Size 4kB */ \
  ARM_FLASH_SECTOR_INFO(0x03FF000,0x1000),     /* Sector Size 4kB */ 

4、W25QXX_1.c中增加如下定义:
[C] 纯文本查看 复制代码
/* Sector Information */
#ifdef FLASH1_SECTORS
static ARM_FLASH_SECTOR FLASH_SECTOR_INFO[NOR_SECTOR_COUNT] = {
  FLASH1_SECTORS
};
#else
#define FLASH_SECTOR_INFO NULL
#endif

/* Flash Information */
static ARM_FLASH_INFO FlashInfo = {
  FLASH_SECTOR_INFO,
  NOR_SECTOR_COUNT,
  NOR_SECTOR_SIZE,
  NOR_PAGE_SIZE,
  NOR_PROGRAM_UNIT,
  NOR_ERASED_VALUE,
#if (ARM_FLASH_API_VERSION > 0x201U)
  { 0U, 0U, 0U }
#endif
};

5、W25QXX.c和W25QXX_1.c中更改变量 Driver Capabilities如下,取消擦除全片:
[C] 纯文本查看 复制代码
/* Driver Capabilities */
static const ARM_FLASH_CAPABILITIES DriverCapabilities = {
  0,    /* event_ready */
  0,    /* data_width = 0:8-bit, 1:16-bit, 2:32-bit */
  0,    /* erase_chip */
#if (ARM_FLASH_API_VERSION > 0x200U)
  0U    /* reserved */
#endif
};

5、效果如下图:
QQ截图20240203210918.png
QQ截图20240203210952.png
QQ截图20240203211012.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106739
QQ
发表于 2024-2-5 09:31:17 | 显示全部楼层
zhumx 发表于 2024-2-3 21:11
版主,我尝试了下发现可以实现,基于W25Q32和《基于STM32H7的RL-FlashFS V6.X驱动SPI Flash》工程为例, ...

好办法,这个方式也不错。
回复

使用道具 举报

21

主题

61

回帖

124

积分

初级会员

积分
124
 楼主| 发表于 2024-2-5 12:07:27 | 显示全部楼层
eric2013 发表于 2024-2-5 09:31
好办法,这个方式也不错。

嗯,主要是为了实现文件的掉电备份恢复,备份文件存在另一个盘符下。EFS好像没有掉电保护,经常掉电后文件出错。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 14:25 , Processed in 0.190727 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表