草庐IT

APB总线

全部标签

驱动——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

ahb2apb bridge验证项目介绍

两分钟介绍:        学习了协议的基本内容,根据spec功能描述与协议来制定验证计划,进行测试点分解。采用了常规的UVM验证框架,(ahb2apb桥接器两端为ahb的slv与apb的mst)在DUT两侧放了两个agent:ahb_mst_agt和apb_slv_agt,分别包括了sqr,drv和mon。在agt,DUT的同一层次添加了scb,没有做refmdl,把比较的方法放在了scb里,之后做了顶层env,tb,以及interface,将if通过多次config_db的set,get方式从tb传到agt,再到drv,这过程包括了将TB硬接口到UVM环境vif的传递。通过UVM的phas

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

DW_apb_uart(1)

文章目录第一章总体概述1.1IP产品说明1.2DW_apb_uart功能描述1.2.1发送和接收数据FIFO1.2.2DMA控制器接口1.2.3异步时钟支持1.2.4自动流量控制1.2.5可编程发送保持寄存器空(THRE)中断1.2.6串口红外支持1.2.7增加内置诊断功能1.2.81级和2级调试支持1.3DW_apb_uart整体框架1.4DW_apb_uart特征第一章总体概述1.1IP产品说明DW_apb_uart是一种可编程通用异步收发器(uart),该组件是符合AMBA2.0标准的高级外围总线(APB)从设备。DW_apb_uart按照业内标准16550建模。寄存器地址空间已重新定位