我在写mass storage时发现一个问题如果个直接将buf转入sFlashMultiRead,发现运行完这个程序后就死机,停住了。
int8_t STORAGE_Read (uint8_t lun,uint8_t *buf,uint32_t blk_addr,uint16_t blk_len)
{
sFlashMultiRead(&buf,blk_addr,blk_len);
return 0;
}
如果改成下面,先用一个m_buf做缓存保存SPI读取的flash数据,再把数据传过去buf去这样就很正常的运行。这样子是哪里出了问题?请大虾指教。
u8 m_buf[4096];
int8_t STORAGE_Read (uint8_t lun,uint8_t *buf,uint32_t blk_addr,uint16_t blk_len)
{
u16 i,cnt;
sFlashMultiRead(&m_buf,blk_addr,blk_len);
for(i=0;i<(512*blk_len);i++)*(buf+i)=m_buf[i];
return 0;
} |