Chinaunix首页 | 论坛 | 博客
  • 博客访问: 570327
  • 博文数量: 65
  • 博客积分: 2844
  • 博客等级: 上尉
  • 技术积分: 996
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-02 12:01
文章分类

全部博文(65)

文章存档

2014年(7)

2012年(20)

2011年(35)

2010年(3)

分类: 嵌入式

2012-05-19 21:39:55

   1 MSR寄存器

MSRMachine State Register)寄存器用来设置E500内核的当前使用状态。这个寄存器基本上是初始化E500时第一个被配置的寄存器。该寄存器在E500内核中非常重要。MSR寄存器属于SLR寄存器组,但是mtsprmfspr指令不能访问该寄存器,E500内核使用专门的指令mtmsrmfmsr指令对MSR寄存器进行访问。修改MSRPR位可以进行用户模式与超级用户模式的切换。当PowerPC处理器运行在用户模式时,MSR寄存器的PR位为1。下面介绍其他位。

UCLEUser-mode Cache Lock Enable,第37位)。该位为1时,程序运行在PowerPC处理器用户模式时,也可以锁定Cache行。

SPESPE Enable,第38位)。该位位1时,使能E500内核的SPE部件。

WEWait State Enable,第45位)。该位与HID0寄存器的DOZENAPSLEEP位联合使用可以设置E500内核进入等待模式。

CECritical Enable,第46位),MEMachine Check Enable,第51位),DEDebug Interrupt Enable,第54位)位用来使能或关闭Critical异常、Machine Check异常和调试中断。

EEExternal Enable,第48位)。此位为1时,将使能外部中断,位0时屏蔽外部中断。当处理器进入外部中断处理时会自动关闭此位,屏蔽外部中断,以防止中断嵌套。支持中断重入的驱动程序需要在程序中重新使能此位。许多操作系统需要频繁的改动EE位。为此,E500内核专门设置了wrteewrteei指令对MSR寄存器的EE位进行修改。

ISDS(第58,59位)E500内核支持两个地址空间,分别为地址空间0和地址空间1IS位为1表示当前程序使用指令空间1IS位为0表示当前程序使用指令空间0DS位为1表示当前程序使用数据空间1DS位为0表示当前程序使用数据空间0

E500内核的内存管理与其他PowerPC内核有较大的差别,它不能关闭虚实地址转换功能。而许多PowerPC内核,如603E内核中可以关闭虚实地址转换功能,在603E中,IRDR位与E500内核的ISDS两位相对应。但是在603E内核中IRDR位用来使能和禁止地址与数据空间的虚实地址转换。

MSR寄存器还有一些其他位,这些位的详细描述见E500内核的参考手册。

阅读(1449) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~