关于Cortex-M4处理器和核心外设

Cortex-M4处理器是一款专为微控制器市场设计的高性能32位处理器。它为开发人员提供了显著的好处,包括:

  • 出色的处理性能与快速中断相结合
  • 增强的系统调试,具有广泛的断点和跟踪功能
  • 高效的处理器核心,系统和存储器
  • 超低功耗集成睡眠模式和可选的深度睡眠模式
  • 平台安全性强,可选集成内存保护单元(MPU)

在这里插入图片描述
Cortex-M4处理器基于高性能处理器核心,采用3级流水线哈弗架构,非常适合要求苛刻的嵌入式应用。

该处理器通过高效的指令集和广泛优化的设计提供卓越的功耗效率,提供高端处理硬件,包括可选的符合IEEE754的单精度浮点计算,一系列单周期和SIMD乘法和乘法累加功能,饱和算法和专用硬件除法。

为了便于成本敏感设备的设计,Cortex-M4处理器实现了紧密耦合的系统组件,减少了处理器面积,同时显著提高了中断处理和系统调试能力。

Cortex-M4处理器实现了基于Thumb-2指令集的一个版本,确保了高代码密度和降低了程序内存需求。

为了优化低功耗设计,NVIC集成了睡眠模式,其中包括可选的深度睡眠功能。这使得整个设备可以在保持程序状态的同时快速断电。

系统级接口

Cortex-M4处理器提供使用AMBA技术的多个接口,以提供高速,低延迟的内存访问。
它支持非对齐数据访问,并实现原子位操作,从而实现更快的外设控制、系统自旋锁和线程安全的布尔数据处理。

Cortex-M4处理器有一个可选的内存保护单元(MPU),允许控制内存的各个区域,使应用程序能够利用多个特权级别,在逐个任务的基础上分离和保护代码、数据和堆栈,这些要求在许多嵌入式应用(如汽车)中变得至关重要。

可选集成配置调试

Cortex-M4处理器可以实现完整的硬件调试解决方案。
通过传统的JTAG端口或2引脚串行线调试(SWD)端口提供了处理器和内存的高系统可见性,这是微控制器和其他小型封装设备的理想选择。

对于系统跟踪,处理器集成了仪表跟踪宏单元(ITM)以及数据观察点和分析单元。为了对这些生成的系统事件进行简单且经济有效的分析,串行线查看器(Serial Wire Viewer, SWV)可以通过单个引脚导出软件生成的消息流、数据跟踪和分析信息。

可选的嵌入式跟踪Macrocell™(ETM)在比传统跟踪单元小得多的区域内提供无与伦比的指令跟踪捕获,使许多低成本mcu首次实现完整的指令跟踪。

可选的Flash补丁和断点单元(FPB)提供多达八个硬件断点比较器,调试器可以使用。FPB中的比较器还提供了在code存储器区域的程序代码中最多8个字的重新映射功能。这使得存储在不可擦除的基于rom的微控制器上的应用程序可以在设备中使用小型可编程存储器(例如闪存)时进行修补。在初始化期间,ROM中的应用程序从可编程存储器中检测是否需要补丁。如果一个补丁是必需的,应用程序程序FPB重新映射一些地址。当这些地址被访问时,这些访问被重定向到FPB配置中指定的重新映射表,这意味着不可修改ROM中的程序可以被修补。

Cortex-M4处理器的特点和优点总结

  • 系统外围设备的紧密集成减少了面积和开发成本
  • Thumb2指令集结合了高代码密度和32位性能
  • 可选配符合IEEE754标准的单精度FPU
  • ROM系统更新的代码补丁能力
  • 系统组件的功率控制优化
  • 集成睡眠模式,降低功耗
  • 快速代码执行,允许减慢处理器时钟或增加睡眠模式时间
  • 面向乘法积累的硬件除法和快速数字信号处理
  • 信号处理中的饱和算法
  • 确定性,高性能中断处理关键应用程序
  • 可选内存保护单元(MPU),用于关键安全应用
  • 广泛的实现定义的调试和跟踪功能:串行线调试和串行线跟踪减少了调试、跟踪和代码分析所需的引脚数量。

Cortex-M4核心外设

嵌套向量中断控制器
NVIC是一个嵌入式中断控制器,支持低延迟中断处理。

系统控制块
系统控制块(SCB)是程序员到处理器的模型接口。它提供系统实现信息和系统控制,包括配置、控制和系统异常报告。

系统定时器
是一个24位递减计数器。将其用作实时操作系统(RTOS)滴答计时器或简单的计数器。

内存保护单元
MPU通过定义不同内存区域的内存属性,提高系统的可靠性。它提供多达八个不同的区域,以及一个可选的预定义背景区域。

浮点单元
FPU提供符合ieee754标准的对单精度32位浮点值的操作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【手撕C语言 第八集】函数栈帧的创建与销毁

文章目录 一、什么是函数栈帧?二、函数栈帧能解决什么问题呢?(1)局部变量是如何创建的?(2)为什么局部变量不初始化内容是随机的?(3)函数调用时参数是如何传递…

C语言第七弹---循环语句

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 循环语句 1、while循环1.1、if和while的对比1.2、while语句的执行流程1.3、while循环的实践1.4、练习 2、for循环2.1、语法形式2.2、for循环的执行流程2.3、for循…

Qt 多次绘图

使用Qt 的时候发现: 背景:自己定义一个类,把它和某个ui文件绑定。(类似 Qt creator 默认创建的工程)问题:当鼠标在窗口内单击的时候会触发2次绘图。?难道不应该是一次吗? 于是开始了如下的测试…

