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

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

    关注

    455

    文章

    50769

    浏览量

    423379
  • 龙芯
    +关注

    关注

    3

    文章

    340

    浏览量

    31246
  • 中断
    +关注

    关注

    5

    文章

    898

    浏览量

    41484
  • 2K1000
    +关注

    关注

    0

    文章

    21

    浏览量

    571

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

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

收藏 人收藏

    评论

    相关推荐

    Banana P开源社区基于龙芯芯片方案的产品化设计

    网络安全、移动智能终端、高性能边缘计算场景应用需求的双核处理器芯片。龙芯2K1000 处理器集成两个GS264 处理器核,芯片外围接口包括两
    发表于 11-30 14:00

    龙芯嵌入式边缘计算高级师资培训会成功举办

    近日,龙芯中科携手成都工业学院计算机学院在宜宾举办为期3天的龙芯嵌入式边缘计算高级师资培训会。培训使用龙芯1+X“嵌入式边缘计算软硬件开发”高级教考设备,搭载龙芯
    的头像 发表于 11-14 11:11 340次阅读

    龙芯LS2K1000LA和LS2K1000有何区别?

    则是使用mips架构。所以俩个不同架构的处理器使用的源码略有不同,但是硬件上基于2k10002k1000la的开发板&核心板迅为做到了完全兼容。可以根据需要无缝切换。
    发表于 11-14 11:06

    【迅为电子】龙芯LS2K1000LA和LS2K1000有何区别?

    【迅为电子】龙芯LS2K1000LA和LS2K1000有何区别?
    的头像 发表于 11-13 14:13 264次阅读
    【迅为电子】<b class='flag-5'>龙芯</b>LS<b class='flag-5'>2K1000</b>LA和LS<b class='flag-5'>2K1000</b>有何区别?

    【北京迅为】itop-龙芯2k1000开发指南Linux基础入门vim 编辑器

    【北京迅为】itop-龙芯2k1000开发指南Linux基础入门vim 编辑器
    的头像 发表于 10-25 14:56 305次阅读
    【北京迅为】itop-<b class='flag-5'>龙芯</b><b class='flag-5'>2k1000</b>开发指南Linux基础入门vim 编辑器

    新品发布 | 龙芯2K0300系列正式开售

    前言:龙芯2K0300蜂鸟开发系统,是专为国产自主嵌入式领域而设计推出的方案。广州眺望电子科技有限公司是一家专注于嵌入式处理器模组研发与应用的国家高新技术企业,眺望电子将与龙芯中科在技
    的头像 发表于 10-25 08:07 463次阅读
    新品发布 | <b class='flag-5'>龙芯</b><b class='flag-5'>2K</b>0300系列正式开售

    国产龙芯处理器选择迅为2K1000开发板有资料

    视频教程 新增龙芯2K1000开发环境搭建系列、系统编译与烧写系列、PMON基础知识及启动流程分析系列、pmon移植教程系列视频教程。更多视频教程请在迅为电子B站账号中收看!
    发表于 10-16 14:23

    龙芯2K0300蜂鸟板试用】初了解龙芯2K0300蜂鸟板

    + 配套底板”形式,核心板尺寸 35mm×35mm。 龙芯2K0300处理器面向工业控制、智能终端等嵌入式领域,具有完全自主、技术先进、高能低耗、接口丰富、适配灵活、安全可靠、生态兼容、性价比高等优点
    发表于 08-27 20:41

    【北京迅为】itop-龙芯2k1000 sylixos 嵌入式实时系统烧写手册-第一章与第二章 详细步骤

    【北京迅为】itop-龙芯2k1000 sylixos 嵌入式实时系统烧写手册-第一章与第二章 详细步骤
    的头像 发表于 08-26 14:18 700次阅读
    【北京迅为】itop-<b class='flag-5'>龙芯</b><b class='flag-5'>2k1000</b> sylixos 嵌入式实时系统烧写手册-第一章与第二章 详细步骤

    龙芯2K0300蜂鸟板试用】开箱体验

    龙芯中科技术股份有限公司(龙芯中科)基于其自主研发的龙芯2K0300处理器而打造的一款专为嵌入式领域设计的开发系统。具有小巧灵活、高性能低
    发表于 08-12 19:59

    龙芯2K0300蜂鸟板支持OpenHarmony 4.0 Release版本操作系统

    龙芯2K0300蜂鸟板是基于龙芯中科自研的LoongArch架构2K0300处理器设计的,整体结构小巧紧凑,功能丰富齐全。
    发表于 06-20 10:02

    龙芯 2K0300 蜂鸟开发系统正式发布!!

    龙芯2K0300蜂鸟开发系统正式发布 6月18日,龙芯2K0300蜂鸟开发系统发布暨技术交流会在广州成功举办。百余位嵌入式领域的业界专家、合作伙伴、工程师等齐聚羊城,围绕技术创新、实践
    发表于 06-19 16:27

    如何使用2k1000LA的ACPI进行软关机?

    在阅读《龙芯2K1000LA处理器用户手册》第21节电源管理模块的时候,我不是很明白如何使用这个模块。 我没有使用过ACPI的经验,如果我希望在我的内核中使用ACPI使2K1000LA
    发表于 05-22 20:25

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

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

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

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