DSP28335学习笔记(4):中断向量表初始化

1.前言
在上一节中,我们进行了系统初始化,对时钟源进行分频倍频得到所需的系统时钟。但我漏了重点,在配置前需要包含系统级头文件#include dsp28x_project.h,可以把它理解成芯片数据包,封装好了外设及系统的寄存器。
这一节我们进行系统配置的最后一个环节,gpio及中断初始化配置。
2.initialize gpio
通常我们的dsp28335是作为一个电子电路系统的主控芯片,其外围挂载了很多器件或电路。在用户程序开始工作前,通常我们需要将io口初始化成已知电位,且可根据电路情况进行调整。
上图是ti官方的例程示范,根据需要调整gpio初始化函数中的相关配置,达到初始化的目的。
3.pie中断控制器、ie初始化
这一环节的作用是为了避免我们后续初始化中断向量表后直接有中断产生的情况(意思就是我们的用户程序还没运行就有未知的中断发生,显然不是我们预期的结果)。
首先关闭所有中断。
然后初始化中断控制寄存器。
28335有12组中断控制寄存器,一一对应着ie的12个中断。
禁止cpu中断,清除cpu中断标志位。
在这里很多人可能会有疑问,这个pie与ie到底是什么,怎么都要初始化?其实,cpu一次只能执行一个中断,当我们同时打开多个中断并都产生中断标志时,我们就需要对其进行管理,而pie是中断的控制器,能够依据用户设置对中断进行管理。
上图非常清晰地体现了pie与ie的关系。
4.初始化pie向量表
pie可管理96个中断,那么这96个中断的中断服务函数的入口地址我们需要进行指定,pie中断向量表存储相对应中断服务函数的入口地址。在某个中断服务函数需要运行时pie将查询中断向量表,并将表中入口地址赋予cpu中断执行。
上图是pie管理的中断类型及其向量表偏移地址。
上图是pie部分组的中断向量地址。
一般调用initpievecttable()函数将中断服务函数入口地址存入中断向量表中对应位置。在后续的用户程序中,我们可以灵活的修改默认的中断服务函数,但是要重新刷新入口地址(后续用到时详细说明)。
5.用户代码
系统初始化在这里已经全部完成,接下来就是用户代码。
我们根据工程需要初始化相关外设,编写用户程序实现相关功能。然后就到了自由发挥的大舞台喽!
截止到目前为止,dsp28335的工程创建、系统初始化配置都已经完成了,接下来我们将开始系统模块和常用外设的学习。

布局六大“强芯工程” 深圳市要建成具有国际竞争力的集成电路产业集群
中国智慧城市市场规模分析!智慧城市与平安城市的共同点!
这款三维空间导航模块,为您的巡检机器人赋能
拓展摩尔定律推动MEMS/NEMS技术演进
ADI与您相约2023进博会,感受边缘智能多样精彩
DSP28335学习笔记(4):中断向量表初始化
红米Note5A的新对手来了 华为荣耀畅玩6C手机“证件照”曝光
升特发布电容式检测IC SX8660/61平台
电源系统设计EMC实验分析
印刷PCB板需要多少锡膏?
EMC CX4-480服务器数据恢复故障的方法
苹果已获新专利,Touch ID技术或将回归
屏下指纹识别的优缺点以及弹片微针模组的应用
通过深度学习AI技术,扫描心脏血流只需几秒钟
浅谈无线温湿度监测系统及当前使用领域
敏芯股份:MEMS芯片的制造工艺和集成电路芯片完全不同
未来自动驾驶汽车产业市场将最终成为谁的主场?
深入探讨车市现状及未来发展方向
如何选购选择好高档LED液晶电视
基于移位寄存器的发光二极管立方体(4*4)编写代码