龙芯2k按键中断驱动_龙芯2k1000的中断处理逻辑

news/2025/4/1 5:06:40/

龙芯2k1000的中断设计

1.前言

2.龙芯2k1000的中断描述

2.1mips设计上的通用中断处理

2.2龙芯中断的设计

3.龙芯2k1000中断的产生与处理

4.龙芯2k1000中断处理概述

1.前言

中断与异常在任何体系架构的芯片上都不会完全一样。在arm的m系列芯片上需要理解NVIC,这个相对较为容易,而对于高端一些的芯片,中断的处理就会复杂许多。比如arm上的gic(GenericInterruptController)。要使用好GIC则需要专门去读这个外设的手册,然后写中断控制。对于MIPS中断控制的处理流程,就是本文描述的重点。

2.龙芯2k1000的中断描述

龙芯2k1000最多支持64个中断的触发源,按照统一方式进行管理。

这64个中断控制器通过可以配置的中断路由可以分配到CPU0与CPU1中。

在这64个中断中又需要按照需要路由到4个队列上。

2.1mips设计上的通用中断处理

在MIPS的中断设计上,MIPSCPU会设计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上的中断处理可以读取c0cause寄存器,得到mips发生中断或者异常的原因。

因为此时MIPS还只有7个中断信息,需要再次读取龙芯中断控制器的中断,才能准确的得到中断产生的原因。

最后可以通过rt-thread的中断处理的回调函数处理具体的中断信息。

4.龙芯2k1000中断处理概述

龙芯2k1000利用mips上的8个中断位,自己添加了一个中断控制器,该中断控制器可以配置中断的路由方式,比如让其路由到CPU0或者CPU1上,并且可以指定每个中断路由到具体的mailbox上。

根据mailbox的设计,当中断发生时首先通过mips上的c0casue大致确定其中断的原因,接着通过龙芯2k1000的中断控制器,读取状态从而分析得到具体的外设中断。

上述则是龙芯2k1000中断处理逻辑。

责任编辑:xj

原文标题:龙芯2k1000的中断设计

文章出处:【微信公众号:嵌入式IoT】欢迎添加关注!文章转载请注明出处。


http://www.ppmy.cn/news/866882.html

相关文章

龙芯3A4000处理器解读①

龙芯3A4000处理器解读 关于3A4000的处理器结构简单做一下自己的相关分析,希望可能通过此次深入分析,更加了解处理器的结构. 文章目录 龙芯3A4000处理器解读简介3号(3A)硬件结构 简介 龙芯3A4000是一款四核处理器,采用28nm工艺制造. 目前市场上基于3A4000的PC大多数工作频率在…

龙芯源码编译mysql_使用源码包在龙芯2F上安装mysql

最近想在龙芯2F电脑上搭建一个网站,不过2F没有装mysql。没想到装这个mysql还挺费劲,光编译都有好多遍了。现在把过程记录,以后留着参考: 龙芯电脑不能使用mysql网站上rpm因为那是针对x86架构CPU的。没办法只有下一个源码包&#x…

统一操作系统 UOS 龙芯版上线

不久前我们报道过由包括中国电子集团(CEC)、武汉深之度科技有限公司、南京诚迈科技、中兴新支点在内的多家国内操作系统核心企业自愿发起“UOS(unity operating system)统一操作系统筹备组”,以共同打造“UOS 统一操作系统”。官方介绍称&…

体外诊断IVD原料上游原材料——博迈伦

体外诊断(IVD)指将人体的血液、体液等从人体内取出作为样本进行检测进而对疾病进行诊断,被称为“医生的眼睛”。作为临床诊疗中最主要的诊断方式,体外诊断为临床诊断提供了80%的信息,因此,IVD行业已经成为全…

龙芯CPU处理器和芯片资料介绍

龙芯是中国科学院计算所自主研发的通用CPU,采用RISC指令集,类似于MIPS指令集。龙芯1号的频率为266MHz,最早在2002年开始使用。龙芯2号的频率最高为1GHz。龙芯3A是首款国产商用4核处理器,其工作频率为900MHz-1GHz。龙芯3A的峰值计算…

龙芯3A4000 VNC配置

安装 yum install tigervnc-server -y 拷贝配置文件 cp /lib/systemd/system/vncserver\.service /lib/systemd/system/vncserver:1.service修改配置文件 vim /lib/systemd/system/vncserver:1.service替换< USER>为用户名 配置、启动vnc systemctl enable vncs…

龙芯CPU芯片架构分析

龙芯架构 龙芯指令集&#xff1a; CPU访存指令 24个 全部来自MIPS CPU算数指令&#xff08;ALU) 10个 全部来自MIPS CPU算数指令 14个 全部来自MIPS CPU乘除指令 12个 来自MIPS 12个 来自龙芯&#xff08;其中8个重复MIPS指令功能&#xff09; CPU跳转分支指令20个 全部来自MIP…

龙芯平台下的设备树

设备树 设备树 (Device Tree) ,起源于Arm嵌入式设备. 是一种描述硬件的数据结构. 在最初调试多U多串的龙芯定制化工控平台时,使用过这个接口. 在linux内核中也有对应的设备树的介绍,与BIOS下的描述一一对应. 内核下会优先使用从BIOS内获取的设备树资源,如若没有,将使用内核下默…