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

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

3天内不再提示

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

CHANBAEK 来源:强盛电子厂 作者:高启强的 2023-07-02 15:49 次阅读

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的工程创建、系统初始化配置都已经完成了,接下来我们将开始系统模块和常用外设的学习。

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

    关注

    31

    文章

    5363

    浏览量

    121113
  • 中断
    +关注

    关注

    5

    文章

    900

    浏览量

    41735
  • GPIO
    +关注

    关注

    16

    文章

    1216

    浏览量

    52356
  • DSP28335
    +关注

    关注

    22

    文章

    59

    浏览量

    40764
  • 时钟源
    +关注

    关注

    0

    文章

    93

    浏览量

    16030
收藏 人收藏

    评论

    相关推荐

    DSP28335外部中断的使用

    处理器的外部中断主要用于捕抓外部输入的高低电平。本篇文章将介绍DSP28335的外部中断的使用。
    的头像 发表于 07-07 16:41 4853次阅读
    <b class='flag-5'>DSP28335</b>外部<b class='flag-5'>中断</b>的使用

    DSP28335的_程序设计步骤

    GPIO,对于不同的硬件系统,进行不同的功能配置;第三步:清除所有的中断初始化PIE中断向量表 禁用CPU中断 DINT;初始化PIE控制
    发表于 11-25 11:35

    一个新手对stm32启动和中断向量表的理解

    设置flash(0x80000000)),在0x80000000的字区设置SP的值,后一个字区设置复位中断的地址,程序自动读取这两个数值,跳到复位中断后设置一些堆栈的初始化以及设置中断向量表
    发表于 10-30 12:06

    怎么理解中断向量

    ,每个中断向量大小为4Byte,所以整张表大小为1KB。因为中断向量按照中断号从0地址开始顺序排列,所以任意一个中断号为N的
    发表于 08-27 10:24

    中断向量表里有什么

    一、中断向量表里有什么?它放在那里?到底有什么用?1、中断向量表实际上就是存放在Code区(也就是STM32内部的Flash区)从0x00000000地址开始的一个数组,数组的成员为4个字节,而且
    发表于 08-13 06:55

    设置中断向量表的过程

    在有 boot 的情况下,一般需要重新设置 app 的中断向量表,使得中断向量表从 boot 切换到 APP 部分,大部分的工程师会使用类似下面这种方式设置中断向量表的地址 0x0800 ...
    发表于 02-14 06:34

    DSP28335的应用是什么

    近日工作中又涉及到了DSP28335的应用,看来TI的芯片还是得到了公司领导的认可,也直接丢了一份DSP28335的FOC程序给我理解。以前读书阶段较为简单的接触过一段时间,对DSP28335
    发表于 02-16 06:54

    Dsp28335中断的方法

    Dsp28335中断的方法Dsp28335中断的方法
    发表于 01-08 14:17 14次下载

    DSP28335研发笔记_ccs5.2

    DSP28335研发笔记
    发表于 12-30 15:04 29次下载

    dsp28335开发板中文资料汇总(dsp28335最小系统_引脚图_封装_初始化程序)

    本文主要介绍了dsp28335开发板最小应用系统设计、dsp28335引脚图功能和dsp28335封装及dsp28335初始化程序。
    发表于 05-24 17:25 6.5w次阅读
    <b class='flag-5'>dsp28335</b>开发板中文资料汇总(<b class='flag-5'>dsp28335</b>最小系统_引脚图_封装_<b class='flag-5'>初始化</b>程序)

    ARM中断向量表与响应流程的系列资料详细说明

    本文档的主要内容详细介绍的是ARM中断向量表与响应流程的系列资料详细说明包括了:一首先中断向量表定义在哪里?如何加载?,二 中断向量表中断服务程序,三处理流程
    发表于 07-05 17:41 2次下载
    ARM<b class='flag-5'>中断向量表</b>与响应流程的系列资料详细说明

    一文了解Cortex-M中断向量表对齐原则

    每个元素大小为 4 字节),表中元素编号如下: 1. 中断向量表第 0 - 1 个向量比较特殊,是程序初始 SP 和 PC 值2. 中断向量表
    的头像 发表于 10-19 11:06 5147次阅读
    一文了解Cortex-M<b class='flag-5'>中断向量表</b>对齐原则

    如何智能设置中断向量表?| 简单实用技能

    在有 boot 的情况下,一般需要重新设置 app 的中断向量表,使得中断向量表从 boot 切换到 APP 部分,大部分的工程师会使用类似下面这种方式设置中断向量表的地址 0x0800 ...
    发表于 12-09 10:36 13次下载
    如何智能设置<b class='flag-5'>中断向量表</b>?| 简单实用技能

    DSP28335学习——系统初始化

    近日工作中又涉及到了DSP28335的应用,看来TI的芯片还是得到了公司领导的认可,也直接丢了一份DSP28335的FOC程序给我理解。以前读书阶段较为简单的接触过一段时间,对DSP28335
    发表于 12-17 18:20 17次下载
    <b class='flag-5'>DSP28335</b><b class='flag-5'>学习</b>——系统<b class='flag-5'>初始化</b>

    DSP28335学习笔记(5):GPIO介绍及使用

    在前面的章节中,我们对DSP28335系统初始化过程有了一个初步的了解,下面的章节我们开始外设的应用。
    的头像 发表于 07-02 15:52 9759次阅读
    <b class='flag-5'>DSP28335</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>(5):GPIO介绍及使用