【嵌入式软件开发】芯片外设接口测试工具编写工具主要包含如下接口功能测试
OpenHarmony 标准系统 HDF 框架音视频驱动开发引言OpenHarmony 音频概述HDF 音频驱动框架概述HDF 音频驱动框架分析 —— 音频设备驱动HDF 音频驱动框架分析 —— supportlibs 实现HDF 音频驱动框架分析 —— hdi-passthrough 实现HDF 音频驱动框架分析 —— hdi-binder 实
openharmony 系统 HDF 驱动框架采用 C 语言面向对象编程模型构建,通过平台解耦、内核解耦,来达到兼容不同内核,统一平台底座的目的,从而帮助开发者实现驱动一次开发,多系统部署到的效果。为了达成这样一个目标,openharmony 系统 HDF 驱动框架提供了:操作系统适配层(OSAL):对内核操作系统相关接口进行统一封装,屏蔽不同系统的操作接口;
I2C 基础知识:概念和特性、4 个地址(设备地址、读地址、写地址、字地址)、波形(起始、结束、数据发送、数据接收)I2C 调试手段:电压、上拉电阻、/dev/i2c-x、i2c-toolsHDF 框架 I2C 驱动:AT24C256 芯片按照字节寻址方式读写(按照页 64 字节寻址、连续读写)
GPIO:通用和专用 IO 的区别、不同平台下的 GPIO 的分组和编号、GPIO 常用调试手段HDF 驱动:GPIO 接口的配置方式、读写操作、中断,两种方式实现应用和驱动的通信,缓冲区的基本操作,基本覆盖了全部的 GPIO 接口提供一套完整的驱动程序和应用程序,并给出其目录结构。
基于firefly的ROC-RK3568-PC上的openwrt进行移植到RK3568_EVB1_DDR4_V10板子上,通4_V10板子上并启用了。...
文章目录Linux内核系统调用实现原理Linux设备驱动相关概念Linux内核设备驱动分类字符设备文件特点及属性字符设备文件创建的方法主设备号、次设备号、设备号Linux相关库函数字符设备相关数据结构配套相关函数编写Linux字符设备驱动步骤定义初始化硬件操作接口对象:定义初始化字符设备对象:最终向内核注册字符设备对象从内核卸载字符设备对象最后编写之前定义的设备接口具体内容示例具体代码:测试执行:...
文章目录Linux内核字符设备文件的自动创建自动创建字符设备文件概述字符设备文件的自动创建只需要“三个保证”+“四个函数”三个保证四个函数修改之前LED驱动代码运行结果Linux内核字符设备文件的自动创建前面已经描述过通过mknod命令可以手动创建字符设备文件,那么如何实现自动创建设备文件呢?自动创建字符设备文件概述字符设备文件的自动创建只需要“三个保证”+“四个函数”三个保证保证...
文章目录次设备号使用及混杂设备驱动开发使用次设备号字符设备驱动——struct file数据结构案例:将四个LED灯作为四个相同的设备个体,共享一个驱动,但是对应不同的次设备号。驱动示例代码实现:示例运行:Linux混杂设备驱动开发Linux内核混杂设备特点Linux内核描述混杂设备的数据结构代码示例(gpio-led):执行结果次设备号使用及混杂设备驱动开发使用次设备号之前我们都是使用一...
文章目录Linux内核中断编程为什么会有中断机制?中断的硬件触发流程使用中断处理编程Linux内核中断编程的操作步骤驱动开发中断处理相关函数API示例(按键中断触发)代码实现:执行结果:Linux内核中断编程为什么会有中断机制?中断产生的根本原因就是因为外设的数据处理速度远远慢于CPU,比如使用CPU读取UART接收缓冲区的数据,当使用CPU读取UART接收缓冲区的数据时,发现UART接收...
中断编程
文章目录Linux内核GPIO操作库函数int gpio_request(unsigned gpio, const char *label)void gpio_free(unsigned gpio)int gpio_direction_output(unsigned gpio, int value)int gpio_direction_input(unsigned gpio)int gpio...
文章目录Linux内核定时器硬件定时器硬件定时器特点硬件定时器对应的中断处理函数Linux内核跟时间相关的概念软件定时器Linux内核软件定时器的特点Linux内核软件定时器的相关数据结构和配套函数Linux内核定时器硬件定时器硬件定时器特点硬件定时器能够按照一定的频率周期性的有规律的给CPU发送中断信号,发送中断的频率(周期)可以通过软件编程来设置,硬件定时器产生的中断信号可以称之为时...
文章目录
文章目录解决竞态引起异常的方法之自旋锁解决竞态引起异常的方法之自旋锁
文章目录解决竞态引起异常的方法之信号量解决竞态引起异常的方法之信号量其实信号量不同于其他方式能够解决临界区内有休眠操作的问题,最主要的原因是信号量的获取和释放只会影响到需要访问临界区的进程任务,并且在获取访问临界区条件不成立时会进入休眠并释放CPU资源(也就是不会占用消耗CPU资源)。而屏蔽中断、自旋锁、衍生自旋锁则不一样。最主要的是几种方式在访问临界区条件不成立的时候的影响不一样(当前有任务在访问临界区,所以其他任务不能访问)
文章目录解决竞态引起异常方法之原子操作原子操作特点位原子操作使用方式比较:整形原子操作使用方式比较:示例代码解决竞态引起异常方法之原子操作原子操作特点原子操作能够解决所有的竞态问题。Linux内核原子操作分为两类:位原子操作和整形原子操作 。位原子操作位原子操作 = 位操作的过程具有原子性 = 对共享资源进行位操作的过程中不允许发生CPU资源的切换。应用场景:如果在代码中发现需要对...
文章目录Linux内核延时概念应用场景Linux内核相关延时函数Linux内核等待队列机制概述等待队列的功能驱动编程实施步骤示例代码(一)示例代码(二)总结Linux内核延时概念延时又称为等待,延时分为两类:忙延时和休眠延时。忙延时: 当任务进行忙延时时,任务将会导致所占用的CPU资源进行白白消耗,类似原地空转。休眠延时: 进程进入休眠状态,进程会释放所占用的CPU资源给其他进程使用。...
文章目录Linux内核按键去抖动问题按键抖动按键驱动的方法Linux内核去除抖动的原理代码示例总结Linux内核按键去抖动问题按键抖动按键抖动表现出来的现象其实就是明明只是按下去一次按键,但是却总是触发多次中断,本质其实是因为按键属于机械结构,所以不可避免会在按下和松开时产生意外的中断触发。按键驱动的方法按键去抖动的方法有两种:硬件去抖动:硬件工程师只需要添加一个滤波电路等方式即...
文章目录Linux驱动开发之物理地址映射ioremap函数使用方式方式一方式二不使用GPIO库函数方式来修改之前操作LED灯代码示例总结Linux驱动开发之物理地址映射如果不采用GPIO库函数,那么我们如何能在底层驱动中访问外设对应的硬件寄存器呢?是像类似单片机编程一样直接对硬件寄存器访问么?在Linux系统中,不管是在用户空间还是内核空间一律不允许直接访问硬件外设的基地址(包括寄存器...
文章目录Linux内核i2c驱动编程i2c总线特性I2C总线特点可以概括如下:字节格式应答响应时钟同步Linux内核i2c驱动i2c总线驱动i2c设备驱动Linux内核i2c驱动框架编写i2c设备驱动程序实现原理i2c_clienti2c_driverSMBUS接口函数的使用步骤示例(MMA8653三轴加速度传感器使用)具体代码如下:Linux内核i2c驱动编程i2c总线特性I2C总线是由...
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号