草庐IT

ZYNQ使用AXI4-HP接口总线读取DDR中的数据

一、前言最近笔者在做项目的时候需要使用zynq中的AXI4-HP总线在PL端读取DDR中的数据这种功能,但是网上很多历程对于这方面只是创建了一个官方提供的IP核用于测试,并且每次写入和读取的长度为4K字节。所以为了满足我自己的项目需求,笔者将官方提供的测试IP核上做修改,主要实现一下功能:1、上升沿使能读取数据。2、读使能后,IP核需要从基地址开始,突发读取X次(X数量可控)3、内置一个同步FIFO将读出的数据暂存在FIFO中。二、IP核修改过程第一步:创建一个官方提供的带AXI4的IP核。可得到两个文件。(创建过程略,网上有很多教程)其中AXI4_v1_0.v是IP核的顶层文件,AXI4读写

驱动——platform驱动总线三种匹配方式

三种platform驱动匹配方式代码案例以及现象方式一:通过设置名字进行匹配相关API简介:1、platform_device的API①分配对象structplatform_device{        const char*name;//用于进行匹配的名字        int id;//总线号PLATFORM_DEVID_AUTO(自动分配总线号)        struct devicedev;//父类        u32   num_resources;//表示设备信息的个数        structresource*resource;//描述硬件设备信息的结构体};structd

AXI总线协议

目录AXI协议简介通道结构基本传输读burst示例连续读burst示例 写burst示例传输顺序握手过程写地址通道写数据通道写响应通道读地址通道读数据通道通道之间的关系通道握手信号的依赖关系关于寻址选择burst长度burst大小burst类型 地址固定的burst地址递增的burst地址卷回的burst响应信号简介响应类型正常访问成功独占访问从设备错误译码错误AXI协议简介AMBA-AXI协议以高性能,高频系统设计为目标,提供了很多适合高速亚微型系统互连的特征。最新的AMBA接口的目标是:        适合高带宽、低延迟的设计        不使用复杂桥的情况下能够进行高频的操作适应多部件

OpenHarmony源码分析之分布式软总线:trans_service模块(3)/线程同步锁管理

一、概述在分布式软总线提供的数据传输服务中,为了提高处理效率,使用了多线程并发处理的机制,因此就会引入线程同步的问题,所谓线程同步,即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,临界区对象就是其中一种。trans_service模块的线程同步管理是基于互斥锁实现的,而对于不同的底层内核设备,互斥锁的调用库有所不同。如果是基于Linux内核的设备,调用的是Posix标准的pthread库中的互斥锁实现方法;如果是基于LiteOS内核的设备,调用的是CMSIS-RT

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型

文章目录1.1原来的框架1.2要实现的框架1.3写代码1.3.1注意事项1.3.2实现platform_device结构体1.3.3实现platform_driver结构体1.4课后作业1.1原来的框架1.2要实现的框架1.3写代码使用GIT下载所有源码后,本节源码位于如下目录:01_all_series_quickstart\05_嵌入式Linux驱动开发基础知识\source\02_led_drv\04_led_drv_template_bus_dev_drv1.3.1注意事项①如果platform_device中不提供release函数,如下图所示不提供红框部分的函数:你可以提供一个re

ARINC429总线收发器 -- HI-3593调试记录

概述​HI-3593是一款ARINC429协议收发器芯片,和之前介绍的HI-3582芯片功能一样,该芯片支持两路接收和一路发送,其中每个接收机具有标签识别、32×32FIFO和模拟线路接收机。不同的是HI-3593通信接口为SPI总线,可以减少MCU的硬件管脚负担,而且HI-3593片内集成DC/DC转换器用于产生双极性ARINC429差分电压以便直接驱动ARINC429总线,就不用像HI-3582那样需要提供±10V信号,这样使电路设计更加简洁。硬件设计​HI-3593硬件设计十分方便,电源方面只需要提供3.3V供电,外部提供1MHz的时钟信号。如果你像我一样不使用标签过滤器的话,除了SPI

CAN总线学习笔记 | CAN基础知识介绍

一、CAN协议1.1CAN协议简介CAN是控制器局域网络(ControllerAreaNetwork)的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下:1.2CAN物理层CAN通讯不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯CAN物理层的形式主要有两种遵循ISO11898标准的高速、短距离闭环网络,总线最大长度为40m,通信速度最高为1Mbps,总线的两端各要求有一个120

OpenHarmony源码分析之分布式软总线:os_adapter模块解析

一、概述os_adapter模块是操作系统适配层。HarmonyOS的操作系统底层可以是:HarmonyOSmicrokernel,Linuxkernel,且LiteOS将成为一个完整的鸿蒙微内核架构。鸿蒙系统内部各个模块内部使用的函数需要支持针对不同版本平台的适配,体现各部分解耦的模块化设计思想,针对不同的硬件设备,组合成最适合该设备的OS。当前版本的鸿蒙系统的os_adapter模块针对LiteOS内核和Linux内核实现了互斥锁和消息队列的适配。下面分别对两种内核的适配源码进行分析。二、源码分析基于LiteOS内核的os_adapter.c文件解析。/**Copyright(c)2020

CAN总线详细介绍

文章目录前言一、CAN简介1.1CAN是什么?1.2CAN总线特点二、CAN协议介绍2.1CAN总线物理结构2.1.1高速总线物理层2.1.2低速总线物理层2.2CAN的传输模型2.3CAN协议格式2.3.1数据帧组成1)帧起始2)仲裁帧3)控制段4)数据段5)CRC段6)ACK段7)帧结束2.3.2遥控帧2.3.3错误帧2.3.4过载帧2.3.5帧间隔三、错误的种类前言介绍CAN总线的特点,协议的组成结构一、CAN简介1.1CAN是什么?CAN,全称为“ControllerAreaNetwork”,即控制器局域网,是一种串行异步数据通信协议。CAN最初出现在80年代末的汽车工业中,由德国Bo

LIN总线详细介绍

文章目录前言一、LIN简介1.1什么是LIN?1.2为什么要LIN总线1.3LIN的发展历史1.4LIN子网1.5LIN节点1.6LIN总线特点二、LIN的协议层2.1帧结构2.1.1同步间隔段(BreakField)2.1.2同步段(SyncByteField)2.1.3受保护ID段(ProtectedIdentifierField)2.1.4数据段(DataField)2.1.5校验和段(ChecksumField)2.2帧类型2.2.1无条件帧(UnconditionalFrame)2.2.2事件触发帧(EventTriggeredFrame)2.2.3偶发帧(SporadicFrame