- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Nios II中断机制
目标:1.需要解析NiosII中断功能的基本特性,中断响应的方式,中断向量(Interrupt Vector)的分配方式。2.如果,我们自行设计一个IP,需要NiosII能够响应这个IP所产生的中断请求,那么在IP的rtl设计中有哪些要求,同时NiosII的程序中该如何实现?要求1.必须实现一个样例工程,在SOPC中集成一个专门用以提中断并让NiosII执行一个响应程序的小IP(该IP的基本结构图所示),并完成图右伪码所描述的过程。实现相应的程序,并能够在FPGA上跑通。2.最终必须提交一份文档,详细描述NiosII中断相关功能和工程实现方法,一定要言简意赅,并且尽量做到面面俱到。3.最迟8月1日前完成,越早越好。其他1.SOPC的相关使用方法,以及如何在SOPC中加入一个自己设计的IP,请去908室让一位师兄给你们集体培训一下,一个下午足矣。2.NiosII的相关文档请至altera的网站上寻找,网址如下:/support/ip/processors/nios2/ips-nios2_support.html3.一些相关的东西,908的郑勇师兄以前了解过,可咨询他。4.FPGA板,用908里的180,用的时候从908拿,用完还回去。Nios II中断处理机制之硬件实现首先介绍下Nios II CPU处理中断的3个控制寄存器(1).status control Register:它的bit0位(PIE)是全局中断允许位,置1表示使能;(2).ienable control Register:是中断允许寄存器,其中每一位控制着一个中断源,1代表允许,0代表禁止,共32位;(3).ipending control Register:每一位对应着一个中断源的中断请求,1代表有中断,0代表没有……共32位。下图显示了硬件中断的产生中断的产生1 .timer中断Nios II自带的timer模块,counter从高位计数减到0,在中断使能的情况下,产生中断请求信号。图1 timer寄存器在SOPC Builder中例化32位Timer,技术周期500ms.2.PIO中断Nios II自带的PIO模块,定义一位input only port PIO命名为KEY。输入为高电平时,在中断使能的情况下,产生中断请求信号。assignirq = (data_in irq_mask);二、NiosII的中断处理过程把status寄存器内容复制到estatus寄存器中,保存当前处理器状态;清除status寄存器全局中断允许位PIE,禁止中断;将下一条将执行的指令的地址存入R29,以便中断返回之用;跳转到中断入口地址,进入系统ISR;系统ISR保护现场;系统ISR检测estatus寄存器的PIE位,如为0则进入软中断处理程序从11继续,否则由7继续;系统ISR检测ipending control Register,如果有中断申请,则转到硬中断处理和序,否则进入软中断处理程序;硬中断处理程序将检测中断申请号,并检索中断向量表,跳转到用户中断处理程序;用户中断处理程序做出具体的处理,最后返回系统ISR;系统ISR恢复现场,并返回;软中断处理程序进行陷井指令、模拟指令判断,并做相应处理,然后返回系统ISR;系统ISR恢复现场并返回;注释:中断向量表存储在Exception memory下,而中断服务程序存储在program memory下。Nios II中断处理机制之软件部分Nios II 中所有的中断处理都从同一入口进入,然后由软件加以分配。负责分配工作的软件叫系统ISR,它是由开发系统提供的,自动的连接到可执行程序上。系统ISR维护着一个中断向量表,表中的每一项代表着一个专项处理程序的入口。处理程序由用户定义然后注册到中断向量表中的,叫做用户ISR。系统ISR的入口地址是在SOPC_Builder中定义的(Exception Address,可在sopc builder中cpu配置中修改)。ISR(Interrupt Service Routine)中断服务凼数是为硬件中断服务的子程序。NIOS II 处理器支持32 个硬件中断,每一个使能了的硬件中断都应该有一个ISR 与之对应。中断产生时,硬件中断处理器会根据检测到的有效中断级别,调用相应的 ISR为其进行中断服务。 注册中断凼数 ISR它的凼数原型如下所示:Intalt_irq_register(alt_u32 id, void* context, void(*handler) (void*,alt_u32)); id:中断优先级,即所注册的 ISR是为哪个中断优先级的中断服务的。中断优先级在 SOPC Builder 中分配的。Context:为所注册癿的ISR传递参数,可以是NULL; Handl
您可能关注的文档
- 脚踏式休闲车设计毕业论文.doc
- Chassis 001 底盘.doc
- matlab实现的C4.5分类决策树算法.docx
- 人大附 七上 期中 15-16.docx
- 大学本科专业英语 第七册10.doc
- Djnet音色 Djent Tone.doc
- 浅谈中国八大菜系的形成因素.docx
- 蛋白质分析相关数据库及网站.docx
- 钢琴艺术史试卷.doc
- Windows+中不规则窗体的编程实现.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)