【ARM Coresight 系列文章 10.3 - ARM Coresight STM 寄存器介绍 及STM DMA 传输介绍】

文章目录

    • STM Register summary
      • STM DMA 相关的寄存器
      • DMA Transfer
        • Burst request
        • Single and burst request

STM Register summary

STM 的寄存器主要可以分为以下几类:

  • STM DMA 相关的;
  • STM HW Trigger 相关的;
  • 系统控制及状态寄存器;
  • 只读寄存器。

STM DMA 相关的寄存器

在这里插入图片描述
STM 处理数据的方式有两种:

  • 使用 CPU 往对应的 channels(stimulus port) 中写数据;
  • 使用 DMA 向 对应的channels(stimulus port) 中搬运数据。

其中 STM 对DMA的使用方式又可以分为两种:

  • 调用软件 DMA Driver 的接口,STM destination address 直接填写 STM Stimulus port的地址;
  • 在 DMA 中配置好 STM destination address 地址和source address 之后,通过配置 STM DMA相关的寄存器来将memory中的数据搬运到STM 的 stimulus port中。

STMDMASTARTR: 发起DMA 传输;
STMDMASTOPR:结束DMA传输;
STMDMACTLR:控制DMA发起请求的水位寄存器;

在这里插入图片描述

图 1-1 STM 功能框图

在这里插入图片描述

图 1-2 Request and acknowledge buses on the peripheral request interface

  • dr: 外设 request bus.
  • da: DMAC acknowledge bus

外设 STM 可以通过 drtype[1:0] 对 DMAC 发起两种请求和一种响应:

  • 发起一次 single transfer 请求,drtype[1:0]=0b00
  • 发起一次 burst transfer 请求;drtype[1:0]=0b01
  • 响应一次 flush 请求。

外设 STM 通过使用 drlast 信号告诉 DMAC 哪次是最后一次 transfer request在当前的 series 中,drlast 可以和 drtype[1:0] 同时传输。

DMAC 可以使用 datype[1:0] 做两种响应和一种请求:

  • 当DMAC 完成一次 single transfer时,datype[1:0]=1
  • 当 DMAC 完成一次 burst transfer时,datype[1:0]=1
  • DMAC 发起一次flush request。

DMA Transfer

Burst request

在这里插入图片描述

图 1-3 Burst request signaling

  • T1 The DMAC detects a request for a burst transfer.
  • T3 - T6 The DMAC performs a burst transfer.
  • T7 The DMAC sets davalid HIGH and sets datype[1:0] to indicate that the burst
    transfer is complete.

当配置STM 寄存器 STMDMASTART.START bit 为 1 的时候, STM 就会将 其 DMA peripheral request interface 中连接到 DMAC 中的 drtype[1:0] 两信号设置为 0b01, 这样DMAC 就会检测到外设 STM 发起了一次 burst transfer 请求。

当DMAC 完成了外设 STM 发起的一次 burst transfer时就会将DATYPE[1:0]两个信号设置为 0b01 来告知 STM 发起的一次 burst transfer 传输已经完成。

STM 不仅可以通过 DMA peripheral request interface 触发 DMAC 从 Memory 中向 STM中搬运数据,可以触发Memory 向 memory中的数据搬运

Single and burst request

TODO

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

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

相关文章

25.6 matlab里面的10中优化方法介绍——模拟退火算法(matlab程序)

1.简述 相信没有相关物理知识背景的小伙伴看到“退火”二字是一脸懵逼的...固体的退火过程指的是将固体加热至足够高的温度,再使其慢慢冷却的过程。在加热过程中,原本有序排列的内部粒子开始无序运动,此时固体的内能不断增大;而在…

Nginx 高可用负载均衡(三种模式)

一、nginx普通集群负载均衡 1、安装keepalived (1)下载 https://www.keepalived.org/download.html(2)解压 tar -zxvf keepalived-2.0.18.tar.gz(3)使用configure命令配置安装目录与核心配置文件所在位置: ./configure --prefix/usr/local/keepalived --sysconf/e…

Vlan端口隔离(第二十四课)

一、端口隔离 1、端口隔离技术概述 1)端口隔离技术出现背景:为了实现报文之间的二层隔离,可以将不同的端口加入不同的VLAN,但这样会浪费有限的VLAN ID资源。 2)端口隔离的作用:采用端口隔离功能,可以实现同一VLAN内端口之间的隔离。 3)如何实现端口隔离功能:只需要…

十五章:使用类别峰值响应的弱监督实例分割

0.摘要 目前,使用图像级别标签而不是昂贵的像素级掩码进行弱监督实例分割的研究还未得到充分探索。本文通过利用类别峰值响应来实现一个分类网络,用于提取实例掩码,来解决这个具有挑战性的问题。只通过图像标签的监督下,完全卷积的…

HBuilder 编辑器终端窗口无法输入,未响应的解决方案

HBuilder 编辑器终端窗口无法输入,未响应的解决方案 一、找到 HBuilder 安装目录 找到 main.js HBuilderX - plugins - builtincef3terminal - script - main.js 二、编辑 main.js 将 main.js 文件中的 powershell.exe 和 cmd.exe 路径都改为绝对路径 C:/Windows…

