自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

原创 HDMI CEC协议

1 前言本文档仅作为本人记录使用,主要根据工作使用及《HDMI Specification 1.4a.pdf》进行终结得出,若有不足会后续补充。2 CEC简介CEC(Consumer Electronics Control)是一套完整的单总线协议,电子设备可以借着CEC信号让使用可控制HDMI接口上所连接的装置,比如单键播放(One Touth Play),系统待机(System Standby),可以实现由单一遥控器控制所有HDMI连接的装置。最多可以控制15个设备。允许HDMI设备在没有用户干扰情

2022-03-28 22:43:23 5276

原创 Linux内核IOREMAP驱动

1 Linux内核IOREMAP驱动在内核驱动的代码中,存在大量代码使用ioremap进行物理地址和虚拟地址映射,使得内核更加容易操作硬件,对比于简单的gpio控制,实际的代码同样是使用了ioremap进行映射封装。2 ITOP4412示例2.1 硬件手册本次测试使用LED3(同理LED2),查看原理图或设备树可知 具体引脚号。当前使用的为LED3,使用时需要将设备树使用到的节点进行删除。因为设备树会优先占用当前使用的GPIO,需要将GPIO的资源释放。 leds { compat

2022-03-24 22:27:37 1023

原创 Linux内核工作队列

1 Linux workqueue工作队列Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程.它总是在进程上下问进行执行,并且可以执行中断下半部操作,允许重新调度和睡眠,可以解决软中断和tasklet执行时间过长导致的系统实时性下降等问题。2 Linux workq

2022-03-22 22:55:07 767

原创 Linux内核Netconsole

1. netconsole当量产或试产的机器已经出货,产品出现系统问题却不能像应用层可以获取日志进行分析,出现问题只能拆机监听uart串口,因此将内核调试信息传递到网络并且查看成为一个产品所支持的必要手段。netconsole就是把内核调试信息通过网络传递到本地输出,完美解决痛点。2. netconsole编译netconsole默认是编译进内核,并且是可选编译的。以下以hi3516ev300sdk举例:osdrv\opensource\kernel\linux-4.9.y\drivers\net\M

2022-03-19 17:06:44 1692

原创 Linux补丁diff

1. Tortoise+Git补丁点击显示日志,选择以标准差异格式显示变更,保存补丁文件。使用说明2. Linux补丁2.1 diffdiff命令常用选项: -u 输出统一内容的头部信息(打补丁使用),计算机知道是哪个文件需要修改 -r 递归对比目录中的所有资源(可以对比目录) -a 所有文件视为文本(包括二进制程序) -w 忽略对空格的比较 -B 忽略对空行的比较 -N 无文件视为空文件(空文件怎么变成第二个文件) -N选项备注说明: A目录下没有txt文件,B目录下有txt文

2022-03-18 00:25:07 278

原创 Linux内核自旋锁

一、自旋锁概念自旋锁(spin lock)是一种对临界资源进行互斥所访问的典型手段,它是为防止多处理器并发而引入的一种锁,在内核钟大量用于中断处理部分。对于单处理器来说,防止中断钟的并发可简单采用关闭中断的方式,直接打开关闭中断不需要自旋锁。自旋锁在锁定的时候不会休眠,一直等待尝试,因此不合适进行长时间的锁保持。自旋锁要慎用,只有在内核可抢占式或SMP的情况下才会用到,自旋锁适用于锁使用者保持锁的时间比较久的情况下。二、自旋锁的使用Linux内核同步方法–自旋锁Linux内核–内核自旋锁的理解

2022-03-15 23:59:50 2001

原创 Linux内核等待队列

1. Linux内核等待队列Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步时间通知机制。在网络编程中,我们发送数据总要在收到反馈信息的时候才能发送下一帧数据,上层应用开发我们使用的iotcl进行读写控制时,底层便是以此开发比较合理。Linux内核休眠唤醒机制,在本文指的是在驱动运行的过程中可以使进程以休眠的方式等待数据,当事件发生的时候将其唤醒。当前在工作过程中主要用到的方式为:音频codec芯片从DMA块获取缓存数据,将缓存数据分包发送。当没有音

2022-03-15 23:59:07 1474

原创 Linux内核NETLINK驱动

1. Linux内核netlink在内核态与用户态的交互中,字符设备/sys节点等通信方式上只能单向通信,并且应用层需要读取相应数据时只能循环遍历,当数据比较大时会影响程序运行上下文时间。当前存在的需求不仅仅是内核将事件上报,需要在内核中实现类型select超时接收用户态信息。本文主要记录学习过程中遇到的几个问题:内核使用组播组发送消息到应用层;内核使用单播发送消息到应用层应用层使用组播组发送消息到内核;应用层使用单播发送消息到内核针对以上的情况,主要还是如何在内核中实现select形式发送信

2022-03-15 23:58:33 764

原创 Linux内核线程驱动

1. Linux内核线程相关Linux内核线程问题Linux内核线程与工作队列有什么区别?workqueue是kthread的高一级别封装,可以让你把独立的,短时可以完成的工作推入队列中,然后由所指定的线程顺序执行。2. Linux内核线程知识点2.1 Linux内核完成量include/linux/completion.h(参考内核代码Linux-2.6.15.7)struct completion { unsigned int done;//指示等待的事件是否完成。初始化

2022-02-19 16:11:19 823

netconsole+netcat

自动获取netconsole打印log保存

2022-04-20

内核gpio模拟i2c

内核gpio模拟i2c,代码为项目抽离代码,请注意排查代码

2022-03-24

Typora+PicGo+Gitee.7z

1、Typora+PicGo+Gitee图床

2022-02-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除