首页 > 代码库 > SPI_FLASH 操作
SPI_FLASH 操作
前段时间需要另外规划Mboot的一些配置和功能,折腾了好一会Spi Flash 记录一下。
一.概念:
SPI:serial peripheral interface
串行接口设备,spi flash 就是通过串行的接口进行操作的flash存储设备
flash按照内部存储结构不同,分为两种:nor flash和nand flash。这里spi flash 属于 nor flash!
spi flash 读写较慢,次数有限制,一般用于不经常更改的存储。
二.操作:
我这边用于存储Mboot的spi flash 只有2M大小,十六进制表示大小为:0x200000
操作之前需要进行spi flash的初始化,这个一般在Mboot 起来的时候初始化设备的时候执行。
会将flash 分为多少block,每个block的size设置,以及起始的地址。
我这边是把2M分为了32块,每块64K,起始地址为0x00
spi flash 的读操作一般没有什么问题。主要是写操作。在对flash写之前必须要进行擦除,因为spi flash 是 nor flash ,所以写操作只能把bit 1 变成 0 .
所以需要往哪个位置写入数据的时候,就要保证目标位置的byte为0xFF 。
一般的spi flash 都是支持扇区擦除的,意思就是一次只擦除一个扇区,全部置为0xFF,nor flash的页编程大小为256bytes, 16个page 为一个扇区 也就是4K的大小!
需要注意的是,flash 还会有protect status,想写入就得关掉保护。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。