2年6个月前IP:湖北
931455
4楼
引用m24h发表于3楼的内容
访问block设备的文件 和随机访问大数据是两回事. IDF和Micropython又是两回事.你考虑一个有个文件 比RAM还大 没有编在固件里 没有给编译器RO段信息 即使在IDF里面 运行时才想去...

对于挂载在外部flash的文件,其实从底层角度上看,是通过SPI或者QSPI的形式对数据进行读取的

也就是是说,在编译器的内存映射,最后调用的也是flash_wr_block/page/sector or Bytes()

所以即使是随机访问,也可以很轻松越过文件系统,不需要通过fs.on 后seek的方法

而是直接调用SPI外设,采用addr+x 相对偏移地址轻松访问储存在flash中的某一个字节

MicroPyhton里用指针地址访问,还是调用了这个方式,所以在IDF或者Arduino中依然可以用我说的这种方法随机访问

访问特定的块对QSPI 给flash发送24bits地址后,送N个edge的时钟,就能获得N*Bytes的数据块(这是最底层时序)

如果用DMA搬运的方式,理论上块获取效率可以等效于QSPI的时钟速度 Tsummary=Nbofbytes*Tclk


评论
文号 / 931455

千古风流
名片发私信
学术分 5
总主题 53 帖总回复 1732 楼拥有证书:进士 老干部 学者 机友 笔友
注册于 2010/05/02 13:32:44最后登录 2025/02/26 11:20:29
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

曾是化学爱好者转到火箭爱好者最后变成电子爱好者的科创爱好者。

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的