国产DSP FT-M6678开发-中断开发

news2024/10/7 18:29:48

全局中断控制器(CIC

        FT-M6678 芯片集成了众多的外设,这些外设都可产生中断事件源,这些中断事件如何被服务取决于用户的特殊应用。在FT-M6678 芯片中,EDMA 和CorePac 都能够为事件服务,为了最大限度的增加系统中事件使用的弹性和适应性,集成了芯片级的中断控制器CIC。该中断控制器主要完成外部中断事件的路由,实现众多外设的中断事件到8 个CorePac 和3 个EDMA 的通路映射,使得CorePac 或EDMA 对外设进行响应并完成具体功能操作。

        CIC 中断控制器的拓扑结构如下图所示:

        CIC 中断控制器在内部分为4 个部分CIC0~CIC3。其中可以对CIC0 和CIC1 进行配置使得其对外设的中断事件进行路由后分发给8 个CorePac,以触发内核的中断服务程序,由CPU对外设进行伺服;而对CIC2 和CIC3 进行配置使其对外设的中断事件进行路由后分发给3 个EDMA,以触发EDMA 的传输事件,由EDMA 对外设进行伺服。CIC 中断控制器内部集成了一个CrossNet 命令通路的从机接口,CPU 通过该命令通路实现对CIC 的配置或对CIC 配置参数和外部中断事件标志位的读取。

        CIC 的主要功能是接收外部设备发送的中断事件,通过配置CIC 内部的功能寄存器对外设中断事件进行使能控制和映射控制,将这些中断事件路由后产生主机中断分发给CorePac 和EDMA。具体的工作流程分为四个步骤:使能; 状态;通道映射;主机映射。

        

        中断控制器CIC 将一个外设中断路由的第一步是使能这个外设中断,通过中断使能寄存器来对相应的中断事件进行使能,没有被使能的外设事件中断不能生成任何主机中断。 

        外设中断事件的状态分为两种:自然状态和使能状态。外设发送的中断事件被CIC 捕获后,被存入自然状态寄存器,若该中断事件被使能,则该事件的使能状态寄存器被置1。用户可通过软件程序对中断事件的自然状态寄存器进行设置来产生中断事件而非一定需要由外设触发产生。 

        被使能了的外设中断事件需要通过内部通道来进行映射,这些内部通道使得众多的外设中断能够缩减数目以能够进行下一步的主机映射。多个外设中断进行内部通道映射时可以使用相同的内部通道,任意的一个中断事件有效则其内部通道输出有效。 

        最后一步是主机映射,内部通道映射后产生的内部事件经主机映射后产生主机中断,主机映射是固定的一一映射。在相应的主机中断事件使能和全局使能打开后,产生的主机中断事件最终被发送给EDMA CorePac

        CIC0/CIC1中断时间表如下:

        INTC输入事件表如下:

代码示例:

void Chip_Initial()

{

        //*******************中断初始化*********************************//

        //全局使能8号中断向量

        C6678_Int_GlobalEnable(8);

        //INTC 初始化

        C6678_CoreInt_Init();

        //中断服务表设置

        Interrupt_Service_Table((int )0x00800000);

            //CIC 初始化

        C6678_ChipInt_Init(0);

        C6678_ChipInt_Init(1);

        C6678_ChipInt_Init(2);

        C6678_ChipInt_Init(3);

        //下面给一个参数的例子,比如需要使用CIC0 6号事件(DMA)

        C6678_ChipInt_Set(0, 6, 0);//6号事件

        C6678_CoreInt_Set(102, 8); //8号中断

}

        同时,在verctor.asm中添加中断向量:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1580977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3第十六节(keep-alive 内置组件)

keep-alive 1、目的 在使用组件时,有时我们需要将组件进行缓存,而不是重新渲染,用以提高性能,避免重复加载DOM,提升用户的体验; keep-alive 组件可以做到这一点,它允许你缓存组件实例&#xf…

家用洗地机哪个牌子好?四大热销机型推荐,值得推荐!

随着科技的进步,洗地机在日常生活中能够帮助人们省时省力地打扫卫生,但市面上出现了各种各样的洗地机,好坏参差不齐,选择一个好品牌的洗地机非常重要,因为它们有着可靠的质量保证。那市面上如此众多的洗地机品牌&#…

Python爬虫之分布式爬虫

分布式爬虫 1.详情介绍 分布式爬虫是指将一个爬虫任务分解成多个子任务,在多个机器上同时执行,从而加快数据的抓取速度和提高系统的可靠性和容错性的技术。 传统的爬虫是在单台机器上运行,一次只能处理一个URL,而分布式爬虫通过将…

关于阿里云centos系统下宝塔面板部署django/中pip install mysqlclient失败问题的大总结/阿里云使用oss长期访问凭证

python版本3.12.0 问题1 解决方案 sudo vim /etc/profile export MYSQLCLIENT_CFLAGS"-I/usr/include/mysql" export MYSQLCLIENT_LDFLAGS"-L/usr/lib64/mysql" Esc退出编辑模式 :wq退出并且保存 问题二 说是找不到 mysql.h头文件 CentOS ‘…

【Python】不会优雅的记日志,你又又Out了!!!

1. 引言 在日常开发中,大家经常使用 print 函数来调试我们写的的代码。然而,随着打印语句数量的增加,由于缺乏行号或函数名称,很难确定输出来自何处。而且随着print语句的增多,调试完代码删除这些信息的时候也比较麻烦…

【动态规划-线性dp】【蓝桥杯备考训练】:乌龟棋、最长上升子序列、最长公共子序列、松散子序列、最大上升子序列和【已更新完成】

目录 1、乌龟棋 2、最长上升子序列 3、最长公共子序列 4、松散子序列 5、最大上升子序列和 1、乌龟棋 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘只有一行,该行有 N 个格子,每个格子上一个分数(非负整…

植物大战僵尸Python版,附带源码注解

目录 一、实现功能 二、安装环境要求 三、如何开始游戏 四、怎么玩 五、演示 六、部分源码注释 6.1main.py 6.2map.py 6.3Menubar.py 七、自定义 7.1plant.json 7.2zombie.json 一、实现功能 实施植物:向日葵、豌豆射手、壁桃、雪豆射手、樱桃炸弹、三…

笔记-Building Apps with the ABAP RESTful Application Programming Model-Week3

Week3 Unit 1: The Enhanced Business Scenario 本节介绍了将要练习的demo的业务场景,在前两周成果的基础上,也就是只读列表,也可以说是报表APP基础上启用了事务能力,也就是CURD以及自定义业务功能的能力,从创建基本的behavior definition,然后behavior definition proj…

老王讲IT:高级变量类型

IT老王:高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) 真 True 非 0 数 —— 非零…

阻抗匹配(低频和高频)

一、当信号为低频时 二、当信号为高频时 三、最理想的阻抗要求? 四、为什么射频阻抗基本都是50欧姆(信号源阻抗传输线特征阻抗负载阻抗50欧姆) 综合考虑,射频行业标准选定50欧姆阻抗。

【鸿蒙开发】系统组件Text,Span

Text组件 Text显示一段文本 接口: Text(content?: string | Resource) 参数: 参数名 参数类型 必填 参数描述 content string | Resource 否 文本内容。包含子组件Span时不生效,显示Span内容,并且此时text组件的样式不…

算法四十天-删除排序链表中的重复元素

删除排序链表中的重复元素 题目要求 解题思路 一次遍历 由于给定的链表是排好序的,因此重复的元素在链表中的出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。 具体地,我们从指针cur指向链表的头节…

React路由快速入门:Class组件和函数式组件的使用

1. 介绍 在开始学习React路由之前,先了解一下什么是React路由。React Router是一个为React应用程序提供声明式路由的库。它可以帮助您在应用程序中管理不同的URL,并在这些URL上呈现相应的组件。 2. 安装 要在React应用程序中使用React路由,…

【前沿模型解析】潜在扩散模型 2-3 | 手撕感知图像压缩 基础块 自注意力块

1 注意力机制回顾 同ResNet一样,注意力机制应该也是神经网络最重要的一部分了。 想象一下你在观看一场电影,但你的朋友在给你发短信。虽然你正在专心观看电影,但当你听到手机响起时,你会停下来查看短信,然后这时候电…

C++可变模板参数与包装器(function、bind)

文章目录 一、 可变参数模板1. 概念2. 参数包值的获取 二、 包装器1. 什么是包装器2. 为什么要有包装器3. std::function(1) function概念(2) 利用function解决实例化多份问题(3) 包装器的其他使用场景&…

水资源管理系统:守护生命之源,构建和谐水生态

水资源是维系地球生态平衡和人类社会可持续发展的重要基础。然而,随着人口增长、工业化和城市化的加速,水资源短缺、水质污染和生态破坏等问题日益凸显。在这样的背景下,构建一个全面、高效、智能的水资源管理系统显得尤为迫切和必要。 项目…

Google Cookie意见征求底部弹窗

关于欧盟 Cookie 通知 根据2024年欧盟的《通用数据保护条例》以及其他相关法规,要求google cookie的使用必须征求用户的同意,才能进行收集用户数据信息,因此跨境独立站,如果做欧洲市场,就必须弹出cookie收集数据弹窗&a…

阿赵UE学习笔记——26、动画混合空间

阿赵UE学习笔记目录   大家好,我是阿赵。   继续学习虚幻引擎的使用。之前学习了通过蓝图直接控制动画播放,或者通过动画状态机去控制播放。这次来学习一种比较细致的动画控制播放方式,叫做动画混合空间。 一、使用的情景 假设我们现在需…

链表的中间结点——每日一题

题目链接: OJ链接 题目: 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释&…

2023一个前端人的杂谈

酒香也怕巷子深 年底提车,回河北过年,一路总是旅游的牌子,后来去满城滑雪,随拍了几张照片,才更加感受河北的魅力。 感觉仅仅是这一抹黄昏,就让这一行物超所值了,原来那句宣传语所言非虚:这么近,那么美,周末到河北,然而我认为实际的好处,可能不止如此。 作为一个出…