0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

龙芯2k1000的中断处理逻辑

嵌入式IoT 来源:嵌入式IoT 作者:嵌入式IoT 2021-01-07 10:41 次阅读

龙芯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个中断的触发源,按照统一方式进行管理。

1cdd4ae6-5074-11eb-8b86-12bb97331649.png

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

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

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

在MIPS的中断设计上,MIPS CPU会设计8个独立中断位。

1d30c07c-5074-11eb-8b86-12bb97331649.png

其中,6个外部中断(IP2 ~ IP7),2个软中断(IP0~IP1)。片上的计数器/定时器会连接到一个硬件中断位上去。

2.2 龙芯中断的设计

对于对于每个核上的IP0~IP3,其对应的是 CP0_Status 的 IP2 到 IP5。IP7用于定时器中断。

1d68b180-5074-11eb-8b86-12bb97331649.png

在中断设计这一块,这64个中断又可以分为低32位与高32位,对于低32位可以将每个中断路由到CPU0,Mailbox0,也就是对应IP2。对于高32位,可以将每个中断路由到CPU0,Mailbox0,也就是对应IP3。

1d99b528-5074-11eb-8b86-12bb97331649.png

根据上述的寄存器配置每个中断的路由即可。

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

rt-thread上,将异常处理向量表通过链接脚本放到代码段的头部。

1dc9b732-5074-11eb-8b86-12bb97331649.png

然后通过写中断向量表地址到向量基地址寄存器中。

1df38ddc-5074-11eb-8b86-12bb97331649.png

如果有中断发生,则可以跳转到中断向量表去执行相关的中断处理程序。

MIPS上的中断处理可以读取c0 cause寄存器,得到mips发生中断或者异常的原因。

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

1e1f4a44-5074-11eb-8b86-12bb97331649.png

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

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

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

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

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

责任编辑:xj

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47781

    浏览量

    409085
  • 龙芯
    +关注

    关注

    2

    文章

    303

    浏览量

    30859
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41022
  • 2K1000
    +关注

    关注

    0

    文章

    19

    浏览量

    521

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

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

收藏 人收藏

    评论

    相关推荐

    [广东龙芯2K1000/2K500开发板]如何利用coredump 进行调试

    -sh total 508K 16K a.out488K core 调试(PC 机上) 将板卡上运行生产的core 文件复制到PC 机上,然后使用交叉工具链中的gdb 进行调试。 调试步骤: 启动
    发表于 02-20 13:05

    [广东龙芯2K1000/2K500开发板] OpenWRT 使用说明

    如何编译 从BSP 包的文件系统目录下找到OpenWrt 的源码并解码。 ##源码中已包含2k500和2k1000板卡的配置 ##2k500的配置名为loongson_2k
    发表于 02-19 14:40

    全国大学生计算机系统能力大赛操作系统设计赛-LoongArch 赛道广东龙芯2K1000LA 平台资料分享

    限于开发板和2k1000处理器用户手册,主板设计资料,uboot、内核和文件系统二进制以及源代码等信息。 在线论坛 开发者社区 龙芯2K1000LA
    发表于 02-04 15:37

    迅为2K1000核心板在能源管理系统产品方案

    迅为2K1000核心板在能源管理系统产品方案
    的头像 发表于 11-17 14:15 216次阅读
    迅为<b class='flag-5'>2K1000</b>核心板在能源管理系统产品方案

    迅为龙芯2K1000开发板加载PMON镜像

    ://192.168.1.38/gzrom-dtb.bin,其中 192.168.1.38 为虚拟机 Ubuntu 的 IP 地址,如下图所示 烧写完成后重启开发板 PMON 即可更新成功。 更多文档可以查看 B站搜索-北京迅为2K1000开发板, 公众Hao关注:北京迅为,
    发表于 10-24 10:58

    迅为LS2K0500开发板动态电源管理龙芯自主指令架构

    CPU 迅为LS2K0500开发板采用龙芯2K0500处理器,基于龙芯自主指令系统 (LoongArch) 架构,片内集成64位LA264
    发表于 09-28 11:15

    龙芯2K1000核心板在智能座舱行业产品方案

    龙芯2K1000核心板在智能座舱行业产品方案-迅为电子
    的头像 发表于 09-26 14:18 497次阅读
    <b class='flag-5'>龙芯</b><b class='flag-5'>2K1000</b>核心板在智能座舱行业产品方案

    迅为龙芯2K1000开发板通过汇编控制GPIO

    些。 我们打开 Targets/LS2K/ls2k/start.S 下的 start.S 文件,我们在 9.4.2 小节里面已经确定了他的位置,这里 就不在赘述了。 然后我们在第 487 行输入以下
    发表于 09-26 10:58

    Banana Pi BPI-5202中科龙芯2K1000嵌入式工控机扩展方案设计

    ,进行开发并产品化 Banana Pi BPI-5202 中科龙芯2K1000嵌入式工控机[]() PCBA 规格 处理器及OS 龙芯2K1000
    发表于 09-13 12:18

    Banana Pi推出基于龙芯2K1000LA处理器的信创工业控制开发平台

    处理器芯片。龙芯2K1000 处理器集成两个GS264 处理器核,芯片外围接口包括两路x4 PCIE2.0、一路SATA2.0、4 路USB
    发表于 09-04 12:30

    Banana Pi推出基于龙芯2K1000LA处理器的信创工业控制开发平台

    Banana Pi推出基于龙芯2K1000LA处理器的信创工业控制开发平台:BPI-5202信创工业控制开发平台
    的头像 发表于 09-04 09:40 1007次阅读
    Banana Pi推出基于<b class='flag-5'>龙芯</b>2K<b class='flag-5'>1000</b>LA<b class='flag-5'>处理</b>器的信创工业控制开发平台

    广东龙芯LS2K500先锋板使用入门

    /LoongArch-Processor-SMBIOS-Spec-EN.html 6.龙芯架构文档 https://loongson.github.io/LoongArch-Documentation/README-CN.html 【广东龙芯
    发表于 05-27 12:05

    广东龙芯2k500先锋板及2k1000星云板网络配置

    是使用2k1000 星云板作为例子,设置ip,此板卡存在两个网口。 可以看见下面有两个配置选项。这两个选项是在系统第一次开机的时候写入的。但是这个动作是人为规定的。即配置的名字只是一个例子,不是每个
    发表于 04-29 10:38

    广东龙芯2K500先锋板规格书

    广东龙芯2K500先锋板接口图 广东龙芯2K500先锋板运行图 广东龙芯2K500开发板参数
    发表于 04-27 09:07

    广东龙芯2K1000LA星云板规格书

    广东龙芯2K1000星云板接口图 广东龙芯2K1000星云板整机图 广东龙芯2K1000星云板
    发表于 04-27 08:59