ICode9

精准搜索请尝试: 精确搜索
  • STM32 HAL库之串口详细篇2021-01-14 02:32:27

    一、基础认识 (一) 并行通信 原理:数据的各个位同时传输 优点:速度快 缺点:占用引脚资源多,通常工作时有多条数据线进行数据传输 8bit数据传输典型连接图: 传输的数据是二进制:11101010,则通信使用8条线同时进行数据传输,发送端一次性发送8位数据,接收端一次性接收8位数据。 (二) 串行通信

  • qemu虚拟化-pci设备模拟2021-01-13 18:04:20

    pci设备算是学习qemu必须要掌握的一类设备的模拟,单独提出来说一下。这里以qemu的pci教学程序为基础讲解,源码路径:hw/misc/edu.c 1.设备的定义 typedef struct { PCIDevice pdev; MemoryRegion mmio; QemuThread thread; QemuMutex thr_mutex; QemuCond t

  • LWIP应用开发|以太网硬件设计二2021-01-13 12:00:19

    以太网硬件介绍 1. STM32以太网外设简介 1.1 ETH逻辑框图 以太网外设包括带专用 DMA 控制器的 MAC 802.3(介质访问控制)。它支持介质独立接口(MII) 和简化介质独立接口 (RMII),并通过一个选择位在两个接口间进行切换(请参见SYSCFG_PMC 寄存器) DMA 控制器通过 AHB 主从接口与内核

  • STM32_H750_ADC总结2021-01-10 22:01:40

    STM32_H750_ADC总结 DMA中断方式 STM32cubemx的一些基础配置 注意H750引脚,很多引脚有后缀例如PC3_C(不是PC3) ADC和DMA都不是连续模式 初始化开启DMA传输 HAL_ADC_Start_DMA(&hadc3, (uint32_t*)&ADC_ConvertedValue, 1); 回调函数将flag变量u置1 void HAL_ADC_ConvCpltC

  • Linux、JDK、Netty中的NIO与零拷贝2021-01-03 15:33:44

    一、先理解内核空间与用户空间 Linux 按照特权等级,把进程的运行空间分为内核空间和用户空间,分别对应着下图中, CPU 特权等级分为4个,Linux 使用 Ring 0 和 Ring 3。 内核空间(Ring 0)具有最高权限,可以直接访问所有资源,; 用户空间(Ring 3)只能访问受限资源,不能直接访问内存等硬件设备,必

  • STM32串口DMA接收双缓冲2021-01-03 14:57:49

    STM32高端MCU(F4、F7等)才支持DMA双缓冲,低端MCU(F1)不支持DMA双缓冲,不过有替代方案可实现类型效果。 一、MCU支持DMA双缓冲的情形 不再赘述,参见博客 STM32 串口DMA发送+DMA接收+硬件双缓冲区切换功能实现 二、MCU不支持DMA双缓冲,但可通过DMA传输半完成中断替代,以下代码已在F103上验证通

  • alsa 驱动介绍-IIS,platform,codec及user层到hw层操作流程分析2020-12-30 14:59:21

      您当前位置: 首页 > php开源 > 综合技术 > alsa 驱动介绍 alsa 驱动介绍 来源:程序员人生   发布时间:2016-07-02 13:40:22 阅读次数:6838次     Machine 以装配有CS4270的1款android 智能电视为例

  • 计算机组成原理(七)输入输出系统2020-12-27 11:57:59

    文章目录 I/O系统概述I/O系统组成I/O 设备分类常见IO设备输入设备输出设备外存储器(辅助存储器) I/O接口设备控制器(I/O控制器)I/O 接口的类型I/O端口 中断基本概念中断请求/响应过程中断处理过程 I/O 控制方式程序直接控制方式中断驱动 I/O 控制方式直接存储器访问(DMA)方式I/

  • 输入输出系统2020-12-22 21:59:47

    本文参考《计算机组成原理(第2版)》(唐朔飞) 目录 I/O 系统基本概念输入输出(I/O)系统I/O 系统发展概况 I/O 接口(I/O 控制器)接口分类I/O 接口的主要功能I/O 接口的基本结构I/O 端口 与 编址方式 I/O 数据传送控制方式程序直接控制传送方式程序中断方式中断分类向量中断 与

  • 系统将数据从磁盘读到内存的过程2020-12-19 10:32:14

    在开始DMA传输时,主机向内存写入DA命令块,向DMA控制器写入该命令块的地址,启动I/O设备。然后,CPU继续其他工作,DMA控制器则继续下去直接操作内存总线,将地址放到总线上开始传输。当整个传输完成后,DMA控制器中断CPU。因此正确的执行顺序应该是 1、初始化DMA控制器并启动磁盘 2、从磁

  • DSP F28335与STM32 HAL SPI通信详解2020-12-16 00:02:02

    目录 SPI通信简介 一、DSP F28335主机代码 二、STM32代码   SPI通信简介 PCB芯片间的数据通信方式有很多种,其中串行(IO引脚较少)低速总线最常用的是SPI和I2C。 I2C(即IIC)是一种半双工总线(即同一时刻只能收或只能发),每个芯片只需提供两个两个引脚(SDA和SCL)即可实现多块芯片间的通

  • 关于电阻屏 防抖的程序处理2020-12-10 08:32:23

    问题: 我们自己项目的屏幕是电阻屏 我们的项目是必须用手指触摸的屏幕。从中发现手指和笔不同,会出现很大的误按的状况 所以我们通过一些方式去做防抖动。 这里只是说明原理 由于保密制度所以这里只是讲第一原理 我们的程序步骤如下 : 1. 我们用ADC watch dog 去触发中断,当有手指按

  • 关于DMA xfer2020-12-07 16:33:37

     最近遇到一个问题,Trim CMD 的 DMA xfer 沒有done 。那什么是DMA xfer 呢?   DMA:Direct memory access controller,直接存储器存储。DMA可以实现数据在外设与存储器、存储器与存储器之间的快速转换,且不需要CPU的干预,这样就可以释放CPU的资源,让CPU干其他的事情,提高效率。有的STM32

  • 驱动篇:底层驱动移植(四)(摘录)2020-12-05 17:02:57

    驱动篇:底层驱动移植(四)(摘录) 时钟驱动 在一个 SoC 中,晶振、 PLL 、驱动和门等会形成一个时钟树形结构,在 Linux 2.6 中,也存有clk_get_rate ()、clk_set_rate ()、 clk_get_parent ()、 clk_set_parent ()等通用 API ,但是这些 API 由每个 SoC 单独实现,而且各个 SoC 供应商在

  • STM32H743中的DCMI无法进入行中断和场中断问题2020-12-02 19:03:06

    今天在玩MT9V034摄像头时,用到了DCMI接口处理摄像头的数据,出现了一个BUG,怎么都进入不了行中断或者场中断。究其原因,原来是忘记设置其中断优先级了。 void Msp_DCMI_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_DCMI_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENA

  • 宋宝华: 关于DMA ZONE和dma alloc coherent若干误解的彻底澄清2020-11-29 23:52:05

    原创 宋宝华 Linux阅码场 2018-01-22 作者简介宋宝华,他有10几年的Linux开发经验。他长期在大型企业担任一线工程师和系统架构师,编写大量的Linux代码,并负责在gerrit上review其他同事的代码。Barry Song是Linux的活跃开发者,是某些内核版本的最活跃开发者之一(如https://lwn.net/Art

  • 宋宝华:那些年你误会的Linux DMA(关于Linux DMA ZONE和API最透彻的一篇)2020-11-27 16:51:28

    原创 宋宝华 Linux阅码场 2019-11-29 创作目的 互联网、Linux内核书籍上充满了各种关于Linux DMA ZONE和dma_alloc_coherent、dma_map_single等的各种讲解,由于很多童鞋缺乏自身独立的思考,人云亦云,对这些概念形成了很多错误的理解。本文的目的在于彻底澄清这些误解。当你发现本文

  • 宋宝华:世上最好的共享内存(Linux共享内存最透彻的一篇)2020-11-27 15:51:24

    原创 宋宝华 Linux阅码场 2019-12-09 共享单车、共享充电宝、共享雨伞,世间的共享有千万种,而我独爱共享内存。 早期的共享内存,着重于强调把同一片内存,map到多个进程的虚拟地址空间(在相应进程找到一个VMA区域),以便于CPU可以在各个进程访问到这片内存。 现阶段广泛应用于多媒体、Grap

  • 宋宝华:那些年你误会的Linux DMA(关于Linux DMA ZONE和API最透彻的一篇)2020-11-27 14:51:03

    原创 宋宝华 Linux阅码场 2019-11-29 创作目的 互联网、Linux内核书籍上充满了各种关于Linux DMA ZONE和dma_alloc_coherent、dma_map_single等的各种讲解,由于很多童鞋缺乏自身独立的思考,人云亦云,对这些概念形成了很多错误的理解。本文的目的在于彻底澄清这些误解。当你发现本文

  • 基于PCIe DMA的多通道数据采集和回放IP2020-11-25 15:29:22

    基于PCIe DMA的多通道数据采集和回放IP 在主机端PCIe驱动的控制和调度下,数据采集与回放IP Core可以同时完成对多个通道数据的采集以及回放驱动工作,既可采用行缓存机制(无需帧缓存,无需DDR),也可采用帧缓存机制(需要DDR),使用PCIe接口和主机进行数据的传输,设备端内嵌多通道DMA引擎完

  • DMA控制器8237A2020-11-23 10:58:15

    DMA控制器8237A 8237A的编程结构 8237A的工作模式和模式寄存器 工作模式 单字节传输模式 每传输一个字节,8237A释放系统总线,从而CPU获得系统总线 块传输模式 字节计数器为0时,8237A才释放系统总线 请求传输模式 与块传输模式类似,不过每传输一个字节,8237A都 对DREQ引脚进行检测

  • Physical memory视频切换2020-10-07 02:31:55

    前段时间在做播放器的时候,遇到个问题,花了很长时间,做个记录,希望对有需要的人有所帮助: 播放器的播视频的时候,无论是手动切换视频还是到视频播放完成,自动切换视频,一定次数后均出现黑屏现象,偶尔有声音,问题出现后,不可恢复,Kernel输出如下Log: DMA free:71672kB min:616kB low:768kB high:

  • HAL库配置UART2020-10-02 07:32:18

    1、查询(基本不用) 2、中断 3、中断+DMA 操作分3个步骤 1、设置STM32cubeMX,初始化代码在stm32f4xx_hal_msp.c,执行代码在main.C   2、打开中断和接收相关函数 //开启空闲中断 __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE); //UART_IT_IDLE 空闲中断 //UART_IT_RXNE //UART_IT

  • Dynamic DMA mapping Guide2020-09-12 12:00:22

    DMA实际上是赋予了设备在CPU的控制下,对memory进行读写访问的的能力。所谓的“CPU的控制”,指的是控制路径,CPU/软件当然要对DMA的地址、长度进行设置,对不同的设备的DMA空间进行隔离等;而实际的DMA动作,则是by pass CPU的。 谈到DMA,不可避免的会涉及到不同的地址转换,这对理解Linux下面

  • 操作系统之哲学思想之文件系统2020-07-30 10:32:28

    一、磁盘操作 中心思想:整个文件系统管理的核心 费时的操作丢给内存,费空间的操作丢给磁盘     二、文件系统 进程抽象CPU 虚拟内存抽象内存 文件系统抽象磁盘 文件系统的主要特性:存储大量的信息,多个进程可以同时访问一个文件,进程的结束不会影响文件的持续存在 目标:地址独立和

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有