Linux驱动开发第1步_了解STM32MP157D

了解STM32MP157D有哪些硬件资源,为以后进行Linux驱动开发做准备。

STM32MP157A/D器件基于高性能双核Arm®Cortex®-A7 32位RISC内核,工作频率高达800 MHz。Cortex-A7处理器:每个CPU具有32kbyte L1指令缓存,每个CPU具有32kbyte L1数据缓存和256kbyte的二级缓存。Cortex-A7处理器能提供比Cortex-A5多20%的单线程性能,与Cortex-A9的性能相似。

Cortex-A7集成了Cortex-A15和Cortex-A17处理器的所有功能,包括硬件虚拟化支持、NEON™和128位AMBA®4AXI总线接口。

STM32MP157A/D器件还嵌入了一个Cortex®-M4 32位RISC内核,工作频率高达209 MHz。Cortex-M4核心具有浮点单元(FPU)单精度,支持Arm®单精度数据处理指令和数据类型。

Cortex®-M4支持一整套DSP指令和内存保护单元(MPU),增强了应用程序的安全性。

STM32MP157A/D器件还嵌入了一个3D图形处理单元(Vivante®- OpenGL®ES 2.0),运行频率高达533 MHz,性能高达26 Mtriangle/s,133 Mpixel/s。

STM32MP157A/D提供外部SDRAM接口,支持高达8gbit(1gb)密度的外部存储器,16或32位LPDDR2/LPDDR3或DDR3/DDR3L高达533mhz。

STM32MP157A/D器件采用高速嵌入式存储器,具有708 kb的内部SRAM(包括256 kb的AXI SYSRAM,3组128 kb的AHB SRAM,备份域64 kb的AHB SRAM和备份域4 kb的SRAM),以及增强型I/ o和外设连接到APB总线,AHB总线,32位多AHB总线矩阵和64位多层AXI互连,支持内部和外部存储器访问。

1、ARM核

开发板的CPU使用的是STM32MP157D,它采用的是32位双核ARM®Cortex®-A7(工作频率800 MHz)和32位ARM®Cortex®-M4(工作频率209 MHz)架构。

Cortex®-A7

A7核有两个;

每个CPU的L1指令缓存为32K字节;

每个CPU的L1数据缓存为32K字节;

二级缓存为256KB;

图形处理单元(GPU)

Cortex®-M4核支持浮点单元(FPU)/内存保护单元(MPU)。

2、存储区

外部DDR最多为1GB;

内部SRAM有708KB,分配如下:

1)、位于“MPU域的SYSRAM”为256KB;

2)、位于“MCU域的SRAM1”为128KB;

3)、位于“MCU域的SRAM2”为128KB;

4)、位于“MCU域的SRAM3”为64KB;

5)、位于“MCU域的SRAM4”为64KB;

6)、位于“保留域的SRAM”为64KB,在Standby模式或VBAT模式下,该区域的内容可以保留。

7)、位于“备份域中的SRAM”占4KB;

3、双模Quad-SPI内存接口

4、外部存储器控制器

它采用16位数据总线,并行接口,连接到外部集成电路和SLC NAND存储器。

5、boot模式(启动模式)

6、电源

1)、在Standby模式中,VDD是主电源,用来给I/ o和内部部件供电,电压范围为1.71 V至3.6V。

2)、VBAT引脚可接外部电池(1.2 V < VBAT < 3.6 V),当没有使用外部电池时,必须将VBAT引脚连接到VDD引脚。

3)、VDDA引脚是模拟电源,用来给ADC,DAC和VREF供电,电压范围为1.71 V至3.6 V。

只有当VDDA大于等于1.8 V时,才能使用DAC。当使用“内部VREF+”时,要求VDDA电压大于或等于“VREF+ + 0.3 V”。

4)、VDDA1V8_REG引脚是内部稳压器的输出,内部连接到USB PHY和USB PLL。内部VDDA1V8_REG稳压器默认为启用,可以由软件控制。在Standby模式中,它总是关闭的。

5)、BYPASS_REG1V8引脚是一个特殊引脚,要么连接到VSS,要么连接到VDD,用来启动或停用稳压器。

