新闻中心

EEPW首页>嵌入式系统>设计应用> ARM存储器之:存储管理单元MMU

ARM存储器之:存储管理单元MMU

作者: 时间:2013-09-30 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/257009.htm

(2)一个快速上下文切换的例子

图15.39显示了一个从任务1切换到任务2之前和之后的存储器布局。

任务1正在运行

任务2正在运行

图15.39快速上下文切换扩展例子

从图中可以看出,任务1和任务2都运行在0x00000000~0x01ffffff的地址空间。从任务1切换到任务2域控制要做相应的改变。通过在CPU和之间加FCSE使系统的虚拟地址空间映射没有改变,所以不需要清除(Flush)或清理(Clean)Cache或TLB。

使用FCSE时执行一次上下文切换需要的步骤:

①保存执行任务的上下文,并将执行任务设置为睡眠态;

②将唤醒任务的进程ID写到CP15的寄存器c13中;

③通过写CP15的寄存器c3,将当前任务的域设置为不可访问,而唤醒任务的域设置为客户访问;

④恢复唤醒任务的上下文;

⑤继续执行被恢复的任务。

下面是关于FCSE的一些提示。

①任务在大小上有固定的最大32MB的限制。

②存储管理必须使用有固定起始地址(32MB的倍数)的固定32MB分区。

③除非想为每个任务管理一个异常向量表,否则使用CP15寄存器c1的V位将异常向量表放置在虚拟地址0xffff0000。

④必须定义和使用一个活跃的域控制系统。

⑤如果使用域来保护各个任务,则除非修改一级页表中域的相应位,并在上下文切换时清除TLB,否则最多只能有16个并发任务。

存储器相关文章:存储器原理



上一页 1 2 3 4 5 6 7 8 9 10 下一页

评论


相关推荐

技术专区

关闭