打印

想在STM32片内Flash最后100页使用FstFS,可行不?

[复制链接]
2758|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aoshi0603|  楼主 | 2011-8-19 08:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 aoshi0603 于 2011-8-19 11:33 编辑

想在STM32片内Flash最后100页使用FstFS, 思路是模拟NAND Flash把片内Flash每页做为一块(block),每页分成4份(每份为一段sector, 512字节),已经弄了一天了, 还没成功, 总是死在这里:
void HardFaultException(void)
{
  /* Go to infinite loop when Hard Fault exception occurs */
  while (1)
  {}
}出现硬件错误还没查到原因,仔细检暂时也没发现有指针越界。

问一下, 片内Flash使用FatFS可行不?

补充一下,用的uC/OS-II操作系统.
以下两个函数我都验证了,没有什么问题,从sector 0 到sector 424,每写一个sector再读出来,数据相同,而且没出现硬件固障:
DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);


成功了, 改了一下ffconf.h文件中的一个宏:
#define _MAX_SS   1024                 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/  Always set 512 for memory card and hard disk but a larger value may be
/  required for on-board flash memory, floppy disk and optical disk.
/  When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/  and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */

原来设的512字节,设计上sector大小定为512字节,所以这个宏给的是512,可是为什么不行那?现在设为1024可以,以后会不会再出问题?
现在格式化,创建data.txt,写文件,读文件功能都好用了
沙发
IJK| | 2011-8-19 09:23 | 只看该作者
片内Flash使用FatFS,感觉至少理论上是可行的,但肯定一些地方需要进行修改

使用特权

评论回复
板凳
pkat| | 2011-8-19 09:52 | 只看该作者
应该可行

使用特权

评论回复
地板
aoshi0603|  楼主 | 2011-8-19 10:01 | 只看该作者
那我继续弄,弄好了和大家分享一下,只是眼前卡在硬件故障这了,真是头疼,哪位有好的办法?

使用特权

评论回复
5
dfsa| | 2011-8-19 14:59 | 只看该作者
等着楼主分享了:lol

使用特权

评论回复
6
IJK| | 2011-8-19 15:24 | 只看该作者
【针对LZ的更新】关于 sector大小,应该跟具体的 STM32型号(不同型号可能不同),以及相应的flash区域的sector(同一STM32型号  不同flash区域的sector大小可能不同) 大小对应才行。

使用特权

评论回复
7
aoshi0603|  楼主 | 2011-8-22 08:32 | 只看该作者
但是设计上是模拟NAND Flash把片内Flash每页做为一块(block),每页分成4份(每份为一段sector, 512字节),应该就是512吧?求教
6# IJK

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

113

帖子

3

粉丝