缺省情况下,MMU在上电之初将MMU配置成段模式(BAT),每个段管理一大片内存,全部的内存只需要8个段就能管理了。在2400上,vxWorks 加载时会重新配置,MMU被配置分页的模式,两级级描述符,每个二级描述符管理4K内存。但是在2350上,bsp没有重新配置MMU。实际应用中需要将内存配置成分页的形式(4K的页表),这样使用起来更灵活。但是我们尝试在加载vxWorks时重新配置为分页的模式,总是不成功。2350上,物理地址是33位,这一点与2400等CPU不同,在分段的MMU模式下,使用描述符中的第20位来反映最高位的物理地址,不清楚在分页的模式下,描述符中的哪一位来反映最高位物理地址,是2350不支持4K的映射方式吗?
IXP2350与IXP2400不同,其物理地址已经超过32bit,为33bit,在vxworks5.5.x的lib里面是没有提供对超过32bit 的物理地址范围的MMU映射功能的,在vxworks6.3以上的版本中为实现这个功能,增加了Manzano库,
#if (ARMMMU == ARMMMU_MANZANO)
/* Install the appropriate MMU library and translation routines */
mmuMANZANOLibInstall (sysPhysToVirt, sysVirtToPhys);
这个库提供了supersection模式(支持超过32bit物理地址映射),因此不升级操作系统的话,不能简单的套用类似2400的方式,而要自己编写类似Manzno MMU的库。
阅读(586) | 评论(0) | 转发(0) |