- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲 NiosII 嵌入式软核
Nios II嵌入式软核 Nios II的实现需要考虑以下3种折衷: ●功能部件或多或少 ●功能部件的包含与否 ●硬件实现或软件模拟 Nios II体系结构包含32个32位通用寄存器,6个32位控制寄存器。 1 Nios II处理器的ALU实现 Nios II处理器核的中断处理 当且仅当下面3个条件满足时,硬件中断才能产生: ◆状态寄存器的PIE位为1。 ◆中断请求输入irqn有效。 ◆中断使能寄存器中的相应位n为1。 2 Nios II的内部寄存器 ■通用寄存器 Nios II 体系结构提供32个32位通用寄存器,r0 到 r31。如下表所示。某些寄存器另有汇编程序能够识别的名字。Zero寄存器(r0)总是返回0,对r0写操作无效。Ra寄存器(r31)保存过程调用的返回地址,且call和ret指令隐含地访问它。 下表注释:(1) 该寄存器在用户模式下不可以使用。 (2) 该寄存器在用户模式或管理模式下均不可使用。它只能在JTAG调试模式下使用。 3 Nios II的操作模式 Nios II处理器有3种操作模式如下: ●管理模式 ●用户模式 ●调试模式 执行eret(异常返回)指令后,程序可从管理模式切换到用户模式。eret把estatus寄存器(ctl1)的内容复制到status寄存器中(ctl0),之后程序跳转到ea寄存器(r29)所指示的地址处。处理器复位后第一次进入用户模式时,系统代码必须对estatus和ea寄存器进行正确的设置,然后执行一条eret指令。 当某种异常出现时,处理器重新进入管理模式。所有的异常清除U位,且复制status的内容到estatus中。 当处理器进入调试模式时,系统和应用程序代码没有任何控制权,仅由软件调试工具来控制。当从调试模式退出时,处理器总是回到进入调试模式以前的状态。 4 NiosII的异常处理 异常是指程序离开正常流程的一种控制上的切换,异常可能由需要立即响应的处理器内部或外部的某一事件引起。异常处理是指响应异常所作的处理,并且返回到异常产生之前程序执行的状态。 产生异常时,处理器自动执行下面的操作: (1)复制status到estatus中,保存处理器异常前的状态。 (2)清除status寄存器中的U位,强迫处理器进入管理模式。 (3)清除status寄存器中的PIE位,禁止外部处理器中断。 4 NiosII的异常处理 (4)把异常返回地址写到ea寄存器中(r29)。 (5)转到异常处理程序首地址,查找中断源,执行异 常处理程序。 异常处理地址在系统创建时指定。 Nios II异常分类如下: ●硬件中断 ●软件陷阱 ●未实现指令 ●其他 4 NiosII的异常处理 ■硬件中断 当且仅当下列3个条件满足时,硬件中断才能产生。 ●status中PIE为1。 ●中断请求输入irqn有效。 ● ienable寄存器相应位n是1。 一旦产生硬件中断,PIE位为0,禁止进一步的中断。Ipending寄存器(ctl4)的值表明哪个中断源已提出中断请求。外设要保持irqn有效直到处理器响应该中断。 Ipending、ienable、PIE与中断产生的关系如下图所示 4 NiosII的异常处理 ■软件陷阱 当执行程序中的trap指令时,它产生一个软件陷阱异常。当程序需要OS服务时,可典型地设置一条trap指令。OS的异常处理程序确定trap产生的原因并做出相应的处理。 4 NiosII的异常处理 ■未实现指令 当处理器执行一条不是硬件实现的有效指令时,产生一个未实现指令异常。异常处理程序首先确定哪条指令产生了该异常。若指令未用硬件实现,控制被传递到用软件模拟实现指令操作的异常子程序中。 4 NiosII的异常处理 ■确定异常产生的原因
文档评论(0)