【深度学习】WaveMix: A Resource-efficient Neural Network for Image Analysis 论文

论文:https://arxiv.org/abs/2205.14375 代码:https://github.com/pranavphoenix/WaveMix 文章目录 ABSTRACTIntroductionBackground and Related WorksWaveMix Architectural FrameworkOverall architectureWaveMix block Experiments and ResultsTasks…

activemq消息中间件

ActiveMQ消息中间件详解 下载地址:https://activemq.apache.org/activemq-5015009-release 1、MQ的产品种类 1.1、消息中间件的特性/共同特性/共同维度 Kafka(大数据专用、由java/scala编写) API发送和接收MQ的高可用性MQ的集群和容错配置…

Docker 之 Consul容器服务更新与发现

一、Consul介绍 1、什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构&#xff…

Android平台GB28181设备接入侧如何同时对外输出RTSP流?

技术背景 GB28181的应用场景非常广泛,如公共安全、交通管理、企业安全、教育、医疗等众多领域,细分场景可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终…

Flutter的开发环境搭建-图解

前言:Flutter作为一个移动应用开发框架,具有许多优点和一些局限性。最大的优点就是-跨平台开发:Flutter可以在iOS和Android等多个平台上进行跨平台开发,使用一套代码编写应用程序,节省开发时间和成本。 Flutter可以编…

了解Unity编辑器之组件篇Mesh(三)

Mesh:是一种三维模型的表示形式,它由一系列顶点、三角形(或其他多边形)和相关属性组成。Mesh用于表示物体的外观和形状,它是可见物体的基本组成部分。通过操作Mesh,开发者可以实现各种视觉效果、物理模拟和…

基于PCA和小波算法联合实现红外与可见光图像融合的Matlab仿真(完整源码+35组数据集)

以下是一个使用PCA和小波实现红外与可见光图像融合的Matlab仿真完整源码。源码中只需修改红外图像(IR.bmp)和可见光图像(VI.bmp)名字即可 文章目录 效果展示数据集展示步骤说明完整源码下载地址 效果展示 最终融合效果展示&#x…

java执行ffmpeg命名的Docker镜像制作

今天来记录一下通过Dockerfile制作docker镜像的过程 背景 我需要通过java服务调用ffmpeg去执行视频合并的功能,想把这个环境封装到docker镜像当中,方便以后迁移部署。 实现方法 随便找一个路径创建一个Dockerfile文件 touch Dockerfilevim Dockerfi…

如何使用vscode连接远程服务器

1、安装remote-ssh 在应用商店搜索remote-ssh,安装remote-ssh 2、安装完成后会出现远程资源管理器 3、点击远程资源管理器 --ssh的➕号,在输出框内输入要连接的服务器ip及账户名 如:ssh 账户名ip地址 4、输入后回车保存 5、保存后刷新一下 6…

Redis学习路线(1)—— Redis的安装

一、NoSQL SQL VS NoSQL 1、名称 SQL 主要是指关系数据库。NoSQL 主要是指非关系数据库。 2、存储结构 SQL 是结构化的数据库,以表格的形式存储数据。NoSQL 是非结构化的数据库,以Key-Value(Redis),JSON格式文档&…

【React】版本正确安装echarts-liquidfill(水球图表)包引入不成功问题

目标效果图: 安装: npm install echarts npm install echarts-liquidfill 引入: Import:import * as echarts from echarts; import echarts-liquidfill 或 import echarts-liquidfill/src/liquidFill.jsOr:import * as echarts from…

TreeMap的底层实现

0. 你需要知道的TreeMap的内置属性 0.1 节点属性 K key; // 键 V value; // 值 Entry<K,V> left; // 左子节点 Entry<K,V> right; // 右子节点 Entry<K,V> parent; // 父节点 boolean color; // 节点的颜色0.2 成员变量 //比较器对象private f…

Android性能优化之游戏引擎初始化ANR

近期&#xff0c;着手对bugly上的anr 处理&#xff0c;记录下优化的方向。 借用网上的一张图&#xff1a; 这里的anr 问题是属于主线程的call 耗时操作。需要使用trace 来获取发生anr前一些列的耗时方法调用时间&#xff0c;再次梳理业务&#xff0c;才可能解决。 问题1 ja…

14 Linux实操篇-进程管理(重点)

14 Linux实操篇-进程管理&#xff08;重点&#xff09; 文章目录 14 Linux实操篇-进程管理&#xff08;重点&#xff09;14.1 进程的基本操作14.1.1 进程和程序14.1.2 父进程和子进程14.1.3 常见的Linux进程14.1.4 显示系统执行的进程-ps14.1.5 终止进程-kill/killall14.1.6 查…

LeetCode 75 第十二题(11)盛最多水的容器

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 配合着示例给出的图片我们可以得知找出盛水最多的容器是什么意思,给一个数组,找出数组中两个元素能围成的最大的矩阵面积是多少. 比较直观的想法是套两层for循环暴力解出来,但是这题是中等难度题,一般中等题是没法用暴力得…