当VDD低于2.25 V时,1.8 V稳压器会被旁路掉,BYPASS_REG1V8 = VDD。

当VDD低于1.98 V时,供电范围为1.65 V - 1.98 V,即使用VDD=1.8V供电的情况下,DDA1V8_REG引脚必须连接到VDD。

6)、VDDA1V8_DSI是模拟DSI电源,电压范围为1.65 V至1.98 V(1.8 V型),应该连接到VDDA1V8_REG引脚。

7)、VDDA1V1_REG引脚是内部稳压器的输出,内部连接到USB PHY。内部VDDA1V1_REG稳压器默认为启用,可以通过软件控制。在Standby模式中,它总是关闭的。

8)、VDDA1V2_DSI_REG引脚是内部稳压器的输出,在CPU内部连接到DSI PLL。

9)、VDDA1V2_DSI_PHY是模拟电源,用来给DSI PHY供电,它连接到VDDA1V2_DSI_REG。

10)、VDD3V3_USBHS和VDD3V3_USBFS分别给USB高速和全速PSY供电。电压范围为3.07 V至3.6 V。

VDD3V3_USBFS用来给OTG_VBUS和ID引脚供电。因此,当USB高速时,必须使用VDD3V3_USBFS给OTG设备供电。如果不使用VDD3V3_USBFS,必须连接到VDD。

7、时钟管理器

1)、内部振荡器

HSI时钟为64MHz;

CSI时钟为4MHz;

LSI时钟为32KHz;

2)、外部振荡器

HSE时钟为8-48MHz;

LSE时钟为32.768KHz;

3)、RCC有4个PLL

PLL1是MPU的专用时钟;

PLL2给AXI-SS(包括APB4,APB5,AHB5和AHB6);PLL2为DDR接口提供时钟,还给GPU提供时钟;

PLL3给MCU和它的总线矩阵(包括APB1,APB2,APB3,AHB1,AHB2,AHB3和AHB4)提供时钟,其次给外设内核提供时钟;

PLL4专用于生成“各种外设的内核时钟”;

系统启动默认是使用HSI时钟,用户可以选择时钟配置。

8、系统复位源

1)、应用复位源

①由NRST引脚产生复位;

②由POR和PDR信号产生复位,通常被称为“power-on”复位;

③由BOR产生复位,通常被称为“brownout”复位;

④由独立看门狗1产生复位;

⑤由独立看门狗2产生复位;

⑥由Cortex-M4 的MCU产生软件复位;

⑦由Cortex-A7 的MCU产生软件复位;

⑧当时钟安全系统功能被激活时,出现HSE故障时产生复位;

2)、系统复位源

应用复位;

由POR_VDDCORE信号产生复位;

每次系统从Standby模式退出,都会产生复位。

9、普通IO

最多可提供176个IO端口,且支持中断;

10、通讯外设

6个I2C;

4个UART和4个USART;

6个SPI;

4个SAI;

SPDIF Rx,支持4个输入;

HAMI-CEC接口;

MDIO从机接口;

3个SDMMC,最多8位,支持SD卡,EMMC和SDIO通讯;

2个CAN控制器,支持CAN FD协议;

2个USB 2.0高速主机和1个USB 2.0全速OTG;或者是1个USB 2.0高速主机和1个USB 2.0全速OTG;

10M/100M/千兆以太网GMAC;

8~14位相机接口,每秒为140MB;

11、模拟外设

2个16位ADC;

1个温度传感器;

2个12位DAC;

1个DFSDM(ΣΔ调制数据滤波器),8个通道,6个滤波器;

内部外部ADC或DAC参考电压Vref+;

12、图形

3D GPU,最高可达26Mtriangle /s,133Mpixel/s。

LCD-TFT控制器,最多为24位,支持RGB888;

13、29个定时器和3个看门狗

2个32位定时器,最多支持4个输入捕获,4个输出比较,4个PWM,4个脉冲计数器和4个正交(增量)编码器输入;

2个16为电机控制定时器;

10个16位普通定时器;

RTC具有毫秒精度和硬件日历;

