全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com)
- 这里提到的这个复位读取操作,复位的对象其实是当前的操作,也就是命令序列。
- 主要是命令序列的最后一个命令还没有被接收到,都可以被这个命令中断。
- 在复位的过程中会清除错误标志位,包括HSM相关的存储也会受影响。
- 进入page模式之后,可以按照page进行小数据块的操作。之前看过,PFlash的page大小是32个字节而DFlash的Page大小是8个字节。
- Page的加载其实是服务于后面的额写入操作的。
- 一个page擦了之后,只能够进行一次写入。
- Page的一次性写入功能跟page写入的功能相似,但是多了一个检查的功能,只有PFlash才支持。
- 迸发写入可以支持更大的数据吞吐量,对于PFlash来说,一次支持8个page,共256个字节。DFlash支持4个page,共32个字节。
- 逻辑分区可以按照范围进行擦除,DFlash的实际的擦除持续时间可能会比文档中标注的时间短很多。
- 验证逻辑区块的范围擦除信息主要是验证两部分,一个是是否全都变成了0,另一个是ECC是否异常。
- 接下来的操作室一个恢复编程以及擦除的操作。
- 禁用保护,需要提供正确的密码之后执行禁用。如果所有的密码中只要有一个错误,接下来的禁用操作会全部失效,除非进行重启。
- 可进行恢复保护以及清状态等操作。
- 逻辑区块的擦除验证是可以挂起以及恢复的。
- 正常命令以接口以及HSM的存储操作分别可以最多有一个挂起操作存在。
- 编程操作挂起之后,不能够进行新的编程。
- 擦除动作挂起之后,也不能够进行新的擦除操作。
- 验证动作挂起的时候,接下来不能够进行擦除但是可以进行编程。
- 对于电压的选择来说,如果采用P5V的时候,PFlash的读取效率会好一些。如果是针对DFlash,最好还是采用3.3V,这种供电下的鲁棒性会好很多。
- 保护提供了信息安全、功能安全以及预防错误操作等功能。
这里画出来了几个之前看文档看到的比较多且比较通用的保护方式:ENDINIT、OTP以及通过HSM进行锁定等方式。
这里涉及到的两个访问操作其实可以从两个方面进行更加形象的总结,一个是进行角色权限的设置,理你个测试进行ENDINIT等功能安全的防护。
这样,对于Flash的操作暂且做这些小结。虽然Flash的操作基本上都是有成熟的库来支持的,但是了解一下总归可以能够让我们更清晰地认识这个系统的设计。不过,这个Flash的设计看起来的确蛮复杂的。