DSP系统时钟总结

一、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.mzph.cn/news/657842.shtml

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

相关文章

C语言——深入理解指针3

目录 1. 数组名的理解1. 数组名1.2 数组名理解的特例 2. 使用指针访问数组3. 一维数组传参的本质4. 冒泡排序4.1 冒泡排序的概念4.2 冒泡排序的优化 5. 二级指针5.1 二级指针的概念5.2 二级指针的运算 6. 指针数组7. 指针数组模拟二维数组 1. 数组名的理解 1. 数组名 在上⼀个…

Python武器库开发-武器库篇之pdf文件暴力破解(五十二)

Python武器库开发-武器库篇之pdf文件暴力破解(五十二) PDF&#xff08;Portable Document Format&#xff0c;便携式文档格式&#xff09;是由Adobe公司开发的一种文件格式。PDF文件被广泛用于以可靠方式共享和传输电子文档。它能够保留文档的原始格式&#xff0c;包括字体、图…

[C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!

一&#xff0c;题目 遇到的一道算法题&#xff1a; 1&#xff0c;已知有一个数字矩阵&#xff08;row行&#xff0c;col列&#xff09;&#xff0c;矩阵的每行 从左到右 递增&#xff0c;每列 从上到下 递增。 2&#xff0c;现输入一个数字 num &#xff0c;判断数字矩阵中…

微信小程序之下拉刷新事件、上拉触底事件和案例

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

趣学Python算法100例-1.1 抓交通肇事犯

1&#xff0e;问题描述 一辆卡车违反交通规则&#xff0c;撞人后逃跑。现场有三人目击该事件&#xff0c;但都没有记住车号&#xff0c;只记下了车号的一些特征。甲说&#xff1a;牌照的前两位数字是相同的&#xff1b;乙说&#xff1a;牌照的后两位数字是相同的&#xff0c;但…

vue核心知识点

一、Vue基础知识点总结 开发vue项目的模式有两种&#xff1a; 基于vue.js&#xff0c;在html中引入vue.js&#xff0c;让vue.js管理div#app元素。基于脚手架环境&#xff1a;通过vue脚手架环境可以方便的创建一个通用的vue项目框架的模板&#xff0c;在此基础之上开发vue项目…

Python面向对象编程:探索代码的结构之美

文章目录 一、引言二、为什么学习面向对象编程2.1 提高代码的可维护性&#xff1a;通过封装、继承和多态实现模块化设计2.2 提升代码的复用性&#xff1a;通过类和对象的创建实现代码的重用 三、类和对象的基本概念3.1 类和对象的定义和关系&#xff1a;类是对象的模板&#xf…

【劳德巴赫 Trace32 高阶系列 3 -- trace32 svf 文件操作命令】

请阅读【嵌入式开发学习必备专栏 之 Trace32 系列 】 文章目录 Trace32 SVF 文件操作命令JTAG.PROGRAM.autoJTAG.PROGRAM.SVF命令参数介绍IRPREIRPOSTDRPREDRPOSTInitStateIgnoreTDOVerbose使用示例Trace32 SVF 文件操作命令 JTAG.PROGRAM.auto Format: JTAG.PROGRAM.</

elk之安装和简单配置

写在前面 本文看下elk的安装和简单配置&#xff0c;安装我们会尝试通过不同的方式来完成&#xff0c;也会介绍如何使用docker&#xff0c;docker-compose安装。 1&#xff1a;安装es 1.1&#xff1a;安装单实例 下载es安装包 在这里 下载&#xff0c;下载后解压到某个目录…

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)

在微服务项目迭代的过程中&#xff0c;不可避免需要上线&#xff1b;上线对应着部署&#xff0c;或者升级部署&#xff1b;部署对应着修改,修改则意味着风险。 传统的部署都需要先停止旧系统&#xff0c;然后部署新系统&#xff0c;之后需要对新系统进行全面的功能测试&#xf…

用STM32手搓一个体温计

