![](https://img-blog.csdnimg.cn/20201204171216185.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
linux内核(操作系统)
文章平均质量分 77
Linux kernel学习整理
unbeliverpool
if you want, you can
展开
-
Linux驱动整理1
字符设备与块设备打印驱动logcopy_to_user()和copy_from_user()主设备号和次设备号DMA的作用中断服务系统启动过程并发和同步内存机制内核函数mmap的实现同步/异步,阻塞/非阻塞 ,并发和并行/串行 ,同步和互斥进程与线程FIQ与IRQ的区别Kernel Panic常见原因linux中内核空间、用户空间**字符设备与块设备字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少.原创 2020-12-04 14:26:02 · 182 阅读 · 0 评论 -
linux驱动之i2c驱动
1、i2c基础 I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。简单的I2C协议理解一. 技术性能: 工作速率有100Kbit/s、400Kbit/s和3.4Mbit/s三种;(一般使用小于100Kbit/s) 支持多主控模块,但同一时刻只允许有一个主控;(一般只有一...原创 2015-08-26 17:03:47 · 691 阅读 · 0 评论 -
Linux源代码目录树结构
转载自: http://blog.chinaunix.net/uid-20249205-id-1713880.htmlLinux用来支持各种体系结构的源代码包含大约4500个C语言程序,存放在270个左右的子目录下,总共大约包含200万行代码,大概占用58MB磁盘空间。源代码所有在目录:/usr/src/linux (大部分linux发行版本中) init 内核初始化转载 2015-08-17 08:46:52 · 541 阅读 · 0 评论 -
MTK的Bootable简单分析
大致的流程图如下:上电后RESET,ARM核开始执行Boot ROM,具体操作有:(代码固化在ROM中)1、 初始化内置SRAM堆栈2、 初始化nand/emmc(手机内置存储)3、 把nand内存储的Pre-loader导入SRAM中4、 跳到SRAM中执行Pre-loader在内置SRAM中执行Pre-loader操作:(到bootloader/prel原创 2015-09-09 17:09:41 · 3707 阅读 · 1 评论 -
MIPI协议DSI分析
本文主要从四个方面来介绍MIPI DSI协议 1、MIPI协议简介、DSI简介 2、DSI协议的D-PHY(物理层)简介 3、DSI协议的DSI(传输接口层)简介 4、DSI协议的DCS(DisplayCommandSet)(指令集)简介 MIPI(移动行业处理器接口)是Mobile Industry Pro原创 2015-09-21 15:07:42 · 12521 阅读 · 0 评论 -
Android系统启动过程
系统启动过程与内核并不属于Android,根据MTK的流程来做一个简单总结本来打算根据MTK的源文档做总结,但是发现另一个blog已经做了这个工作,自认为不可能做的更好,引用其连接吧!Android启动pre-loaderAndroid启动U-BootMTK文档给出的流程图:主要分为五个部分(代码包):1、 Boot code 2、 Preloade原创 2016-10-11 19:17:21 · 461 阅读 · 0 评论 -
linux驱动之module_init的加载和释放
转自:http://blog.csdn.net/dysh1985/article/details/7597105 像你写C程序需要包含C库的头文件那样,Linux内核编程也需要包含Kernel头文件,大多的Linux驱动程序需要包含下面三个头文件:#include <linux/init.h>#include <linux/module.h>#include ...原创 2018-03-30 15:33:49 · 443 阅读 · 0 评论 -
printk日志打印
printk的loglevel和日志记录分析(分析版本是ubuntu7.10,内核源码是2.6.23) 首先,printk有8个loglevel,定义在<linux/kernel.h>中,其中数值范围从0到7,数值越小,优先级越高。本文来自CSDN博客,转载请标明出处:http://b...转载 2018-03-30 15:09:40 · 699 阅读 · 0 评论 -
linux驱动之TouchPanel驱动
触摸屏驱动调试过程: 第一步: 移植驱动,确保Touch功能ok 第二步: 测量工作电压,i2c速率;测量上下电时序 第三步:固件升级 1) 模组ID、固件版本号确认,确认升级需求,修改逻辑 2) 首先确认模组是否一致,确认FW版本号,擦除升级。注意:升级中断电情况需要考虑 注意: 固件升级根据实际情况做处理,包括多模组兼容、版本向上升级、升级过程失败后故障确认。...原创 2018-08-01 11:47:14 · 1331 阅读 · 0 评论 -
linux驱动之块设备驱动
块设备驱动的系统架构 VFS: 是对各种具体文件系统的一种封装,用户程序访问文件提供统一的接口。例如: EXT2,FAT,NFS等 系统架构—Cache: 当用户发起文件访问请求的时候,首先回到Cache中寻址文件是否被缓存了,如果在Cache,则直接从cache中读取。如果数据不在缓存中,就必须要到具体的文件系统中读取数据了。 Mapping Layer: 首先确定文件...原创 2018-08-17 15:24:28 · 572 阅读 · 0 评论 -
linux 中断使用
linux驱动——中断中断为什么要区分上下文:1, 中断不是一个task实体,因为睡眠或阻塞操作调用了schedule(),无法恢复状态2,中断执行时间过长,影响效率。(中断的优先级很高,其他进程等待中)主要说明中断在驱动中的大致实现:<不涉及具体的内核代码>中断——硬件发生中断,由中断的硬件接口返回信息,然后进行中断处理中断主要操作:1、中断申...原创 2018-12-24 15:43:44 · 627 阅读 · 0 评论 -
linux驱动之系统调用—open一个设备节点
在学习framebuffer的时候,遇到一个问题: 在fbmem.c中有 register_chrdev(FB_MAJOR,"fb",&fb_fops)fb_fops是上层访问的接口(write、read、mmap等操作).在注册一个frambuffer设备的时候,会使用register_framebuffer,如果注册几个设备fb0,fb1,fb2,那么在open访问...原创 2015-08-14 16:39:51 · 2332 阅读 · 0 评论 -
linux驱动之input子系统
linux系统中,input输入子系统驱动主要可以分为:设备驱动层、input core层和input handler事件处理层。设备驱动层提供具体用户设备驱动,由struct input-dev 结构表示,input_register_device来注册。input handler事件处理层 主要和用户空间交互input core 层负责管理系统中的input dev设备和input...原创 2015-08-27 11:29:50 · 2452 阅读 · 0 评论