spi数据闪存设备驱动程序(纯python)
pyspiflash的Python项目详细描述
spi数据闪存设备驱动程序(纯python)
spi闪存设备,也称为dataflash常见于嵌入式 存储固件、微码或配置参数的产品。
PySpiFlash为那些flash设备提供了几个纯python驱动程序 演示如何与PyFtdi一起使用spi设备。倾倒也可能有用 闪存内容或从砖砌设备恢复。
支持的SPI闪存设备
Vendor | Atmel | Atmel | Macronix | SST | Winbond | Eon | Numonix | Micron |
---|---|---|---|---|---|---|---|---|
DataFlash | AT45 | AT25 | MX25L | SST25 | W25Q | EN25Q | M25P | N25Q |
Status | Tested | Tested | Tested | Tested | Tested | Not tested | Not tested | Tested |
Sizes (MiB) | 2,4 | 2,4,8 | 2,4,8,16 | 2,4 | 2,4 | 8 | ||
Read (KiB/s) | 1278 | 1279 | 1329 | 642 | 1252 | 1315 | ||
Write (KiB/s) | 56 | 64 | 71 | 2 | 63 | 107 | ||
Erase (KiB/s) | 60 | 63 | 31 | 500 | 60 | 84 |
有关性能的注释
- read操作与spi总线时钟同步:因此它只依赖于 在spi总线上达到的频率 闪存设备的支持频率。
- write操作主要取决于闪存设备的性能,其上限 限制主要来自设备的最大写入数据包大小,如 设备需要在每个包之后进行轮询以完成:越短的 数据包,spi上较高的流量和相关的开销。
- erase操作主要取决于flash设备的性能,其完全依赖于 取决于flash设备的内部技术,非常少而且很短 数据包通过spi总线交换。
支持新的“25”系列闪存设备
许多闪存设备支持一个用于读/写/擦除操作的公共子集。 在锁定和保护功能以及 安全特性。保密协议通常要求获得 这些设备的高级安全功能。
不过,添加对新闪存设备的支持应该很容易 变型:
- match应该首先查找pyftdi flash设备api中的方法 以检测更多兼容的闪存设备。
支持的SPI闪存命令
- 标识
- 根据检测到的spi自动选择spi设备驱动程序 闪存设备
- 读取
- 从spi的任意位置开始读取任意大小的字节序列 闪存设备
- 写入
- 从任意位置开始,将任意大小的字节序列写入 SPI闪存设备
- 擦除
- 擦除spi闪存设备块,其大小取决于 闪存设备,通常为4kib和/或64kib。
- 解锁
- 解锁所有受保护的闪存设备扇区
依赖关系
有关以前版本的注释
如果您别无选择,只能使用早期版本的python(包括python 2.x)或PyFTDI,请查看最新的PySpiFlash0.4.1,它提供 支持这些已弃用的环境,但不再是主动的 保持。
PySpiFlash严重依赖PyFtdi模块来访问spi闪存设备。 已多次更改PyFtdiapi,请参见兼容性矩阵 下面。
setup.py脚本应该处理这些依赖项。
PySpiFlash version | PyFtdi version |
0.2.* | 0.9 .. 0.10 |
0.3.* | 0.11+ |
0.4.* | 0.13.2+ |
0.5.* | 0.20.0+ |