Chinaunix首页 | 论坛 | 博客
  • 博客访问: 569273
  • 博文数量: 169
  • 博客积分: 2656
  • 博客等级: 少校
  • 技术积分: 1685
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-30 13:03
文章分类

全部博文(169)

文章存档

2011年(1)

2010年(135)

2009年(33)

我的朋友

分类: 嵌入式

2010-05-14 13:09:36

缺省情况下,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的库。
阅读(504) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~