全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com)
- PMU是编程存储单元的缩写,但是落实到了具体的硬件模块上其实是一个Flash模块。
- 在TC275中,只有一个PMU模块。
- 在所有的AURIX芯片中,只有PMU0支持BootROM的处理。
- 所有的额Flash的控制操作全都通过统一的接口FSI来实现。
这是PMU0相关的存储映射,每一个MCU的实现都是这个列表中的一个子集。
- DFlash必须以Round-Robin的模式来进行擦写以保证整个FLASH的寿命。
- BootROM主要是包含两部分功能:启动代码、测试固件。
- 擦除以及编程的操作结束之后,可以通过中断来提示。
- ECC的设计满足了ASILD-D的标准。
- 5V与3.3V有独立的编程模式,这个没有看懂是什么概念。应该不是说Flash有5V以及3.3V两种供电,这个之前看供电部分的时候信息应该非常确定。那么,这个意思或许是说在5V系统和3.3V系统之中,编程模式是偶差异的?
- DFlash与PFlash的操作是分开的,彼此之间不会有读取访问上的影响。
- 如同PFlash,DFlash在操作完成之后也可以触发中断提示。
- 从后面着色的这部分看,应该是说BootROM不可以更新?如果是进行写入操作的话会触发一个总线错误。
这一页的信息对于了解Flash的操作非常有用,因为把几个基本的概念都讲清楚了。
- 对于这个MCU来说,擦除意味着把所有的Flash全都写成逻辑0。Flash的擦除根据不同的Flash的属性,只能够以完成的物理分区、逻辑分区或者字行的形式来擦除。
- 而编程,也就是写入则是把一个存储单元写成逻辑1。
- 保持性是说在相应的时间内,Flash存储的信息可以稳定读取的一个事件。随着编程以及擦写循环的增加,这个保存事件会逐渐减少。
- 忍受度是一个寿命的概念,或者说是擦除次数的概念。这个针对不同的存储模块,数值是不行同的。
- 一个模块可能包含多个独立的bank,PFlash可能有一个或者多个Bank,而DFlash是有2个Bank。不同的Bank可以支持一定程度上的并发操作,但是并不是全部的操作都可以并发。
- 一个Bank可能包含多个分区,对于PFlash来说,是通过512K的分区来组成的。而DFlash则是分成了若干个逻辑分区。而逻辑分区,其实是通过分区来进一步拆分出来的。
- 页,在PFlash中是按照32个字节来对齐的,而在DFlash中是按照8个字节来对齐的。页是一个FLASH可以进行编程的最小单元。
- Burst是一个命令可以编程的最大的数据,PFlash中是8页,一共256个字节。DFlash中是4页,32个字节。
- 字行,这对于DFlash以及PFlash都是一样的,都是按照512个字节来对齐的。
- 所有的PFlash都是连续的,而且按照统一的分区结构。
这个就是一个PFlash的分区结构,总的一共是2M,如果低于2M那么肯定是后面的若干分区sector是裁剪掉了的。
这部分信息主要是介绍EEPROM的,或者说是FEE。相关的寿命等信息是可以从数据手册中查到的,从描述看,建议的组合最大值可能是总量的1/6左右,大概是64K。为什么会是这样的数值以及这个数据论断的由来是什么?暂且没有看到什么说明。