正点原子-Linux嵌入式开发学习-第二期06

news2024/11/26 11:33:33

第十四讲:主频和时钟配置

分析一个芯片的时钟,肯定先知道它的时钟来源,一般来源于外部晶振,内部晶振很少使用

时钟来源分析

RTC的时钟并不是其他外设的晶振来源

 

 24MHz 晶振是 I.MX6U 内核和其它外设的时钟源,也是我们重点要分析的

24MHZ晶振是源头,用于不同外设的所需频率不一样,因此24MHZ会经过不同的路径,像STM32的时钟树一样,分频、倍频处理从而得到不同的频率

7 组 PLL

I.MX6U 的外设有很多,不同的外设时钟源不同, NXP 将这些外设的时钟源进行了分组,一共有 7 组,这 7 组时钟源都是从 24MHz 晶振 PLL 而来的,因此也叫做 7 组 PLL。

因此我们根据不同的外设选择不同的PLL即可,并且进行相应的配置

时钟树

每一个芯片的手册中都存在着时钟树,初学时的STM32也存在,时钟树的作用就是配置相应外设不同的时钟频率,因此如果想知道和配置时钟相关知识的话,时钟树的解析步骤是必不可少的,但是注意的是:不能仅仅只看时钟树,还需要看时钟的其他知识,都在手册中有,当你拿了一块芯片使用的时候,你需要把时钟部分基本全部看完,否则你配置时钟的时候,会出现很多问题

下图为时钟树的理解,主干是外部晶振,树干是外设

 6ULL时钟树分析

分析方法:选择我们需要配置的外设,然后从后面向前面推即可,目的---源

 外设时钟分析

 需要初始化的时钟PLLX

分析时钟树可得,大量的外设是挂在PLL1、PLL2及PFD、PLL3及PFD上,因此我们初始化时钟的时候,需要初始化这些时钟,而需要配置的时钟为多少,可以根据时钟树配置,PPL1-996M

PLL2-528,但其实官方的手册中存在推荐的默认范围,自己选择即可其实,频率越大,性能越强,功耗也越大

我们初学的时候,我们自己并没有初始化,是因为启动代码帮我们初始化了

内核时钟设置

PLL1的可设范围为650MHZ-1.3GHZ

上面的/2表示分频,也可以配置为其他分频系数,后面的/2是没有用的。

因此如果我们想配置528MHZ,那么有两种方式,PLL1 = 528 * 2; 2分频

PLL1 = 528MHZ,1分频

寄存器CACRR--可以知道分频系数的选择,它上面标/2,不要以为只能设置为2分频 

 注意点

更改内核时钟频率,相当于人体换心脏,那我是不是应该在换心脏的时候,有一个备用的机械心脏在运行,不然在换的时候,命就没有了,因此我们需要在更改内核时钟频率的时候,基于芯片一个备用的内核时钟

 时钟配置总结

关于一个芯片的时钟配置,手册部分的阅读必不可少,只要你详细看手册的话,就可以成功配置时钟,配置时钟的方式就是配置寄存器的值,因此这里就涉及到了另外一种能力---芯片手册阅读能力

第15讲:Cortex-A中断

初学STM32的时候,使用的是M3系列的芯片,而对于不同内核的芯片,其中断也会有所不同。

其A系列的中断会更加复杂

Cortex-M 内核有个中断系统的管理机构—NVIC,Cortex-A 内核的中断管理机构叫做 GIC,全称是 general interrupt controller

STM32中断向量表

中断向量偏移 

 

 Cortex-A7中断系统简介

 可以发现A7只有8个中断向量,而我们常见的中断是归IRQ中断管理,有点像HAL库的回调函数一样,15个EXTI中断都被一个回调函数管理

 学STM32的时候,中断向量表ST公司帮我们写好了,但是IMX6ULL的这个A7的中断向量表没有帮我们写好,因此我们需要自己写中断向量表

 

总结

后面听不懂了,总结太难了

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

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

相关文章

K8s入门

K8s入门K8s入门k8s介绍k8s功能概述k8s架构k8s核心概念服务器配置要求部署方式使用kubeadm搭建一个k8s集群所有节点安装 Docker/kubeadm/kubeletK8s入门 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这…

84.【Vue--初刷】

vue.js(一)、vue.js简介1.简介(1).MVVM模式的实现(2).为什么要使用Vue.js(3).为什么要使用MVVC2.应用场景3.JavaScipt框架(1).JQuery :(2).Angular(3).React(4).Vue(5).Axios4.UI框架【可视化】5.JavaScript 构建工具6.三端开发(1).混合开发(Hybrid App)(2).微信小程序7.后端技…

LeetCode题解 回溯(一):77 组合;216 组合总和III

回溯 从今天开始进入回溯,其实此前也接触过几道使用了该思想的题目 回溯的思想是“倒退到上一个状态”,通常结合递归,解决的问题多是“从众多组合中找出符合条件的组合”的问题,随想录中给出了题目大纲: 回溯算法解决…

Linux学习笔记——ZooKeeper集群安装部署

5.8、ZooKeeper集群安装部署 5.8.1、简介 Zookeeper是一个分布式的、开放源码的分布式应用程序协调服务,是Hadoop和HBase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。…

CHAPTER 2 Docker镜像

docker镜像2.1 docker image 获取2.1.1 命令格式(pull)2.1.2 层(layer)2.1.3 镜像重名2.2 查看镜像信息(ls,tag,inspect,history)2.2.1 使用images命令列出镜像(ls)2.2.2…

uni-app:小程序开发总结

