龙芯2k1000的中断设计
1.前言
2.龙芯2k1000的中断描述
2.1 mips设计上的通用中断处理
2.2 龙芯中断的设计
3.龙芯2k1000中断的产生与处理
4.龙芯2k1000中断处理概述
1.前言
中断与异常在任何体系架构的芯片上都不会完全一样。在arm的m系列芯片上需要理解nvic,这个相对较为容易,而对于高端一些的芯片,中断的处理就会复杂许多。比如arm上的gic(generic interrupt controller)。要使用好gic则需要专门去读这个外设的手册,然后写中断控制。对于mips中断控制的处理流程,就是本文描述的重点。
2.龙芯2k1000的中断描述
龙芯2k1000最多支持64个中断的触发源,按照统一方式进行管理。
这64个中断控制器通过可以配置的中断路由可以分配到cpu0与cpu1中。
在这64个中断中又需要按照需要路由到4个队列上。
2.1 mips设计上的通用中断处理
在mips的中断设计上,mips cpu会设计8个独立中断位。
其中,6个外部中断(ip2 ~ ip7),2个软中断(ip0~ip1)。片上的计数器/定时器会连接到一个硬件中断位上去。
2.2 龙芯中断的设计
对于对于每个核上的ip0~ip3,其对应的是 cp0_status 的 ip2 到 ip5。ip7用于定时器中断。
在中断设计这一块,这64个中断又可以分为低32位与高32位,对于低32位可以将每个中断路由到cpu0,mailbox0,也就是对应ip2。对于高32位,可以将每个中断路由到cpu0,mailbox0,也就是对应ip3。
根据上述的寄存器配置每个中断的路由即可。
3.龙芯2k1000中断的产生与处理
在rt-thread上,将异常处理向量表通过链接脚本放到代码段的头部。
然后通过写中断向量表地址到向量基地址寄存器中。
如果有中断发生,则可以跳转到中断向量表去执行相关的中断处理程序。
mips上的中断处理可以读取c0 cause寄存器,得到mips发生中断或者异常的原因。
因为此时mips还只有7个中断信息,需要再次读取龙芯中断控制器的中断,才能准确的得到中断产生的原因。
最后可以通过rt-thread的中断处理的回调函数处理具体的中断信息。
4.龙芯2k1000中断处理概述
龙芯2k1000利用mips上的8个中断位,自己添加了一个中断控制器,该中断控制器可以配置中断的路由方式,比如让其路由到cpu0或者cpu1上,并且可以指定每个中断路由到具体的mailbox上。
根据mailbox的设计,当中断发生时首先通过mips上的c0 casue大致确定其中断的原因,接着通过龙芯2k1000的中断控制器,读取状态从而分析得到具体的外设中断。
上述则是龙芯2k1000中断处理逻辑。
原文标题:龙芯2k1000的中断设计
文章出处:【微信公众号:嵌入式iot】欢迎添加关注!文章转载请注明出处。
MDK-ARM V5.28的Bug被修复了吗 ?
GE科学家团队展示可承受超过 800°C的 SiC MOSFET
iphone8最新消息,iphone8什么时候上市,iphone8无线充电技术遇瓶颈,原因竟是软件不兼容?
2020年的云计算有怎样的趋势
关于电气火灾监控系统在某酒店中的设计与应用
龙芯2k1000的中断处理逻辑
华为哈勃入股EDA企业,投资平均每月一家;联发科成Q3手机芯片大赢家 | 一周科技热评
巴航工业首架交付巴西空军的KC-390多用途运输机已总装完毕
iphone8什么时候上市?iphone8最新消息:iphone8:全面屏+多屏操控+后置双摄,不买小米6只等他
UV热固胶如今已经成为了光电行业的新宠
中芯14纳米FinFET制程良率达95%,预计2019量产
从资本开支、盈利能力和产业政策扶持找出真正风口行业的系统性投资机会
离线式LED驱动电路设计方案
人工智能技术红利开始兑现!科大讯飞发布多款AI新品
异步传输,异步传输是什么意思
IBM推出可持续发展软件新能力,帮助企业实现高效精准的范围3温室气体核算及报告
微软停止提供Win11免费升级通道
Aigtek安泰电子|与您相约2023全国声学大会!
音频均衡器电路图分享
物联网应用正在改变整个房地产格局!