DSP系统时钟总结

news2024/11/14 11:37:42

一、stm32中断偏移向量介绍

1.1 为什么要设置中断向量偏移

上图可以看出程序上电先进入0x08000000开始运行,紧接着执行复位中断向量,然后执行复位中断程序,然后进入main函数。

如果想要app的中断正常运行,那就必须手动设置中断向量偏移地址。否则默认的地址是0x08000004,而不是app的起始地址。

1.2 如何设置中断向量偏移

NVIC_VTOR_MASK是用来设置中断向量表的掩码。中断向量表是一个存储中断处理程序地址的表格,用于处理不同的异常和中断。在STM32F407芯片中,中断向量表占用空间为92*4=368字节,需要对齐到2的整次幂,即512字节。因此,可以将NVIC_VTOR_MASK设置为0xFFFFFE00,即将低9位设置为0,以确保中断向量表的起始地址是512的整数倍。


又因为这个,所以将NVIC_VTOR_MASK设置为0x1FFFFE00。

设置掩码NVIC_VTOR_MASK的目的是为了确保中断向量表的起始地址满足对齐要求。对于不同的芯片,中断向量表的大小和对齐要求可能不同,因此需要根据具体情况进行设置。通过设置掩码NVIC_VTOR_MASK,可以保证中断向量表的起始地址正确,并且能够正确处理异常和中断。

1.3 dsp跳转app后为什么不需要设置中断偏移向量

这是一个用于初始化TMS32F28377D芯片中中断向量表的函数。逐行解释代码的功能:

//---------------------------------------------------------------------------

// InitPieVectTable:

//---------------------------------------------------------------------------

// This function initializes the PIE vector table to a known state.

// This function must be executed after boot time.

void InitPieVectTable(void)

{

    Uint16  i;  

    Uint32  *Source  =  (void  *)  &PieVectTableInit;  

    Uint32  *Dest  =  (void  *)  &PieVectTable;  

// Do not write over first 3 32-bit locations (these locations are

// initialized by Boot ROM with boot variables)

    Source  =  Source  +  3;  

    Dest  =  Dest  +  3;  

    EALLOW;  

    for(i  =  0;  i  <  221;  i++)  

    {  

    *Dest++  =  *Source++;  

    }  

    EDIS;  

// Enable the PIE Vector Table

    PieCtrlRegs.PIECTRL.bit.ENPIE  =  1;  

}

首先,声明了两个指针类型变量 Source 和 Dest,它们分别指向 PieVectTableInit 和 PieVectTable。

接着,将 Source 和 Dest 各自增加 3 的偏移量。这是因为前三个32位位置是由引导程序(Boot ROM)用于初始化引导变量的,所以不应该被覆写。

然后,使用 EALLOW 和 EDIS 宏来使能对 PIE Vector Table 的写操作权限。

通过循环将 Source 指针指向的值复制给 Dest 指针指向的地址,并递增这两个指针的值。循环执行 221 次(TMS32F28377D芯片具有 221 个中断向量表项,每个项都包含一个指向中断服务程序的地址),将 PieVectTableInit 的内容复制到 PieVectTable。

最后,通过设置 PieCtrlRegs.PIECTRL.bit.ENPIE 为 1,启用 PIE(Peripheral Interrupt Expansion)向量表。

简单来说,该函数的作用是将预定义的中断向量表数据复制到实际的中断向量表地址,并启用中断向量表。这样,处理器在执行中断服务程序时,会根据中断发生的类型找到相应的中断向量表项,从而执行相应的中断服务程序。

该函数的作用是将预定义的中断向量表数据复制到实际的中断向量表地址,并启用中断向量表。这样,处理器在执行中断服务程序时,会根据中断发生的类型找到相应的中断向量表项,从而执行相应的中断服务程序。

二、dsp时钟设置

时钟源选择

2803x系列DSP有两个内部时钟源(INTOSC1和INTOSC2),可以不需要外部时钟。同时,也具有PLL时钟模块。一共有4种时钟源可供选择:

1) INTOSC1(10MHz)

内部时钟源1(INTOSC1),此时钟提供给看门狗块模块,内核和CPU定时器2 。

时钟频率默认为10MHz,可以通过INTOSCnTRIM寄存器修改频率。