linux安装python3.11

yum -y install gcc-c zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel下载地址 https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tar.xz 上传python文件&…

uniapp+vue3+ts--编写微信小程序对接e签宝签署时跳转刷脸效果(人脸识别)中间页代码

uniappvue3ts–编写微信小程序对接e签宝签署时跳转刷脸效果(人脸识别)中间页代码 e签宝内嵌H5方式集成签署页的文档说明:https://open.esign.cn/doc/opendoc/case3/ahb0sg 签署时跳转刷脸效果示意图: 1. 在文件夹新建一个文件&a…

GitHub提交 / 拉取时 443 fatal: unable to access ‘https:

这个问题嘛 懂得都懂 但是用了魔法后依旧会出现443错误 排查了工具发现并不是工具的问题 修改一下git代理即可解决 解决方法如下 确保魔法可用的情况下 打开魔法 打开系统设置 > 网络和Internet > 代理 找到自己的代理IP 如下 这里以我的代理IP和端口举例 在…

黑马程序员JavaWeb开发|Maven高级

一、分模块设计与开发 分模块设计: 将项目按照功能拆分成若干个子模块,方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。 注意:分模块开发需要先对模块功能进行设计,再进行编码。不会先将工…

使用ElEment组件实现vue表单校验空值

1.绑定表单组件数组rules 2.在data域中设定组件rules 3.设定调用方法函数 提交校验 取消: 测试页面 提交空值 失去焦点 取消重置 提交后重置

完美解决:“已损坏,无法打开。 您应该将它移到废纸篓。”

1、Mac为什么会出现这个问题,懂得都懂(/dogo)。 2、首先看一下系统中的安全性与隐私设置,是否选择了任意来源,如果没有解锁设置。 3、如果还是报错,就可以祭出大招了,给文件赋予安全性设置。在…

AI分割一切模型SAM(Segment Anything Model)的C++部署

2023年最火爆的分割模型莫过于SAM,截止今天2024年1月19日,github上的star已经达到了41.7k的惊人数量。下面我们来体会一下如何运行这个模型,以及如何用C部署这个模型。 检查cuda环境 我的Cuda版本是12.0.1,如下, Cudn…

03.Elasticsearch应用(三)

Elasticsearch应用(三) 1.核心概念介绍 注意:类型(Type) 6.0之前的版本有Type概念,type相当于关系型数据库的表,ES官方将在ES9版本中彻底删除Type。7里面Type为ES默认的类型_doc 2.Cat API 介…

Matlab|基于改进遗传算法的储能选址定容(可任意设定储能数量)

目录 主要内容 部分代码 结果一览(以3个储能为例) 下载链接 主要内容 该模型采用改进遗传算法优化配电网系统中储能选址位置和容量,程序以IEEE33节点系统为分析对象,以网损最小为目标,采用matpower实现系…

diffusion入门

1. diffusion model 概念 https://zhuanlan.zhihu.com/p/638442430 这篇博客写得很好,顺便做一点笔记记录一下。 原博客附带的代码也很清晰易懂。 1.1 前向过程 后一个过程等于前一个结果的均值乘上sqrt(1-beta_t), 再加上方差beta_t的噪声。 这样下去可以得到 x…

每日一道算法题 16(2023-12-29)

package com.tarena.test.B20; import java.util.Arrays; import java.util.Scanner; /** * * 题目描述: 输入一个由n个大小写字母组成的字符串,按照Ascii码从小到大的排序规则,查找字符串中第k个最小ascii码值的字母(k>…

023-安全开发-PHP应用后台模SessionCookieToken身份验证唯一性

023-安全开发-PHP应用&后台模&Session&Cookie&Token&身份验证&唯一性 #知识点: 1、PHP后台身份验证模块实现 2、Cookie&Session技术&差异 3、Token数据包唯一性应用场景 项目1:用cookie做后台身份验证 项目2&#xff1a…

git bash右键菜单失效解决方法

git bash右键菜单失效解决方法 这几天重新更新了git,直接安装新版本后,右键菜单失效找不到了。找了好几个博客,发现都不全面,最后总结一下解决方法: (1)按winr,输入regedit打开注册…

解决git管理GitHub连接问题

前言 git提交文档到GitHub老是出问题,记录下 报错 首先是常规操作更新文档,命令如下 $ git add . $ git commit -m "add" $ git push origin main后面老是报这种错误,如下图 To github.com:zhenxijiabei/yuque.git! [rejected…

mysql-进阶篇

文章目录 存储引擎MySQL体系结构相关操作 存储引擎特点InnoDBInnoDB 逻辑存储结构 MyISAMMemory三个存储引擎之间的区别存储引擎的选择 索引1. 索引结构B-TreeB-Tree (多路平衡查找树)B-Tree演变过程 BTree与 B-Tree 的区别BTree演变过程 Hash 2.索引分类3.索引语法演示 4.SQL性…

react18介绍

改进已有属性,如自动批量处理【setState】、改进Suspense、组件返回undefined不再报错等 支持Concurrent模式,带来新的API,如useTransition、useDeferredValue等 如何升级React 18 npm install reactlatest react-domlatestnpm install ty…

5分钟做自己的微信红包封面

文章目录 怎么制作自己的红包封面?开通红包封面的要求如下:收费情况制作具体网站:https://chatapi.onechat.fun/register?affYoU6 提交审核logo封面、挂件、气泡证明材料 发放红包封面其他 怎么制作自己的红包封面? 开通红包封面…