![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核
文章平均质量分 84
koson_L
这个作者很懒,什么都没留下…
展开
-
seq_file工作机制实例
分类: LINUX内容简介本文主要讲述序列文件(seq_file)接口的内核实现,如何使用它将Linux内核里面常用的数据结构通过文件(主要关注proc文件)导出到用户空间,最后定义了一些宏以便于编程,减少重复代码。在分析序列文件接口实现的过程中,还连带涉及到一些应用陷阱和避免手段。序列文件接口UNIX的世界里,文件是最普通的概念,所以用文件来作为内核和用户空间传递转载 2015-10-16 20:59:20 · 4437 阅读 · 0 评论 -
重复测试脚本
脚本命令:while true; do echo mem > /sys/power/state; done;原创 2016-06-17 15:11:35 · 461 阅读 · 0 评论 -
frame buffer驱动
因为移植的需要,对linux内核的fb驱动进行了封装,但是由于以前没有调试过fb驱动所以还是遇到了很多未知的问题,所以先把封装好的驱动移植到uboot中进行调试,对照uboot以前的fb驱动后对问题进行一下分析:1.屏幕显示白色的雪花,不能正确的显示:未完待续。。。。。。。。。。。。。。。。。。。。。。。。。原创 2016-08-02 17:45:05 · 1314 阅读 · 0 评论 -
frame buffer驱动(1)
1.下面介绍一下tft和slcd的descriptor operation的区别:这里我使用的是slcd,但只用了FRM0,没有使用FRM1,所以需要disable掉FRM1,在调试中我并没有disable掉FRM1,而且也没有像上图中指定:CMD->FRM0->FRM1->CMD->。。。导致屏幕显示白色的雪花。disableFRM1的代码为:framedesc1->原创 2016-08-03 15:20:25 · 558 阅读 · 0 评论 -
linux之wake_lock
wake_lock 持锁,系统无法深休 android的应用 或者是 kernel的驱动 会根据需要持 wake_lock锁,以阻止 kernel 进入深度休眠。 此时android的应用界面已经没有了显示,如果没有slpt的话,此时屏幕应该是黑的。使用方法: 持锁:echo 1 > /sys/power/wa原创 2016-09-23 09:48:17 · 2038 阅读 · 0 评论 -
lcd fb参数
本文参考了:http://www.linuxidc.com/Linux/2011-01/31800.htm感谢该文的作者。Linux内核的amba lcd控制器使用clcd_panel结构体表示一个LCD屏的硬件参数:/* include/linux/fb.h */struct fb_videomode { const char *name; /* optiona转载 2016-11-07 20:24:16 · 591 阅读 · 0 评论 -
ramdisk问题
出现如下打印可能是ramdisk的问题,更新一下ramdisk。[ 4.005562] ALSA device list:[ 4.005820] #0: watch[ 4.355682] Freeing unused kernel memory: 436K (80893000 - 80900000)[ 4.359350] SELinux:原创 2016-11-02 12:06:44 · 977 阅读 · 0 评论 -
list.h说明
1 位置位于./usr/src/linux-2.6.32.9/include/linux/list.h使用时包括#include2 数据结构123456789101112*list_head结构包转载 2016-12-07 10:23:12 · 378 阅读 · 0 评论 -
MIPI LCD调试总结
近来在用SSD2828驱动小米屏,没有代码,没有技术支持,自己写代码反复调试,整死我了,目前已经能正常显示图片,现在总结一下与大家分享一下,要点:1. 小米3屏的分辨率是1920*1080, 24bit, 行列像素点为1080*1920, 默认显示方式为从左->右,上->下,这个可以通过DCS指令修改.2. SSD2828手册上说SSD2828一行最大可显示1920个像素点(60Hz)转载 2017-01-05 10:27:36 · 3870 阅读 · 0 评论 -
Linux驱动regulator
Regulator驱动 regulator是Linux系统中电源管理的基础设施之一,用于稳压电源的管理,是各种驱动子系统中设置电压的标准接口。regulator可以管理系统中的供电单元,即稳压器(Low Dropout Regulator, LDO,即低压差线性稳压器),并提供获取和设置这些供电单元电压的接口。一般在ARM电路板上,各个稳压器会形成一个Regulator树型结构。原创 2017-02-27 11:39:47 · 1289 阅读 · 0 评论 -
busybox find
adb shell进入使用busybox find来查找文件:例如:busybox find / | grep als_adc,(不用像linux系统中find . -name als_adc)原创 2016-05-18 09:43:06 · 2887 阅读 · 0 评论 -
Linux休眠与唤醒
在Linux中,休眠主要分三个主要的步骤:(1)冻结用户态进程和内核态任务;(2)调用注册的设备的suspend的回调函数;(3)按照注册顺序休眠核心设备和使CPU进入休眠态。 冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文。当这些进程被解冻的时候,他们是不知道自己被冻结过的,只是简单的继续执行。如何让Linux进入休眠呢?用户可以通过读写sys文件转载 2016-05-06 16:07:47 · 3036 阅读 · 0 评论 -
seq_file实例
#ifndef __REGULATOR_JZ_DEBUG__#define __REGULATOR_JZ_DEBUG__#endif#define INFO_PRINTF(seq, sw, fmt, arg...) \ do { \ if (seq) \ seq_printf(seq, fmt, ##arg); \ else if (sw) \原创 2015-10-16 21:03:49 · 557 阅读 · 0 评论 -
msleep问题
板子在休眠之前关闭了中断,当你在关闭中断后的休眠前去使用了msleep(例如I2C驱动中),那板子将一睡不醒。这时应该使用mdelay。原创 2015-10-20 10:40:02 · 1513 阅读 · 0 评论 -
printk()在终端打印红色字体
#define kprint(fmt,args...) printk("\033[1;31m" fmt "\033[0m \n", ##args);原创 2015-11-05 16:54:00 · 1389 阅读 · 0 评论 -
dump_stack
linux内核驱动调试:dump_stack()堆栈打印。。。待完善!!!!!!!!原创 2015-10-21 22:09:14 · 499 阅读 · 0 评论 -
Linux内核regulator架构和编写
电源种类介绍 (百度百科)LDO是low dropout regulator,意为低压差线性稳压器,是相对于传统的线性稳压器来说的。传统的线性稳压器,如78xx系列的芯片都要求输入电压要比输出电压高出2v~3V以上,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如5v转3.3v,输入与输出的压差只有1.7v,显然是不满足条件的。针对这种情况,才有了LDO类的电源转载 2015-10-22 16:31:01 · 850 阅读 · 0 评论 -
core_param的使用
/** * core_param - define a historical core kernel parameter. * @name: the name of the cmdline and sysfs parameter (often the same as var) * @var: the variable * @type: the type of the parameter原创 2015-11-09 09:39:33 · 2419 阅读 · 1 评论 -
__weak修饰符
弱选项。。。。待完善。原创 2015-11-10 17:48:03 · 325 阅读 · 0 评论 -
show_rle_picture
#include #include #include DECLARE_GLOBAL_DATA_PTR;extern unsigned char rle_default_logo_addr[];extern int lcd_line_length;static inline unsigned int color16_to_32(unsigned short color) { uns原创 2015-11-13 15:11:04 · 456 阅读 · 0 评论 -
生活中遇到的BUG
2016年4月28日1.当使用mutex_lock,如果不配合线程使用可能会出现跑死在lock里的情况。原创 2016-04-28 20:37:59 · 1277 阅读 · 0 评论 -
原子操作
原子操作(atomic operation):意为“不可被中断的一个或一系列操作”。在所有支持的体系结构上原子类型atomic_t都保存一个int值。在x86的某些处理器上,由于工作方式的原因,原子类型能够保证的可用范围只有24位。volatile是一个类型描述符,要求编译器不要对其描述对象作优化处理,对它的读写都要从内存中访问。atomic_t定义:typedef原创 2017-03-23 14:41:37 · 476 阅读 · 0 评论