亲宝软件园·资讯

展开

nor flash之4字节地址模式

zqb-all 人气:1
## 背景 容量低于 16M bytes 的 nor,一般使用 3 字节地址模式,即命令格式是 `cmd + addr[2] + addr[1] + addr[0] + ...` 使用超过 16M bytes 的 nor flash,则需要了解 4 字节地址模式, 即命令格式是 `cmd + addr[3] + addr[2] + addr[1] + addr[0] + ...` ## 原因 为什么呢, 因为用 3 个字节表示地址,则其范围是 `0x000000 - 0xffffff = 0 - 16M`,超过 16M 的地址就无法表示了,那自然就得上 4 字节了。 ## 驱动修改 新的 uboot, kernel 驱动中都是支持的,配置下就可以了,如配置上 SPI_NOR_4B_OPCODES 。 如果在用的 nor 驱动没有支持,那可以自行根据 datasheet,在初始化的时候判断下容量,加个切换到 4 字节地址模式的操作,后续的读写命令等,也改用 4 字节地址。 ## 注意事项 需要注意的是,一些芯片的 boot rom 无法支持 4 字节地址模式,只会用 3 字节地址模式跟 nor 通信。 所以切换到 4 字节地址模式后会导致直接重启无法正常启动。需要彻底掉电后重新上电,让 nor 因为重新上电默认回到 3 字节地址模式,才能正常启动。 一种处理方式是,在 reboot 的流程中,增加软件退出 4 字节地址模式 的操作。这样正常的 reboot,会先退出 4 字节地址模式再重启,boot rom 就能正常识别了。 但软件退出的缺点是,只能解决正常重启的情况,无法处理硬件 reset 主芯片的操作,因为 reset 主芯片并不会让 nor 也 reset,那么 nor 就仍处于 4 字节地址模式,不响应 boot rom 的 3 字节地址命令。 另一种更好的处理方式是,硬件设计上支持让主芯片和 nor 同步 reset。 ## 其他 nor 在 16M 这个容量是个分界点,不仅驱动上因为 4 字节地址模式的引入而更加复杂,价格上也是差别巨大,32M nor 远不止 16M nor 价格的两倍。 从价格考虑,用一片 32M 的 nor 还不如用两片 16M 并自行通过片选去分时复用。也不如直接上 128M 的 nand,不过上 nand 的话,软件上就复杂很多了,这里不再展开。 ## 更多参考 nor相关文章 [nor flash之频率限制](https://sourl.cn/QPBtBd) [spinor/spinand flash之高频通信延迟采样](https://sourl.cn/A4yGae) [nor flash之写保护](https://sourl.cn/Fj43Bz) [nor flash之擦除和写入](https://sourl.cn/2Cc4jB) [nor flash之写保护开销](https://sourl.cn/g5CtYg) 本文地址:[https://www.cnblogs.com/zqb-all/p/12442578.html](https://www.cnblogs.com/zqb-all/p/12442578.html) 公众号:[https://sourl.cn/CKWtQJ](https://sourl.cn/CKWtQJ)

加载全部内容

相关教程
猜你喜欢
用户评论