小小鱼 发表于 2016-12-20 19:08:05

在SPI-FLASH上建立文件系统

SPI-FLASH有16M,我的想法是前面的8M使用文件系统来访问,后面的8M当作字库。字库是给EMWIN使用的。各位前辈,不知道这样做可不可以

eric2013 发表于 2016-12-21 08:14:37

可以这样做,没问题的。

小小鱼 发表于 2016-12-21 08:54:32

那用文件系统的时候如何保证后面8M的内容不被覆盖掉呢

eric2013 发表于 2016-12-21 10:11:13

回 小小鱼 的帖子

小小鱼:
那用文件系统的时候如何保证后面8M的内容不被覆盖掉呢

images/back.gif

设置这里:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=14894




小小鱼 发表于 2016-12-21 14:55:04

谢谢,回去看看。

小小鱼 发表于 2016-12-23 08:54:14

if (_MULTI_PARTITION && part) {
      /* Get partition information from partition table in the MBR */
      if (disk_read(pdrv, fs->win, 0, 1) != RES_OK) return FR_DISK_ERR;
      if (ld_word(fs->win + BS_55AA) != 0xAA55) return FR_MKFS_ABORTED;
      tbl = &fs->win;
      if (!tbl) return FR_MKFS_ABORTED;    /* No partition? */
      b_vol = ld_dword(tbl + 8);    /* Volume start sector */
      n_vol = ld_dword(tbl + 12);    /* Volume size */
    } else {
      /* Create a single-partition in this function */
      if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &n_vol) != RES_OK || n_vol < 128) {       //--wj128个扇区
            return FR_DISK_ERR;
      }
      b_vol = (sfd) ? 0 : 63;      /* Volume start sector */
      n_vol -= b_vol;                /* Volume size */
    }
   
   
      st_word(tbl + BS_55AA, 0xAA55);            /* Signature (Offset is fixed here regardless of sector size) */我想要在铁电上使用文件系统,一直挂载不上去。铁电的大小为8K
FAFTS文件系统对存储介质的容量是否有要求,从上面的代码可以看出建立文件系统至少要在存储介质上建立128个扇区,而每个扇区至少512字节(因为挂载文件系统会一次性读取512个字节的数据,然后判断511,512个字节是否为0X55,0XAA)..因此设置扇区大小小于512字节时,就会导致文件系统挂载失败。所以我觉得存储介质的大小至少未128*512 = 64K 字节。
我的想法对不对啊,还有我不太明白disk_ioctl()函数中GET_BLOCK_SIZE的作用,他是用来干什么的

浮生如梦 发表于 2019-1-25 10:50:47

小小鱼 发表于 2016-12-23 08:54
我想要在铁电上使用文件系统,一直挂载不上去。铁电的大小为8K
FAFTS文件系统对存储介质的容量是否有要求, ...

你还,我碰到了和你一样的问题:
fatfs对存储器容量是否有限制?我用512k的片上flash移植fatfs成功,但是用128k的片上flash移植失败,看了下源码,发现f_mkfs()里面有个判断可用扇区的数目,如果小于128个,就报错。

turnip 发表于 2019-4-21 11:08:57

推荐ARM的littleFS,SPI,MCU内部FLASH,NOR和NAND都可以用,https://github.com/ARMmbed/littlefs
页: [1]
查看完整版本: 在SPI-FLASH上建立文件系统