SPI数据闪存设备驱动程序(纯Python)
项目描述
SPI数据闪存设备驱动程序(纯Python)
SPI闪存设备,也称为数据Flash,通常用于嵌入式产品中,用于存储固件、微代码或配置参数。
PySpiFlash提供了几个针对这些闪存设备的纯Python驱动程序,这些驱动程序展示了如何使用PyFtdi与SPI设备一起使用。它还可以用于导出闪存内容或从损坏的设备中恢复。
支持的SPI闪存设备
供应商 |
Atmel |
Atmel |
Macronix |
SST |
Winbond |
Micron |
---|---|---|---|---|---|---|
DataFlash |
N25Q |
|||||
状态 |
测试 |
测试 |
测试 |
测试 |
测试 |
测试 |
大小(MiB) |
2,4 |
2,4,8 |
2,4,8,16 |
2,4 |
2,4 |
8 |
读取(KiB/s) |
1278 |
1279 |
1329 |
642 |
1252 |
1315 |
写入(KiB/s) |
56 |
64 |
71 |
2 |
63 |
107 |
擦除(KiB/s) |
60 |
63 |
31 |
500 |
60 |
84 |
关于性能的说明
读取操作与SPI总线时钟同步:因此它只取决于SPI总线可达到的频率,这取决于闪存设备支持的最高频率。
写入操作主要依赖于闪存设备性能,其上限主要来自设备最大的写入数据包大小,因为设备需要在每个数据包之后被轮询以完成:数据包越短,SPI上的流量和相关的开销就越高。
擦除操作主要依赖于闪存设备性能,其完全依赖于闪存设备的内部技术,因为在SPI总线上交换的非常少且数据包很短。
支持系列‘25’的新闪存设备
许多闪存设备支持读取/写入/擦除操作的常见子集。在锁定和保护功能以及安全功能方面存在关键差异。通常需要NDA才能获取这些设备高级安全功能的详细信息。
不过,添加对新闪存设备变体的支持应该相当简单
在PyFtdi闪存设备API中,应该首先查看的match方法以检测更多兼容的闪存设备。
支持的SPI闪存命令
- 识别
基于检测到的SPI闪存设备自动选择SPI设备驱动程序
- 读取
从SPI闪存设备读取任何大小的字节序列,起始位置可以是任何位置
- 写入
将任意大小的字节序列写入SPI闪存设备,起始位置可以是任何位置
- 擦除
擦除SPI闪存设备块,其大小取决于闪存设备的能力,通常是4KiB和/或64KiB。
- 解锁
解锁任何受保护的闪存设备扇区
依赖关系
需要Python 3.5或更高版本。
需要PyFTDI 0.42或更高版本。
关于先前版本的通知
如果您别无选择,只能使用先前版本的Python(包括Python 2.x)或PyFTDI,请检查最新版本的PySpiFlash 0.4.1,它提供对这些已弃用的环境的支持,但不再积极维护。
PySpiFlash严重依赖于PyFtdi模块以访问SPI闪存设备。PyFtdi API已更改多次,请参见下面的兼容性矩阵。
setup.py脚本应负责这些依赖项。
PySpiFlash版本 |
PyFtdi版本 |
0.2.* |
0.9 .. 0.10 |
0.3.* |
0.11+ |
0.4.* |
0.13.2+ |
0.5.* |
0.20.0+ |
0.6.* |
0.42.0+ |
项目详细信息
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分布
构建分布
pyspiflash-0.6.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ec56867d4ef50e02484d5c472898af592475b7e17824a706585a5b5271e0d645 |
|
MD5 | 5bf232970c2dcbea9272f82484edde50 |
|
BLAKE2b-256 | 04cd4a2d4985bf38a434f571e8947410bf0a284da5bb117e54cec1d7e45989c0 |