MC9S12XE系列芯片关于分区的知识
MC9S12XE系列芯片DFLASH EEE分区说明
编程器的用户对于DFLSH EEE 分区 这些概念不清楚,在工作中常常会有疑问的存在,现在就给大家做以解释说明。想要学习了解知识的请仔细阅读,只想现依赖设备简单搞定一切的朋友请绕行,以下知识略微烧脑。
DFLASH和EEE共用一个数据空间,可以理解成数据空间就是一个物理硬盘,然后DFLASH和EEE就是硬盘上的分区,比如说DFLASH是C盘,EEE是D盘。我们可以把整个硬盘全部分给C盘或者全部分给D盘,或者C盘和D盘同时存在。
所有MC9S12XE系列芯片数据空间大小是32KB, 如果全部分给DFLASH的话,DFLASH为32KB(宝马CAS4+就是这样划分的,所以CAS4+没有EEE)。
如果全部分给EEE的话,EEE大小为4KB(大致可以理解为EEE每1KB需要占用数据的8KB,如果EEE为4KB则全部空间32K将被完全使用,例如宝马E底盘FRM)
一部分分给DFLASH,一部分分给EEE的话(DFLASH+EEE*8<=32kb< span=''>,例如路虎KVM)
EEE分配1K就要占用8K的空间,原因是里面使用了部分空间做了缓存。
DFLASH和EEE的大小在芯片正常情况下,是可以读到大小信息的(就是分区信息),
在使用xhorse产品读取9S12XE芯片时,会自动根据芯片分区信息去读取对应大小的数据出来。但是以下几种情况需要注意:
1 该芯片支持不分区直接使用(类似直接使用了一个物理硬盘),这种情况下读到的分区信息为FFFFF(软件会提示分区异常),实际数据为DFLASH 32K EEE没数据(部分模块上会这样应用)
*如果一个模块读取数据时提示分区错误,但是模块本身能够正常工作,那就是没有做分区直接使用的。
2 该芯片在正常工作时有一定概率会丢失分区信息,这种情况下读到的分区信息也是FFFF(例如宝马E底盘FRM)。
*这种情况下模块通常不能正常工作
*分区信息丢失的情况下,读取EEE空间没有意义,读到的数据每次都会变,和实际数据没有关联
*分区信息丢失的情况下,强行设置DFLASH 32kb大小,可以把实际的DFLASH和EEE数据读出来(注意EEE数据读到后并不是真实数据,需要通过算法转换后才能变为真实EEE数据)
3 芯片在加密状态下无法通过备份读选项直接读取EEE数据,所以像路虎KVM这种,需要读取EEE数据的,一定要先解锁芯片,再读取EEE数据。