全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com)
关于这部分,感觉能够看到的比较有实践指导价值的信息不多。这里关于是否支持cache的信息,之前在内核手册等地方其实也看过了。
- DFlash不支持buffer命中的功能,从这方面看其实这一种Flash在操作的准确性上要求高,但是并不要求数据的吞吐能力。
- 系统复位或者上电复位之后,等待的时钟周期配置会被启动代码改掉。在进行不同频率的时钟切换的时候,需要注意到修改这个等待的时间参数。
- 如果应用比较在乎延迟的影响但是并不是很关注整体的数据吞吐量,那么可以使用请求读取的功能。
- 错误的地址访问会导致报错,从藕有一个错误置位。这里多少有点让我迷糊了一下,难道这个不会直接触发trap吗?
- 如果在请求读取服务过程中进行直接读取并不会被阻塞,而是以插队的方式实现。
- 正常模式下,一个Bank可能会有读取模式、命令模式。
- 在读取模式中可能会切换到page模式,而这个page模式其实是使能了接收数据用于编程的功能。
- HSM有一个专门的DFlash应用接口,这个允许HSM随时可以访问这个接口,即使是FSR中是BUSY的状态。
除了内存映射读取之外,所有的Flash操作都是以命令流的方式来实现的。
- FSI执行了Flash的命令,通过HSM以及CPU时间片的方式。其中,HSM的时间片是5ms,而CPU的时间片是50ms。
- 在HSM时间片中,执行的是HSM的命令。而HMS与CPU的身份是交替切换的。
这里跳过了一部分内容,其实是关于Flash的驱动实现流程的。关于FLASH的操作,一般来说都很少去自己写驱动而是直接用半导体厂商提供的,我也不去细致了解这个过程了。简单浏览了一下,跳过。而关于命令流的实施,以及9组如何实现,都在这一个表格中。