和消费,工业MCU不一样,汽车MCU芯片内部的Flash一般会分PFlash(Program Flash),DFlash(Data Flash);一般还会通过Data Flash模拟EEPROM;另外一点不一样的是说,汽车MCU基本都是Embedded Flash,基本很少采用XIP(eXecute In Place)的方式;
1 PFlash和DFlash的参数 - Endurance,Page Size
如下图是TC336LP的PFlash和DFlash的Endurance(耐力),一般默认DFlash配置是Single ended sensing 模式(Complment 模式DFlash的可用大小减半),这个情况下, DFlash的擦除操作是PFlash的46倍以上;
2 PFlash的参数 - Wait Cycle
很久之前,小二学习单片机时候,发现程序经常跑飞,后面定位到原来是芯片的Flash Wait Cycle莫名被修改导致的;
CPU速率很高,比如TC336,最高可以跑300MHz,但是诸如PFlash的速率是不够的,需要有响应时间,否则读取的结果就是错误的;这就是Wait Cycle的由来;
如下图:
可以看到,本地访问PSRR是0等待,也就是单周期执行,对于时间敏感的一些程序,就会放到PSPR里面跑;
同理,如下图,数据读写也是一个道理