OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5416|回复: 2

FATFS 中 SPI_Flash_Read() 无法返回

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-7-23
在线时间
0 小时
发表于 2014-7-30 11:26:09 | 显示全部楼层 |阅读模式
5金钱
使用FATFS管理SPI FLASH
res = f_mount(&fs, "0:", 0);
res = f_mkfs("0:", 1, _MAX_SS);
f_mkfs()无法返回。追进函数里发现卡在了这里:
...
if (disk_write(pdrv, tbl, b_vol, 1)) /* Write it to the VBR sector */
return FR_DISK_ERR;
...


继续跟进,disk_write() 在调用 SPI_Flash_Write()的时候,
void SPI_Flash_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)   

    ...
    while(1) 
    {
        SPI_Flash_Read(SPI_FLASH_BUF,secpos*4096,4096);
       ...
    }
}

停在 SPI_Flash_Read() 这一句,SPI_Flash_Read()能执行完,但是无法返回继续执行SPI_Flash_Write()


请问一下是因为内存不够的原因吗

最佳答案

查看完整内容[请看2#楼]

你跟踪进去,看看死哪里了?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-30 11:26:10 | 显示全部楼层
你跟踪进去,看看死哪里了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-7-23
在线时间
0 小时
 楼主| 发表于 2014-7-30 11:26:10 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------

谢谢原子哥回复。 使用了你的内存管理,添加了malloc.c问题已经解决了。

原来的问题是,SPI_Flash_Write()函数调用SPI_Flash_Read()后,

void SPI_Flash_Read(u8*, u32, u16)   

        ...
SPI_FLASH_CS=1; 


执行完最后一句 SPI_FLASH_CS=1;  就卡住了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-4 15:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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