Freescale的E300系列即通常意义上的MPC83XX,该系列CPU分为C1、C2、C3和C4四种,在vxWorks5.5.1中,由于没有 E300专用的库,一般都使用603的库,即G2LE架构。这两种架构对软件上基本相同,只有cache稍有差异,G2LE的Icache和Dcache 都是16K,而E300的C1和C4都有32K,C2和C3有16K。在使用C2和C3核的时候,使用603的库应该不存在问题。使用C1和C4的核时,可能会由于cache大小的差异,cacheDisable不能把全部内容刷到内存。影响仅限于此,cache的其他功能不受影响。
Cache flush的原理是从cachePpcReadOrigin读取两倍cache或3/2 cache size大小的内容,cachePpcReadOrigin是一个内存地址,一般是0x10000,通过读取这一段内容,把原来cache里面的数据 “挤”到内存中去。
一般来讲,即使cache size不一致,cacheDisable的影响也是概率性的。可以修改cacheAlib.s中cache的大小来修复这个问题。刷的内容多一点只是多耗费点时间,对于603架构不会有坏的影响。
阅读(1053) | 评论(0) | 转发(0) |