前言 市面上大多额温计、测温计精度偏差太大。 而水银温度计&#xff0c;等待时间又太久。 因此就产生了用STM32自己做一个——精度高、便宜、测速快 的产品级 温度仪/体温计的想法。 01 这个温度仪的亮点&#xff1f; ”1精度高&#xff0c;误差小于0.1度 2带有显示屏&a…

【buuctf Reverse】[GXYCTF2019]luck_guy wp

[GXYCTF2019]luck_guy https://buuoj.cn/challenges#[GXYCTF2019]luck_guy 只有一个可执行文件&#xff0c;IDA 64位直接干 进main函数&#xff0c;F5反编译&#xff0c;看主要处理函数&#xff0c;跳转进去 在这里看到。flag是由f1和f2拼出来的&#xff0c;f1在汇编中有…

STM32读取MPU6050数据并通过角度值控制舵机运动(STM32、GY-521 MPU6050、SG90舵机、MG946舵机)

通过STM32F103C8T6读取MPU6050数据控制舵机运动&#xff08;STM32、GY-521 MPU6050、SG90舵机、MG946舵机&#xff09; 最终现象一、MPU6050数据读取二、舵机控制原理①什么是PWM&#xff1f;②STM32F103C8T6如何生成PWM&#xff1f;③控制舵机需要什么样的PWM波&#xff1f; 三…

飞桨paddlespeech语音唤醒推理C INT8 定点实现

前面的文章&#xff08;飞桨paddlespeech语音唤醒推理C定点实现&#xff09;讲了INT16的定点实现。因为目前商用的语音唤醒方案推理几乎都是INT8的定点实现&#xff0c;于是我又做了INT8的定点实现。 实现前做了一番调研。量化主要包括权重值量化和激活值量化。权重值由于较小且…

微信活动投票小程序源码系统:自主创建活动小程序带完整的安装代码包以及搭建教程

微信小程序的日益普及&#xff0c;越来越多的企业和个人开始关注如何利用小程序进行活动推广和用户互动。在这个背景下&#xff0c;微信活动投票小程序源码系统应运而生。这款源码系统旨在帮助用户快速创建自己的活动投票小程序&#xff0c;降低技术门槛&#xff0c;提高开发效…

主从数据库MySQL服务重启步骤与注意事项

主从数据库MySQL服务重启步骤与注意事项 实验环境&#xff1a; 172.20.26.34 &#xff08;主应用服务器&#xff09; 172.20.26.26 &#xff08;备应用服务器&#xff09; 172.20.26.37 &#xff08;主库服务器&#xff09; 172.20.26.38 &#xff08;从库服务器&…

迅为3588开发板Ubuntu安装Docker

在使用迅为 RK3588 开发板的时候&#xff0c;我们一般采用的是虚拟机安装 Ubuntu20.04 来编译 Android 源码或者 linux 源码&#xff0c;但是编译源码最让人头疼的是主机环境问题。假如我手上有很 多块开发板&#xff0c;每个开发板都使用不同的编译环境&#xff0c;而我本地电…

Java 类的加载流程

一、类的加载 指的是将类的.class 文件中的二进制 数据读入到内存中&#xff0c;将其放在运行时数据区的方法区内&#xff0c;然后在堆区创 建一个 java.lang.Class 对象&#xff0c;用来封装类在方法区内的数据结构。 类从被加载到虚拟机内存中开始&#xff0c;到卸载出内…

自己实现的小功能

小功能实现 2024/1/31 问题一&#xff1a; 将文本模式的csv文件作为表编辑之后&#xff0c;先要再变回来。找了5分钟都没找到&#xff0c;去网上搜也没搜到 解决方案 复制一份&#xff0c;对没错。 不是把表遍历一遍&#xff0c;重新将数据写入。 3.5给的答案就是重新写入…

C#小结:ScottPlot 5.0在VS2022桌面开发的应用(以winform为例)

目录 一、官网文档地址 二、在VS2022中安装Scottplot 三、拖动Scottplot 四、使用Scottplot 五、效果图 一、官网文档地址 官网地址&#xff1a;ScottPlot 5.0 食谱 本文内容来自于官网&#xff0c;选取了官网的一些比较好用的功能展示&#xff0c;如需学习更多功能&a…