每个Cortex®-A7都有4个系统定时器,双核就是2*4个;

Cortex®-M4核有1个SysTick定时器;

3个看门狗:2个独立看门狗和1窗口看门狗;

14、硬件加速器

HASH算法支持MD5, SHA-1, SHA224, SHA256;

HMAC算法,它是MAC算法中的一种类型;

2个随机发生器;

2个CRC计算单元;

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

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

相关文章

w039基于Web足球青训俱乐部管理后台系统开发

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0…

windows C#-编写 C# LINQ 查询(上)

介绍性的语言集成查询 (LINQ) 文档中的大多数查询是使用 LINQ 声明性查询语法编写的。 但是在编译代码时&#xff0c;查询语法必须转换为针对 .NET 公共语言运行时 (CLR) 的方法调用。 这些方法调用会调用标准查询运算符(名称为 Where、Select、GroupBy、Join、Max 和 Average …

c++入门->类的定义以及this详细解析

1.对象的定义 可以在内部定义变量还有函数&#xff0c;而其中的public是声明这里面的东西是共有的&#xff0c;可以调用也可以修改&#xff0c;但是private则是声明这里面的东西是私有的不可以被改变的&#xff0c;但是在类里面共有的是可以使用私有的。 在对象中默认都是私有…

SAP- 不写代码创建报表

创建报表 点击报保存&#xff0c;表Z0708创建完成 关联三张数据库底表 点击返回 点击报保存&#xff0c;表Z0708创建完成 创建报表

从PE结构到LoadLibrary

从PE结构到LoadLibrary PE是Windows平台主流可执行文件格式,.exe , .dll, .sys, .com文件都是PE格式 32位的PE文件称为PE32&#xff0c;64位的称为PE32&#xff0c;PE文件格式在winnt.h头中有着详细的定义&#xff0c;PE文件头包含了一个程序在运行时需要的所有信息&#xff…

聚类分析 | MSADBO优化Spectral谱聚类优化算法

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于改进正弦算法引导的蜣螂优化算法(MSADBO)优化Spectral谱聚类&#xff0c;matlab代码&#xff0c;直接运行! 创新独家&#xff0c;先用先发&#xff0c;注释清晰&#xff0c;送MSADBO参考文献!优化参数 优化后的带…

【C++】构造与析构函数

目录&#xff1a; 一、 This指针  &#xff08;一&#xff09;使用方法&#xff1a; 二、类的默认成员函数 三、构造函数  &#xff08;一&#xff09;构造函数的特点 四、析构函数 &#xff08;一&#xff09;析构函数的特点 正文 一、 This指针 在c语言中我们调用函…

2021TCSVT,VDM-DA:面向无源数据域自适应的虚拟域建模

原文标题&#xff1a;VDM-DA: Virtual Domain Modeling for Source Data-free Domain Adaptation 中文标题&#xff1a;VDM-DA&#xff1a;面向无源数据域自适应的虚拟域建模 1、Abstract 领域适应旨在利用标签丰富的领域&#xff08;源领域&#xff09;来帮助标签稀缺领域&…

MySQL数据库1——数据库概论

一.数据库概论 1.数据库 数据库&#xff08;DataBase&#xff0c;DB&#xff09;&#xff1a;是长期存储在计算机内、有组织的、统一管理的相关数据的集合。简单来说&#xff0c;它就是一个存储各种数据的仓库&#xff0c;且存储过程不是随便而是有组织的。 数据库管理系统&am…

英伟达Tensor Core技术架构原理分析

英伟达Tensor Core架构技术原理 英伟达的Tensor Core架构是一种专为加速人工智能、深度学习、高性能计算(HPC)等领域中的矩阵运算和张量运算而设计的硬件单元。自首次在Volta架构中引入以来&#xff0c;Tensor Cores已成为NVIDIA高端GPU的核心特性&#xff0c;并在后续的Turing…

Linux基础5-进程控制1(fork创建子进程,写时拷贝,进程退出)

