【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

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

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

相关文章

Linux系统中的SQL语句

本节主要学习,SQL语句的语句类型,数据库操作,数据表操作,和数据操作等。 文章目录 一、SQL语句类型 DDL DML DCL DQL 二、数据库操作 1.查看 2.创建 默认字符集 指定字符集 3.进入 4.删除 5.更改 库名称 字符集 6…

用python通过http实现文件传输,分为发送端和接收端

要使用Python通过HTTP实现文件传输,可以使用Python的 requests 库来发送和接收HTTP请求。以下是一个示例代码,其中包括发送端和接收端的实现。 发送端: import requestsdef send_file(file_path, url):with open(file_path, rb) as file:re…

Safetensors,高效安全易用的深度学习新工具

大家好,本文将介绍一种为深度学习应用提供速度、效率、跨平台兼容性、用户友好性和安全性的新工具。 Safetensors简介 Hugging Face开发了一种名为Safetensors的新序列化格式,旨在简化和精简大型复杂张量的存储和加载。张量是深度学习中使用的主要数据…

Cypress 上传 pdf 变空白页问题

在使用cypress 上传文件时,上传正常,但是,pdf一直空白的,翻边了资料也没找到原因。最后在一个不起眼的地方发现了问题所在。 错误的代码: cy.fixture(CBKS.pdf).as(uploadFile)cy.get(.el-upload-dragger).selectFile…

借助 Mybatis 的动态 SQL 解决传参不确定问题

在上一篇的:Mybatis 操作数据库的基本 CRUD 以及查询操作详析_糊糊涂涂的博客-CSDN博客中介绍了Mybatis使用固定SQL语句操作数据,本篇介绍 Mybatis 一个强大的特性:动态SQL。 动态 SQL 解决什么问题? 那当我们要执行的业务逻辑有…

【Nodejs】Node.js开发环境安装

1.版本介绍 在命令窗口中输入 node -v 可以查看版本 0.x 完全不技术 ES64.x 部分支持 ES6 特性5.x 部分支持ES6特性(比4.x多些),属于过渡产品,现在来说应该没有什么理由去用这个了6.x 支持98%的 ES6 特性8.x 支持 ES6 特性 2.No…

vue3如何封装接口

🙂博主:锅盖哒 🙂文章核心:如何封装接口 目录 前言 1.首先,安装并导入axios库。你可以使用npm或yarn来安装: 2.创建一个api.js文件来管理接口封装: 3.在Vue组件中使用封装的接口&#xff1…

Andrid进阶之回调方法

回调在android开发中必不可少,也是比较常见的,比如控件的点击事件,我们自定义回调基本就是在创建一个方法的时候能够及时拿到对应的信息 Kotlin写法: private var mOnListener: OnMListener? nullinterface OnMListener {fun g…

LeetCode 每日一题 2023/7/24-2023/7/30

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 7/24 771. 宝石与石头7/25 2208. 将数组和减半的最少操作次数7/26 2569. 更新数组后处理求和查询7/27 2500. 删除每行中的最大值7/28 2050. 并行课程 III7/29 141. 环形链表…

安装Python之后 安装库报错 There was an error checking the latest version of pip.

报错代码 & 图片如下 Looking in indexes: https://pypi.tuna.tsicmdnghua.edu.cn/simple WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by NewConnectionError(<pip._vendor.urllib3.connection.HT…

Ubuntu 曝Linux漏洞,近 40% 用户受影响

Bleeping Computer 网站披露&#xff0c;Wiz 研究人员 s.Tzadik 和 s.Tamari 发现 Ubuntu 内核中存在两个 Linux 漏洞 CVE-2023-32629 和 CVE-2023-2640&#xff0c;没有特权的本地用户可能利用其在设备上获得更高权限&#xff0c;影响大约 40% 的 Ubuntu 用户。 Ubuntu 是目前…

双重for循环优化

项目中有段代码逻辑是个双重for循环&#xff0c;发现数据量大的时候&#xff0c;直接导致数据接口响应超时&#xff0c;这里记录下不断优化的过程&#xff0c;算是抛砖引玉吧~ Talk is cheap,show me your code&#xff01; 双重for循环优化 1、数据准备2、原始双重for循环3、…

【设计模式——学习笔记】23种设计模式——组合模式Composite(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入 学校院系展示 编写程序展示一个学校院系结构: 需求是这样&#xff0c;要在一个页面中展示出学校的院系组成&#xff0c;一个学校有多个学院&#xff0c;一个学院有多个系 【传统方式】 将学院看做是学校的子类&#xff0c;系是学院的子类&#xff0c;小的组织继承大…

K8s使用Ceph作为后端存储

Ceph概述 部署Ceph集群 Ceph存储使用 Pod使用Ceph持久化数据 Ceph监控 Rook部署Ceph 1❖ Ceph概述 Ceph介绍 Ceph架构 Ceph核心概念 Ceph介绍 Ceph是一个开源的分布式存储系统&#xff0c;具有高扩展性、高性能、高可靠性等特点&#xff0c;提 供良好的性能、可靠性和可扩展…

ROS与STM32通信-rosserial

文章目录 硬件接线 软件STM32CubeMX配置 rosserial移植上位机订阅-下位机发布上位机订阅下位机发布通信 上位机发布-下位机订阅上位机发布下位机订阅通信 硬件 STM32F103c8t6OLED(I2C)USB2TTLStlink 接线 OLED(GPIO模拟I2C) 硬件引脚OLEDSCLPA4OLEDSDAPA5 USART1 硬件引脚…

CSS3 Flexbox

Flex 是 Flexible Box 的缩写&#xff0c;意为弹性盒子布局。 CSS3中一种新的布局模式&#xff1a;W3C在2009年提出的一种布局方案&#xff0c;一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。其目的是提供一种更加有效的方式来对一个容器…

深度学习入门(二):神经网络整体架构

一、前向传播 作用于每一层的输入&#xff0c;通过逐层计算得到输出结果 二、反向传播 作用于网络输出&#xff0c;通过计算梯度由深到浅更新网络参数 三、整体架构 层次结构&#xff1a;逐层变换数据 神经元&#xff1a;数据量、矩阵大小&#xff08;代表输入特征的数量…

打造完美直播体验:美颜技术与美型SDK的融合

随着直播行业的蓬勃发展&#xff0c;主播们对于直播体验的要求也日益提高。其中&#xff0c;美颜技术和美型SDK的融合为主播们带来了前所未有的完美直播体验。本文将深入探讨美颜技术和美型SDK的原理与应用&#xff0c;以及这两者如何协同工作&#xff0c;为直播行业带来更具吸…

AutoSAR系列讲解(实践篇)10.1-模式管理概述

目录 一、什么是模式管理 二、再谈BswM 1、BswM概述 2、BswM执行流程 三、再谈EcuM 模式管理应该算是我们实践篇中较难的内容了,还有就是诊断那章也比较难。因为模式管理里面可能回涉及到很多的名词,很多的特性,所以博主准 备分

Clion开发stm32之微妙延迟(采用nop指令实现)

前言 需要借助逻辑分析仪动态调整参数此次测试的开发芯片为stm32f103vet6 延迟函数 声明 #define NOP_US_DELAY_MUL_CNT 5 /*nop 微妙延迟需要扩大的倍数(根据实际动态修改)*/ void bsp_us_delay_nop(uint32_t us);void bsp_ms_delay_nop(uint32_t ms);定义 void bsp_us_dela…