SylixOS嵌入式操作系统|论坛

 找回密码
 注册
搜索
查看: 8851|回复: 5
打印 上一主题 下一主题

关于移植Sylixos MMU问题

[复制链接]

2

主题

5

帖子

48

积分

新手上路

Rank: 1

积分
48
跳转到指定楼层
楼主
发表于 2016-5-24 10:58:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问Sylixos目前能在关闭MMU的情况下运行吗,我用的arm920t 虚拟机,将bsp中的mmu初始化屏蔽掉,系统就起不来了呢,求指点
回复

使用道具 举报

17

主题

81

帖子

1169

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1169
沙发
发表于 2016-5-26 22:06:45 | 只看该作者
arm920t 中断向量表在 0 地址,所以需要 MMU 映射到 RAM 起始地址,第二,有MMU 的机器要用 MMU 否则 cache 不能使用,不然没有页表管理的 cache 设备寄存器也被 cache 了,设备驱动就不能正常工作
回复 支持 反对

使用道具 举报

2

主题

5

帖子

48

积分

新手上路

Rank: 1

积分
48
板凳
 楼主| 发表于 2016-5-27 16:40:18 | 只看该作者
sylixos 发表于 2016-5-26 22:06
arm920t 中断向量表在 0 地址,所以需要 MMU 映射到 RAM 起始地址,第二,有MMU 的机器要用 MMU 否则 cache ...

谢谢,对于中断向量表的映射理解了,我在bspmap.h中也找到了这个映射关系,对于您后面所说的“没有页表管理的 cache 设备寄存器也被 cache 了”不知道理解的对不对,以下是我的理解,请您帮我看下:
1.一旦cache中记录了设备寄存器地址,以后获取设备寄存器的值的话不是从实际寄存器地址中获取,而是从cache中获取。这样的话,用volatile类型也解决不了这个问题吧,因为volatile只是对编译器有用,告诉编译器要从存储单元中重新取值,但是即使重新取值,处理器也还是从cache中取值。
2.如果采用mmu的分页管理,在对设备寄存器进行地址映射的时候,要设置成关闭cache的(因为能做cache映射是有条件的,很多设备寄存器都不满足这个条件),这样就解决了 1 中出现的问题吧。
3.总结起来就是说利用MMU的页表管理,满足cache映射的区域使用cache功能,否则关闭cache。
不知道想的对不对,请帮我看下,谢谢!
回复 支持 反对

使用道具 举报

17

主题

81

帖子

1169

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1169
地板
发表于 2016-6-7 10:36:44 | 只看该作者
你可以申请新的 IDE 了,BSP MMU 初始化部分代码已经经过重新设计
回复 支持 反对

使用道具 举报

4

主题

21

帖子

103

积分

注册会员

Rank: 2

积分
103
5#
发表于 2016-6-7 15:27:42 | 只看该作者
新的IDE申请多长时间可以审批啊,申请好几天了也没有回应
回复 支持 反对

使用道具 举报

2

主题

5

帖子

48

积分

新手上路

Rank: 1

积分
48
6#
 楼主| 发表于 2016-6-8 11:06:03 | 只看该作者
sylixos 发表于 2016-6-7 10:36
你可以申请新的 IDE 了,BSP MMU 初始化部分代码已经经过重新设计

好的,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|Acoinfo Inc. All Rights Reserved. ( 京ICP备15059934号

GMT+8, 2024-11-22 02:01 , Processed in 0.038981 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表