首页 > TAG信息列表 > dma
Cache一致性导致的踩内存问题【转】
转自:http://blog.coderhuo.tech/2019/07/28/DMA_mem_crash/ 本文主要分享一个Cache一致性踩内存问题的定位过程,涉及到的知识点包括:backtrace、内存分析、efence、wrap系统函数、硬件watchpoint、DMA、Cache一致性等。 1 背景 设备上跑的是嵌入式实时操作系统(RTOS,具体为商业闭源的关于windows11 家庭版 无法关闭内核DMA和基于虚拟化安全的问题(AR40报错)
系统版本:windows11家庭版,出厂自带的windows11家庭版(预装) CPU是inter的11代 我忘记具体型号了(另一台也是inter 12代的I7出现过) 问题概述:在关闭了hyper-v后和手动关闭了内核隔离后,发现系统信息中的内核DMA和基于虚拟化安全的状态依然显示运行,同时如果你选择开启,他会提示有不兼容的驱基于stm32F407ZGT6的三重ADC交替采样+DMA传输数据+定时器TRGO触发
好久没写博客了,最近挺忙的。近来有些好玩的实现,网上的资料并不是非常详细,打算慢慢写下来,希望别人能少走一点弯路。 因为希望提高ADC的采样率,这次我试着实现了一下三重ADC交替采样+DMA搬运至内存+TIM的TRGO触发采样(环境是stm32cubemx 6.5.0和keil 5) 首先打开cubemx进行基础设置【一知半解】零值拷贝
传统IO 应用调用read方法向操作系统发起读数据的请求,此时由用户态切换为内核态 当系统收到读数据请求时,利用DMA控制器把数据从磁盘读取到系统缓存区中(图中2.1) 再然后CPU会把系统缓存区的数据写应用缓存区(图2.2),此时由内核态切换为用户态 应用再调用write方法通知系统进行数据BSP视频教程第21期:轻松一键实现串口DMA不定长收发,支持裸机和RTOS,含MDK和IAR两种玩法,比STM32CubeMX还方便(2022-07-24)
视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519 我们这里采用CMSIS Pack一键创建,支持MDK和IAR,不需要大家做底层研究,仅需关心上层应用即可,且支持裸机和RTOS玩法。 优势是简单易实现,劣势是喜欢上这种玩法后,会无法自拔,不再愿意花心思去研究源代码了【操作系统】中断
写在前面 本系列的文章是博主边学边记录的,可能不是特别的正确,因为会加上博主自己的理解,仅供参考。 正文: 在上一篇中,说到了中断,于是呢,我又去看看关于中断的相关章节,整理出一篇博文来。 1.为什么要有中断 中断在操作系统中有着特殊且重要的地位,中断是多道LINUX网络子系统中DMA机制的实现
我们先从计算机组成原理的层面介绍DMA,再简单介绍Linux网络子系统的DMA机制是如何的实现的。 一、计算机组成原理中的DMA 以往的I/O设备和主存交换信息都要经过CPU的操作。不论是最早的轮询方式,还是我们学过的中断方式。虽然中断方式相比轮询方式已经节省了大量的CPU资源。但是在DMA和MMAP
1.DMA的用途? 用于将视频采集数据通过DMA从存储资源紧张的片内缓存区搬运至片外SDRAM帧缓冲区,实现图像的高速传输;----这种传输模式也叫 流模式传输 2.什么是 流模式传输? 流模式传输是Altera Nios II嵌入式系统中的一种高级Avalon总线传输方式。这种传输模式在流模式主linux DMA子系统学习总结(一)--- 串口DMA驱动实现分析
串口DMA驱动实现分析 1.1 DMA控制器基本原理 DMA控制器用于实现各类存储介质间的数据搬移,存储介质包括内存以及各类外设的寄存器空间; 基本的工作原理是,配置好DMA控制器后,通过软件或DMA请求线的方式启动DMA传输,搬移数据时,独自控制系统总线,不需要CPU干预; DMA在完使用DMA传输优化STemwin 绘图
贴一下代码 ! 提高图片填充速率,把DMA资源利用上 在_DrawBitmap函数中修改会出现侧面图片缺损问题,零拷贝
在业务场景中,我们的数据会存放在多种空间中,也需要在多种空间中传输来实现系统的功能以及保证系统的安全性. 数据存放的空间有:内核缓冲区,用户空间,磁盘,网络缓冲区. 其中网络缓冲区,磁盘的数据是有设备驱动来实现的.其中设备和内核缓冲区的访问可以使用cpu来发送指令也可以适用STM32CUbeMAX 串口+DMA中断收发实验
串口配置: 异步,波特率:19200,每帧:1字节;无校验;1停止位 中断设置:考虑到后期使用freertos,可控制中断配置为:4位抢占优先级,15>=中断优先级级>=5(越低,优先级越高) DMA设置:以字节为数据单位,内存地址累加 生成工程文件: 在stm32f1xx_it.h 文件添加 #define BUFF_MA【BSP视频教程】STM32H7视频教程第15期:几张手册框图讲明白DMAMUX和DMA各种玩法,FIFO,突发传输,不同位宽传输方式等(2022-05-21)
视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519 DMAMUX是将DMA灵活性发挥到新高度的关键外设,并借助H7四通八达的总线矩阵和各种外设都支持DMA,可以实现很多DMA同时干活。 视频: https://www.bilibili.com/video/BV1vF411L7Qn 本期视频主要分为如HAL库H7,CubeMX6.40,固件库191,ADC+DMA初始化BUG问题
此BUG会导致DMA晚于ADC初始化,而ADC又调用了DMA所以无采集值。 解决方法:手动调整DMA初始化位置置ADC之前(如果使用了其他外设并且它们也调用了DMA那么DMA初始化也应该在它们之前),或者在CubeMX初始化顺序设置中将DMA提前。 STM32H7 ADC+DMA+TIM 数据覆盖问题
使用计时器触发的ADC速度较快时,如果没有及时清除标志位,将导致ADC数据被覆盖,造成类似混叠现象,建议使用单次DMA传送,处理完数据后再手动开启即可。这里附上配置图: 搞懂Linux零拷贝,DMA【转】
转自:https://blog.csdn.net/Rong_Toa/article/details/108825666 目录 为什么要有 DMA 技术? 传统的文件传输有多糟糕? 如何优化文件传输的性能? 如何实现零拷贝? PageCache 有什么作用? 大文件传输用什么方式实现? 总结 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10一款DMA性能优化记录:异步传输和指定实时信号做async IO【转】
转自:https://www.cnblogs.com/arnoldlu/p/10219704.html DMA本身用于减轻CPU负担,进行CPU off-load搬运工作。 在DMA驱动内部实现有同步和异步模式,异步模式使用dma_async_issue_pending(),然后在callback()中发送SIGIO信号,用户空间收到SIGIO进行handler处理视为一个周期完成。 同步RISC-V MCU应用教程之DMA(存储器到外设)
简介 CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外I/O设备——DMA方式
DMA方式:设备需要进行数据传送时,通过DMA控制器(DMA接口)向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。 主存和DMA接口之间有一条数据通露,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工axi DMA
microdma 高优化的DMA,使用较少的资源。这个选项一般用在传输非常少量数据的场景I/O设备——I/O设备的概念
一.早期阶段:CPU和IO设备串行工作,分散连接,I/O设备与主存交换信息必须经过CPU. 程序查询方式:由CPU通过程序不断查询IO设备是否己做好准备,从而控制IO设备与主机交换信息。 二.接口模块和DMA阶段:CPU和IO并行工作,总线连接,IO设备通过接口模块连接总线上与CPU交流 中断方式:只在设备准备磁盘IO-为什么说IO密集型很少消耗CPU资源?
我们都知道磁盘io,网络io,是不会消耗cpu资源的,但是说原理,你说得清么? 今天我们就从底层原理,简单直白的说清楚,为什么磁盘io很少消耗CPU资源。 一、内核缓冲区与用户缓冲区 我们知道应用程序因为调用权限限制,分为用户态和内核态。 当我们需要把应用程序里面的数据写入到磁盘或者网[STM32]Cubemx+USBAudio声卡+I2S+DMA+WM8978实验记录(未解决)
本篇是记录做这个实验时发现的问题现象做的记录,最终没有解决问题 开发板:正点原子探索者stm32f407zgt6 实验功能:使用USB作为音频设备连接电脑,接收音频数据,在通过I2S+WM8978实现音频播放 问题:网上实现的方式(Cubemx配置)有很多,但都不能达到正点原子的效果,主要表现是播放的音质有Cyusb3014芯片原理之二固件代码(十)2022-03-03
Cyusb3014芯片原理之二固件代码 1.固件程序代码组成 cyfx_gcc_stratup.s 该文件存放USB3.0数据采集模块ARM-9核心处理器启动代码的汇编源文件。 cyfxgpif2config.h GPIF波形描述符,由GPIF Designer生成,可直接导入工程中,实现对GPIFII接口的控制。GPIF II Designer的工程是后缀Cyusb3014芯片原理之一数据流(九)2022-03-01
Cyusb3014芯片原理之一数据流 1.FX3芯片架构 如图所示,FX3 拥有一个片上 32 位 200 MHz ARM926EJ-S 内核 CPU。该内核能直接访问 16 KB 的指令紧耦合存储器(TCM)和8 KB 的数据紧耦合存储器。ARM926EJ-S 内核还提供了用于固件调试的 JTAG 接口。FX3 集成了 512 KB 或 256 KB 的