大学生
最后登录1970-1-1
在线时间 小时
注册时间2018-1-8
|
看野火的外部flash模拟U盘,有些地方不太明白,还请各位指点迷津。。。
如下,读外部flash函数中,红色字体blk_addr为什么还要加1536?
SPI_FLASH_BufferRead函数中为什么blk_ad<<12?为什么blk_len<<12?
int8_t STORAGE_Read (uint8_t lun,
uint8_t *buf,
uint32_t blk_addr,
uint16_t blk_len)
{
blk_addr+=1536;
SPI_FLASH_BufferRead((uint8_t *)buf, blk_addr<<12, blk_len<<12);
return 0;
}
写数据到外部flash时,blk_addr为什么要加1536?
SPI_FLASH_SectorErase(blk_addr<<12);中为什么blk_addr<<12?
以及SPI_FLASH_BufferWrite((uint8_t *)buf,blk_addr<< 12,blk_len<<12);中为什么blk_addr<< 12?为什么blk_len<<12?
int8_t STORAGE_Write (uint8_t lun,
uint8_t *buf,
uint32_t blk_addr,
uint16_t blk_len)
{
blk_addr+=1536;
SPI_FLASH_SectorErase(blk_addr<<12);
SPI_FLASH_BufferWrite((uint8_t *)buf,blk_addr<< 12,blk_len<<12);
return (0);
}
|
|