logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内核异步数据处理--kfifo

引题:在驱动编程中,经常会遇到异步数据处理的情况,比如采用中断或定时器处理数据输入输出等情况此时数据的采集与处理往往不同步,于是驱动编程中数据采集方需要将采集的数据暂时放到一个缓冲区中,使用方在需要处理数据时从缓冲区中将数据读出驱动编程中常采用队列这种数据结构来实现整个过程,我们可以选择自己编写一个队列,也可以利用内核中现有队列kfifo来实现kfi

Linux内核定时器--timer_list

定时器:linux操作系统提供了一个内核定时器内核定时器可在未来的某个特定时间点调度执行某个函数,完成指定任务linux内核定时器提供了一种异步处理的机制用户通过设置将来某一时刻的滴答值来实现定时功能假设HZ的值为200,Linux定时器最短定时时间为5ms,小于该时间的定时可直接通过硬件定时器完成定时器使用过程:定时器接口函数介绍:

Linux内核信号

内核信号的概念:信号是UNIX进程间通信的一种标准方式,在最早期的UNIX系统中已经存在。我们在系统编程中了解过,信号可以作为进程间通信的一种方式同样我们编写的驱动也可以使用信号通知应用层及其它进程特定事件的发生内核信号的使用:#include//内核信号接口函数头文件#include//current创建一个信号结构体:

#unix#嵌入式
Linux内核中断底半部处理--工作队列

工作队列的使用过程:工作队列相关函数介绍:#include/*头文件包含*/1.工作队列的创建及销毁:定义一个工作队列结构体指针static struct workqueue_struct *key_workqueue;创建工作队列struct workque

Linux内核驱动之DDR3

1 相关原理  DDR3内部相当于存储表格,和表格的检索相似,需要先指定 行地址(row),再指定列地址(column),这样就可以准确的找到需要的单元格。对于DDR3内存,单元格称为基本存储单元(也就是每次能从该DDR3芯片读取的最小数据),存储表格称为逻辑bank(DDR3内存芯片都是8个bank,也就是说有8个这样的存储表格) 所以寻址的流程是先指定bank地址,再指定行地址(

RK3399 Android7.1系统 自定义号码CMEI信息写入vendor_storage

https://blog.csdn.net/kris_fei/article/details/79580845以上朋友写了基本概念,我们讨论下具体使用存储SN, MAC, LAN,BT等data,主要特性是不会丢失以及系统启动各个阶段都可以访问,包括uboot, kernel, linux用户空间以及pc端通过调用vendor_storage_write_sn()函数将CMEI信...

Linux 网络驱动 phy 读写寄存器调试方法

Linux 网络 phy 调试方法目前嵌入式芯片支持双网卡的有很多。在调试网络驱动时,需要通过mdc 和mdio信号对phy的寄存器进行操作调试。如果每次调试都修改网络驱动的话会很麻烦。下面提供我常用的网络驱动调试方法在驱动层,设备树绑定mac与mdio总线的关系。在Linux应用层,编写测试程序mdio 。代码如下:如果是写寄存器操作,就传入四个参数./mdio ethX phyId addr

芯片选型-瑞芯微RK3568替换方案

2160p60 视频解码 (H265, H264, VP9, VP8, AV1, MPEG-2)深蕾(https://www.senarytech.com/product/18.html)LPDDR4/LPDDR4x,默认2GB/4GB(最高支持8GB)支持 4K 30fps H.265/H.264/VP9 视频解码。4 核Cortex-A55 ,主频最高达 1.9GHz。单 1080p60 视频

#嵌入式硬件
    共 15 条
  • 1
  • 2
  • 请选择