名词缩写:
PMU: Program Memory Unit; 主要负责Flash Memory 和 BootRom的控制,并把他们连接到SRI CrossBar.
SPB: System Peripheral Bus;
SRI: Shared Resource Interconnect;
ECC: Error Correction Code;
HSM: Hardware Security Module;
UCB: User Configuration Blocks;
FSI: Freeze Status Indicator;
LMU: Local Bus Memory Unit;
PMI: Program Memory Interface;
FPU: Floating Point Unit;
SFI Bridge: Shared Resource Interconnect to FPI Bus Interface
FPI: Flexible Peripheral Interconnect (Bus protocol)
EBU: External Bus Interface
AURIX TC29x 芯片架构
TC297 PMU/FSI/Flash Basic Block Diagram
TC297仅有1个PMU,即PMU0,包括:
- PF0: 2MByte
- PF1: 2MByte
- PF2: 2MByte
- PF3: 2MByte
- DF0:
-DF_EEPROM (768KB),96 logical sectors “EEPROM0 … EEPROM95”
-DF_UCB (16KB),Flash area for protection data (16 logical sectors “UCB0 … UCB15” with 1 KByte each). - DF1: DF_HSM (64KB)
Note:
在MIPS里,程序地址空间被分为了kseg0,kseg1等区域,其中kseg0是0x800000000x9FFFFFFF,它是非映射的、cached;kesg1是0xA00000000xBFFFFFFF,它是非映射的,uncached。也就是说:0x82001234和0xA2001234指向的物理地址是相同的,但是MIPS对它们的访问方式不同,当取指后CPU得知要访问的是kseg0的空间,会想去cache寻找目标内存,若找不到,才会去物理地址寻找,而如果要访问的地址空间是kseg1内,则CPU会绕过cache,直接去物理地址里进行读和写。https://blog.csdn.net/wbwwf8685/article/details/52091900
一些术语:
- Page:可以编程的最小单位,PFlash中的Page是32 bytes,DFlash中的Page是8 bytes.(ECC宽度)
- Program Burst:一个命令可以编程的最大数据量;PFlash中是8 Pages(256 bytes),DFlash中是4 Pages(32 bytes)
- Word-Line:PFlash & DFlash 中一组对齐的数据,512 bytes。
- Logical Sector:由若干Word-Line组成,可以由一个操作进行全部擦除;
- Sub-Sector:由若干独立的Logical Sector组成,比如DF_UCB是属于“DF0”Bank下的"Sub-Sector"。PFlash是由512KBytes的物理 Sub-Sectors组成,DFlash是由逻辑Sub-Sectors组成。
- Bank:比如PF0、PF1、PF2、PF3、DF0、DF1;共6个Bank,支持并发操作。
- Fls Module:一个PMU包含一个Fls Module,以及它的逻辑操作。
- User Configuration Block “UCB”:特殊的Logical Sector,是DF_UCB的一部分。包含一些保护设置,以及用户的一些配置。
Bank-PFx的结构
偏移地址是相对于上表中的0x8000 0000, 0x8020 0000等。
*Note:
1、PF0中的S0, S3, S7, S8 四个Sector包含BMI Headers。
2、PF0中的S6, S16 and S17被用作HSM code sectors,对其的read,program,erase操作与其他的Sectors不一样。
3、PF0中的S5被用作调试保护。
Bank-DF0的结构
Bank-DF1的结构
Note:
1、DF_EEPROM和DF_HSM所有的Sectors都必须循环使用,以防止静态扇区中擦除影响的累积。
2、使用寿命,DF_EEPROM中擦除命令的数量由参数NERD0限制;DF_HSM由NERD1限制。
3、DF_EEPROM和DF_HSM中,一次擦除命令最多擦除384KByte的空间。
未完待续。。。。
FLS模块针对的就是DF0_EEPROM这部分区域。