龙芯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】欢迎添加关注!文章转载请注明出处。

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

  1. 龙芯2k按键中断驱动_龙芯2k1000的中断设计

    龙芯2k1000的中断设计 1.前言 2.龙芯2k1000的中断描述 2.1 mips设计上的通用中断处理 2.2 龙芯中断的设计 3.龙芯2k1000中断的产生与处理 4.龙芯2k1000中断处理概 ...

  2. 龙芯2k按键中断驱动_外部中断按键驱动

    我的开发板上一共有四个按键,分别影射到GPF0.GPF2.GPG3.GPG11,当按下按键时分别产生0.2.11.19号外部中断.由于没有安装驱动,当按下按键时,没有任何反应.所以需要编写一个驱动,将 ...

  3. 龙芯2k按键中断驱动_字符设备驱动-高级篇按键中断程序驱动

    驱动源码: #include "linux/module.h" #include"linux/kernel.h" #include"linux/fs. ...

  4. 龙芯2k开发板Debian系统安装教程

    龙芯2k开发板Debian系统安装教程 1 准备安装u盘 1.1 获取u盘设备名 将U盘插入个人debian/ubuntu电脑,使用lsblk获取U盘设备名 我的u盘设备名为sdb(sda为我的主硬盘 ...

  5. 经验分享|在龙芯2K上运行RT-Thread系统并开源

    大家好,今天分享下群友老李在大四上学期做的一个项目.希望对大家有启发. 项目信息 项目名称:龙芯2K上的RT-Thread系统 学生姓名:李志锐 学校:聊城大学 大四在读 方案描述:该项目要求首先实现 ...

  6. 龙芯2k的X86环境交叉编译

    1.下载 龙芯内核交叉编译器(运行在X86_64机器上): http://ftp.loongnix.org/toolchain/gcc/release/gcc-4.4.7-7215-n64-loong ...

  7. 龙芯3号_龙芯3号首次成功移植Deepin深度系统!

    Deepin(深度)系统团队的龙芯平台移植工作已经取得突破性成果,Deepin桌面已经在龙芯3A和龙芯3B电脑上成功运行起来了. "龙芯"3B处理器采用32nm工艺制造,最多六核心 ...

  8. 龙芯中科官方宣布,龙芯中科企业办公信息化平台全面完成国产化替代

    4月4日,龙芯中科官方宣布,龙芯中科企业办公信息化平台全面完成国产化替代.龙芯 ERP 系统全系统使用国产化平台,私有化部署于基于龙芯 3C5000 服务器集群的虚拟化云平台上,使用自研 Loongn ...

  9. 奔跑吧!中国芯,北京迅为龙芯处理器平台

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

最新文章

  1. 模拟浏览器的神器 - HtmlUnit
  2. SQL Server 审核(Audit)-- 创建服务器级别的审核
  3. 当你工作压力很大的时候
  4. 基于Spring Boot的WebSocket应用程序并捕获HTTP会话ID
  5. 广东电网计算机专业笔试题目,广东电网笔试题目
  6. 不小心合并了icloud通讯录_苹果手机怎么恢复通讯录联系人号码?原来方法竟如此简单!...
  7. Command line is too long. Shorten command line for Application---微服务升级_SpringCloud Alibaba工作笔记0067
  8. cad坐标提取插件_如何快速地将CAD里的坐标提取到Excel中?最简单的方法你知道吗?...
  9. pycharm中的常用快捷键与常用设置
  10. Prometheus监控学习笔记之PromQL简单示例
  11. 64位Win7下安装Oracle11gr2以及PL/sql(32位)安装
  12. c语言语法大全,oc语言基本语法汇总分析
  13. 微信小程序布局 左右结构简单例子
  14. 腾讯音乐娱乐集团Q3财报亮眼:单季总营收75.8亿元破纪录,在线音乐付费用户历史性破5000万
  15. 解决尝试连接“ECONNREFUSED - 连接被服务器拒绝”失败的问题
  16. 强制客户端更新Silverlight XAP文件方法汇总
  17. python 安装scapy_安装scapy时出错
  18. 12个免费logo生成器
  19. 电话号码查询系统(链式结构)
  20. 少儿编程课程和乐高机器人有什么不同

热门文章

  1. python代码编辑器android_三款可以在安卓手机上运行Python代码的软件
  2. 怎么恢复三星全智能手机数据
  3. Cryptography Assignment(Ⅰ)
  4. 五一单片机之LCD1602
  5. 2022个人秋招总结
  6. html tdk标签,TDK标签是什么意思?什么是TDK标签?
  7. IEEE Trans 2006 使用K-SVD构造超完备字典以进行稀疏表示(稀疏分解)
  8. iOS performSelector方法总结
  9. 2022年深圳市生态环境专项资金申请指南
  10. 中兴面试2016 软件开发