内容持续更新中~~~😘uniapp项目起步:工具下载在Dcloud 官网上下载 HBuilderX 开发工具,以及微信开发者工具.(同时你要在微信开发者文档进行小程序注册,拿到 ID, HBuilderX 和 微信开发者工具 你都要进行注册登录)项目创建我们可以通过HBuilderX 来进行基础版的项目创…

【阶段三】Python机器学习12篇:机器学习项目实战:朴素贝叶斯模型的算法原理与朴素贝叶斯分类模型

本篇的思维导图: 朴素贝叶斯模型的算法原理 朴素贝叶斯是贝叶斯模型当中最简单的一种,其算法核心为如下所示的贝叶斯公式: 其中P(A)为事件A发生的概率,P(B)为事件B发生的概率,P(A|B)表示在事件B发生的条件下事件A发生的概率,同理P(B|A)则表示在事件A发…

2023-01-10 clickhouse-聚合函数的源码再梳理

https://cloud.tencent.com/developer/article/1815441 1.IAggregateFunction接口梳理 话不多说,直接上代码,笔者这里会将所有聚合函数的核心接口代码全部列出,一一梳理各个部分: 构造函数 IAggregateFunction(const DataTypes …

Android设置本地字体文件ttf

目录 前言 ①使用typeface 方式 一、创建加载字体实例 二、使用步骤 1.在Application中加载字体 2.在xml中使用 ②使用fontFamily 方式 1、在res/font下导入ttf文件 2、在xml中使用 总结 前言 产品告诉UI设计设计图时要使用炫酷字体。因为Android不像网页项目可以使用…

如何使用Jasper导出用户列表数据?

场景说明在使用JasperjaspersoftStudio导出用户列表数据导出(如下图)是比较简单的,就是把用户列表数据,一个List集合放到 JRBeanCollectionDataSource中即可。但是如果有多个List集合需要导出呢,这个应该怎么办?比如:一个用户的集…

用Python发邮件(附完整源代码)

目录 一、背景 1.1、前言 1.2、说明 二、SMTP协议 2.1、SMTP协议作用 2.2、SSL作用 三、步骤 3.1、开启QQ邮箱SMTP 四、代码 4.1、完整源代码 五、结果 5.1、代码运行结果 六、总结 6.1、总结 一、背景 1.1、前言 写了一个简陋的2023年12306自动化购票程序&…

微服务保护 - Sentinel

1.概念: 一:sentinel 介绍 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助…

黑马学ElasticSearch(六)

目录: (1)搜索结果处理-排序 (2)搜索结果处理-分页 (3)搜索结果处理-高亮 (1)搜索结果处理-排序 评分降序、价格升序查询 第二 第三 一旦进行了排序_score就没有值了 …

Qt 自定义流程图 diagram

Qt 自定义流程图 diagram前言程序执行效果程序源码下载图形视图框架成员介绍重写QGraphicsItem程序源码介绍重点代码前言 本文将对QGraphicsScene, QGraphicsView,QGraphicsItem这三个类进行简单介绍,并通过diagram流程图项目对自定义QGraphicsItem操作进行演示讲解…

Docker从无到有

随着各个软件的版本越来越多&#xff0c;软件开发、使用环境愈发复杂&#xff0c;Docker日益受到广泛应用。本文记录下从零开始了解、使用docker的各个步骤。 Docker有3个基本概念: Image&#xff0c;镜像。镜像就是系统的快照。静态。每个Image以<Repo Name>:<Tag …

求助:程序员得了结膜炎+干眼症怎么办?

大概是2022年12月初开始&#xff0c;我就感觉眼睛有看东西有点肿胀和模糊&#xff0c;还有就是总想眯眼。本来以为就是用眼过度导致的疲劳&#xff0c;想着周六周日好好休息一下应该就好了&#xff0c;但是没想到不仅没好还加重了。不得已去了医院求助医生。 我去的是杭州的浙…

TS:镜像构建过程中go下载第三方包失败-2023.1.8(已解决)

title: TS&#xff1a;镜像构建过程中go下载第三方包失败-2023.1.8(已解决) date: 2023-1-10 categories: Golang tags:Golang TS&#xff1a;镜像构建过程中go下载第三方包失败-2023.1.8(已解决) 注意&#xff1a;一定要注意项目代码里go版本和自己机器go版本是否一致&#x…

5.2中断系统中的设备树——Linux对中断处理的框架及代码流程简述

当发生中断时&#xff0c;CPU会跳到一个固定的地址去执行代码&#xff0c;这个固定的地址就被称为中断向量。 以ARM920T为例&#xff0c;它的中断向量默认是地址24&#xff08;0x18&#xff09;的地方。那么&#xff0c;就可以在这里放一条跳转指令。 一系列的跳转指令用来处…

基于配置系统和流水线的热更新方案

文章目录背景方案调研具体方案方案优缺点背景 最近我们要在一个新的 App 上增加热更新的能力&#xff0c;按照以往的设计思路&#xff0c;需要后台一起参与&#xff0c;并提供对应的接口&#xff0c;具体的接口如下&#xff1a; 接口参数返回值备注uploadBasePkgappVersion&a…

接口管理工具YApi怎么用?颜值高、易管理、超好用

众多接口管理工具如雨后春笋搬冒出。让人欣慰的是&#xff0c;有许多优秀作品来自国内&#xff0c;包含YApi和rap。看着中文的官网&#xff0c;熟悉的汉语&#xff0c;不禁让人暗爽。当然这也就带来另一个弊端&#xff0c;因为使用基数少&#xff0c;所以参考资料少。我们想学习…