上篇文章&#xff1a;Linux基础4-进程5&#xff08;程序地址空间详解&#xff09;-CSDN博客 本篇重点&#xff1a;fork&#xff0c;写实拷贝&#xff0c;进程退出 目录 一. fork创建子进程 1.1 fork用法 1.2 fork返回值有两个的理解 二. 进程退出码 2.1 进程退出码 2.2 进…

用python中的tkinter包实现进度条

python中的tkinter包是一种常见的设计程序的GUI界面用的包。本文主要介绍这里面的一个组件&#xff1a;进度条&#xff08;Progressbar&#xff09;。Tkinter Progressbar里面对进度条组件已经做了一定的介绍&#xff0c;但比较抽象。本文以另一种方式介绍这个组件及其常用用法…

20.使用标准差剔除异常值

标准差剔除异常值 1. 方法2. 示例代码2.1 数据读取与清洗2.2 分段读取数据并绘图2.3 解释2.4 outliers2.5 结果展示 我有个记录数据采集后格式是step_rewards.txt 的文档&#xff0c;里面只有一列数据&#xff0c;10*10000行数据&#xff0c;没有表头&#xff0c;分别代表奖励数…

中科蓝讯修改蓝牙名字:【图文讲解】

本文以市面上一款公板公模的畅销产品为例。K12蓝牙音响。 音响用的芯片是&#xff1a;AB5768E MIC用的芯片是&#xff1a;AB5769A 硬件框架图如下&#xff1a; 芯片修改名字&#xff0c;通过下载工具中的配置进行修改。选择蓝牙配置&#xff0c;然后会出现蓝牙名字&#xff…

旅行包发霉怎么处理 除霉及防霉解决方法

近些年听到很多箱包工厂的心声&#xff0c;为什么箱包旅行包每年都会出现长霉请况呢&#xff1f;长霉了&#xff0c;也就是长毛了&#xff0c;长出那些病菌、真菌、细菌等微生物。经ihaoer防霉人士介绍旅行包长霉处理方法如下&#xff1a; 旅行包长霉的因素 一、旅行包储存在阴…

14、交互补充

1、元素的三大系列 1.1、offset系列 1.1.1、offset初相识 使用offset系列相关属性可以动态的得到该元素的位置&#xff08;偏移&#xff09;、大小等 获得元素距离带有定位祖先元素的位置获得元素自身的大小&#xff08;宽度高度&#xff09;注意&#xff1a;返回的数值都不…

【IEEE出版、八大高校联合举办、稳定EI检索】第四届人工智能与智能制造国际研讨会(AIIM 2024,12月20-22日)

第四届人工智能与智能制造国际研讨会&#xff08;AIIM 2024&#xff09; The 4th International Symposium on Artificial Intelligence and Intelligent Manufacturing 2024年12月20-22日 中国成都 重要信息 大会官网&#xff1a;www.isaiim.com 大会时间&#xff1a;202…

朴素贝叶斯算法探讨与实践

引言 和撰写博文[1]的缘由一样&#xff0c;本文是想要在所创设的专栏[2]里把所谓的十大机器学习算法[3]全部过一遍。 朴素贝叶斯算法是传统机器学习里的一种可以被用来进行分类的算法&#xff0c;本文将对其原理进行说明&#xff0c;并基于原理给出一个基于该算法的分类实践。…

《数据在内存中的存储》

内存函数 1. 整数在内存中的存储 &#xff08;1&#xff09;旧识回顾&#xff1a; 之前在学到操作符的时候&#xff0c;我们就学过了下面的内容&#xff1a; 整数的二进制的表示方式有三种&#xff0c;原码、反码、补码 有符号的整数&#xff0c;三种表示方式均有符号位和数…

【路径规划】粒子群算法、遗传算法、差分进化算法、灰狼优化算法、麻雀优化算法(PSO、GA、DE、GWO、SSA)路径规划

摘要 本文探讨了多种智能优化算法在路径规划中的应用&#xff0c;包括粒子群算法&#xff08;PSO&#xff09;、遗传算法&#xff08;GA&#xff09;、差分进化算法&#xff08;DE&#xff09;、灰狼优化算法&#xff08;GWO&#xff09;和麻雀优化算法&#xff08;SSA&#x…