2) INTOSC2(10MHz)

功能与INTOSC1是一样的。

3) 外部晶体振荡器

使用外部晶体振荡器给芯片提供时钟,晶振连接于X1/X2 脚。

4) 外部时钟源

如果不使用外部晶振作为时钟源,可以选择这种模式。时钟从外部时钟源的XCLKIN引脚输入生成。

注意:XCLKIN复用于GPIO19或GPIO38脚。可以通过XCLK寄存器的XCLKINSEL位选择是GPIO19还是GPIO38作为XCLKIN输入。

分析:通过上面可以总结以下几点:

①总共四个时钟源;

②系统时钟=所选择时钟*倍频系数/分频系数

比如下面找个就是:10*12/2=60MHz

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

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

相关文章

【读点论文】SPTS Single-Point Text Spotting

SPTS Single-Point Text Spotting ABSTRACT 现有的场景文本识别(即&#xff0c;端到端文本检测和识别)方法依赖于昂贵的边界框注释(例如&#xff0c;文本行&#xff0c;词级或字符级边界框)。我们首次证明&#xff0c;训练场景文本识别模型可以通过对每个实例的单点进行极低成…

推特账号被冻结怎么办?检查IP是否正常

Twitter 拥有庞大的用户群和日常内容流&#xff0c;是沟通、网络和营销的重要平台。然而&#xff0c;处理其限制和潜在的帐户问题可能很棘手。有许多跨境社媒小伙伴反馈&#xff0c;账号无故被冻结&#xff0c;导致内容与客户尽失&#xff01;其实除了账户养号、被举报、广告信…

C语言基础13

今天是学习嵌入式相关内容的第十四天&#xff0c;以下是今日所学内容 1.结构体: 1.结构体类型定义 2.结构体变量的定义 3.结构体元素的访问 4.结构体的存储 内存对齐 结构体整体的大小必须为最大基本类型长度的整数倍 5.结构体作为函数参数 值传递 练习:定…

freeRTOS的第一个任务是如何跑起来的?(以RISC-V架构分析)

1、前言 要理解第一个任务是如何跑起来&#xff0c;必须先能理解下面的概念 freeRTOS的任务创建、任务切换机制架构规定的函数调用规范了解基础的汇编指令 可以参考的资料&#xff1a; 《freertos任务切换的现场保存、恢复&#xff08;任务栈空间&#xff09;深度分析&#xf…

Arduino开发实例-DRV8833电机驱动器控制直流电机

DRV8833电机驱动器控制直流电机 文章目录 DRV8833电机驱动器控制直流电机1、DRV8833电机驱动器介绍2、硬件接线图3、代码实现DRV8833 使用 MOSFET,而不是 BJT。 MOSFET 的压降几乎可以忽略不计,这意味着几乎所有来自电源的电压都会传递到电机。 这就是为什么 DRV8833 不仅比基…

【Matplotlib】科研绘图——折线图

文章目录 1、导入2、定义Font及Style3、设置图像大小及坐标刻度4、数据准备5、自定义draw6、其他设置7、效果图 1、导入 import matplotlib import matplotlib.pyplot as plt from matplotlib.backends.backend_pdf import PdfPages import numpy as np import pandas as pd %…

合肥工业大学计算机试卷和笔记

总结了一些试卷和笔记&#xff0c;但是csdn上不方便上传pdf&#xff0c;所以上传到github了&#xff0c;欢迎Issue和fork 地址&#xff1a; https://github.com/Martin-share/hfut-cs-final-exams-and-note 持续更新-------2024-01-30

企业做新媒体矩阵不可忽视的四大问题

互联网进入下半场&#xff0c;存量市场竞争日益加剧&#xff0c;获客成本不断增加&#xff0c;越来越多的品牌开始数字化转型&#xff0c;而布局社交媒体矩阵则成为了大多数品牌的必然选择。 通过社交媒体的图文、短视频、直播等形式营销推广&#xff0c;不断做深、做透、做细&…

如何override已经存在的约束

文章目录 前言一、如何override已经存在的约束总结 前言 在验证过程中&#xff0c;我们基本都是基于spec&#xff0c;做正常的约束&#xff0c;当我们测特定corner场景的时候&#xff0c;希望能够用新的约束&#xff0c;去override已经存在的约束。 一、如何override已经存在的…

windows下postgresql的安装使用

一、安装 1、安装包安装 1.1 下载exe安装包 选择安装包&#xff1a;官网 或者点击下载&#xff1a;postgresql-12.12-1-windows-x64.exe Tip&#xff1a;此时若报错&#xff1a;There has been an error.An error occured executing the Microsoft VC runtime installer。 参…

性价比之王,65W 2C1A降功率方案隆重推出

随着电子市场发展&#xff0c;现在越来越多的设备都具有快充功能&#xff0c;快充设备越来越普及&#xff1b;单口快充已经很难满足人们的需求&#xff0c;市场对多口快充配件的需求量日益增加。同时随着氮化镓的普及&#xff0c;适配器功率越做越大&#xff0c;功率的合理利用…

[Bug] [OpenAI] [TypeError: fetch failed] { cause: [Error: AggregateError] }

[Bug] [OpenAI] [TypeError: fetch failed] { cause: [Error: AggregateError] } ubuntu20 win10 edge浏览器访问 服务器部署 页面打开后想使用chatgpt报错了 rootcoal-pasi1cmp:/www/wwwroot/ChatGPT-Next-Web# PORT3000 yarn start yarn run v1.22.19 warning package.json:…

c++|类和对象(下)

一、再谈构造函数 1.1初始化列表 在上一章节中&#xff0c;对于类我们可以形象的比喻为房子的图纸&#xff0c;而真正对于类的初始化可以比喻为建造了一个实体房子&#xff0c;即创建对象&#xff0c;对于房子中的各个房间都有特定的位置构造&#xff0c;那么对于类中的成员变…

运维SRE-01 目录结构体系、find

1. Linux目录结构体系 Linux 核心目录的核心文件概述 1&#xff09; /etc下面 a) /etc/hosts 主机ip地址与域名(主机名)对应关系 b&#xff09; /etc/hostname 主机名 c) /etc/sysconfig/network-scripts/ifcfg-ens33或ifcfg-eth0 Linux网卡配置文件 d&#xff09;了解 /etc/i…

Prometheus的语句

1、node_cpu_seconds_total&#xff1a;监控项数据、指标项 2、node_cpu_seconds_total{cpu"0"}&#xff1a;时间序列 node_cpu_seconds_total 监控项数据&#xff08;指标项&#xff09; {cpu"0"} 标签 node_cpu_seconds_total{cpu"0"}&…

windows设置openDNS

windows环境搭建专栏&#x1f517;点击跳转 win系统环境搭建&#xff08;十九&#xff09;——windows设置openDNS 文章目录 win系统环境搭建&#xff08;十九&#xff09;——windows设置openDNS1.什么是openDNS&#xff1f;2.openDNS的ip是多少&#xff1f;3.设置DNS3.1 设置…

Android开发学习-中级控件

Drawable Android把所有能够显示的图形都抽象为Drawable类(可绘制的)。 这里的图形不止是图片&#xff0c;还包括色块、画板、背景等。 包含图片在内的图形文件放在res目录的各个drawable目录下&#xff0c;其中drawable目录一般保存描述性的XML文件&#xff0c;而图片文件一…

数据中心IP代理是什么?有何优缺点?海外代理IP全解

海外代理IP中&#xff0c;数据中心代理IP是很热门的选择。这些代理服务器为用户分配不属于 ISP&#xff08;互联网服务提供商&#xff09;且来自第三方云服务提供商的 IP 地址&#xff0c;是分配给位于数据中心的服务器的 IP 地址&#xff0c;通常由托管和云公司拥有。 这些 I…

搭建幻兽帕鲁需要什么样的服务器

作为一个开放世界生存制造类游戏《幻兽帕鲁》收获了空前绝后的热度&#xff0c;玩家们在游戏中通过在地图上捕捉收集到的“帕鲁”进行训练&#xff0c;合理利用他们的能力进行战斗&#xff0c;建立自己的家园、开辟新的世界、解锁新的冒险情节&#xff0c;获取更多游戏信息增加…

【JavaEE】UDP协议与TCP协议

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…