野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10185|回复: 6

外部flash模拟U盘问题请教

[复制链接]
发表于 2018-9-3 10:21:16 | 显示全部楼层 |阅读模式

看野火的外部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);
}


回复

使用道具 举报

发表于 2018-9-3 11:23:43 | 显示全部楼层
加1536是因为我们的flash前面这些空间用来存储普通数据了,没有作为文件系统,你自己做应用的话可以整片flash都用于文件系统,就不用加了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-3 11:45:17 | 显示全部楼层
flyleaf 发表于 2018-9-3 11:23
加1536是因为我们的flash前面这些空间用来存储普通数据了,没有作为文件系统,你自己做应用的话可以整片fla ...

那blk_ad<<12和blk_len<<12都左移12位是什么作用?
回复 支持 反对

使用道具 举报

发表于 2018-9-3 14:04:28 | 显示全部楼层

计算地址,左移12就是乘以4096,把扇区号转化成具体的地址,扇区个数转化成写入字节数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-3 14:44:49 | 显示全部楼层
flyleaf 发表于 2018-9-3 14:04
计算地址,左移12就是乘以4096,把扇区号转化成具体的地址,扇区个数转化成写入字节数

STORAGE_Write (uint8_t lun,
                  uint8_t *buf,
                  uint32_t blk_addr,
                  uint16_t blk_len)
执行这个函数时,比如blk_addr输入参数为1,blk_len为2,意思是不是在flash的第一个扇区写入数据,写入的数据长度为2个扇区?
回复 支持 反对

使用道具 举报

发表于 2018-9-3 14:52:19 | 显示全部楼层
chenbao 发表于 2018-9-3 14:44
STORAGE_Write (uint8_t lun,
                  uint8_t *buf,
                  uint32_t blk_add ...

是的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-3 14:56:16 | 显示全部楼层

好的,多谢
我在研究研究
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-22 22:59 , Processed in 0.036411 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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