
kernel
文章平均质量分 91
gumu271
这个作者很懒,什么都没留下…
展开
-
信号量semaphore的相关函数
申请信号量的函数有1.void down(struct semaphore *sem)2.int down_interruptible(struct semaphore *sem)3.int down_killable(struct semaphore *sem)4.int down_trylock(struct semaphore *sem)5.int down_timeou...原创 2019-04-25 12:10:08 · 951 阅读 · 0 评论 -
linux内核主线了解dts
http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf=============================================原版在上面的地址上,这个是转载别人翻译好的,dts的用法说的很详细,还有2个疑问第一,bootloader 在R2...转载 2019-06-04 18:28:32 · 859 阅读 · 0 评论 -
(最新内核3.4)Linux 设备树加载I2C client adapter 的流程(内核3.4 高通)
原文地址:https://blog.youkuaiyun.com/lsn946803746/article/details/52515225BLSP(BAM Low-Speed Peripheral) , 每一个BLSP含有两个QUP, 每一个QUP可以被配置为I2C, SPI, UART, UIM接口, BLSP是高通对于低速接口的一种管理方式。 i2c@f9923000 { /* BLSP-...转载 2019-06-03 18:57:34 · 869 阅读 · 0 评论 -
i2c client的adapter如何生成
先来看下i2c transfer函数,如下:ret = i2c_transfer(client->adapter, &msg, 1);其中重要的参数是client->adapter,今天想了解下这个adapter是在哪里生成的。上个文章说的是设备驱动的注册过程,今天来看看i2c控制器驱动的注册过程。首先在dts里配置 i2c0: i2c@11007000...原创 2019-06-03 18:44:41 · 1201 阅读 · 0 评论 -
dtc 编译命令
设备树编译设备树的编译器是dtc,源代码目录kernel\scripts\dtc,只要编译过内核,就会生成dtc,dtc编译器可以把dts文件编译成为dtb,也可把dtb编译成为dts文件,编译命令格式如下:dtc [-I input-format] [-O output-format][-o output-filename] [-V output_version] input_filen...转载 2019-06-08 17:47:44 · 8894 阅读 · 0 评论 -
i2c 设备注册过程
设备模型由总线(bus_type)+设备(device)+驱动(device_driver)组成,在该模型下,所有的设备通过总线连接起来,即使有些设备没有连接到一根物理总线上,linux为其设置了一个内部的、虚拟的platform总线,用以维持总线、驱动、设备的关系。因此,对于实现一个linux下的设备驱动,可以划分为两大步:1、设备注册;2、驱动注册。下面是i2c...原创 2019-05-29 18:28:06 · 922 阅读 · 0 评论 -
c语言关键知识点总结
第一部分操作符sizeof有个概念要说下,指针不同于普通变量,指针存的是地址,而地址的范围只和机器字以及系统有关在32位系统中,所有指针都是4B在64位系统中,所有指针都是8B,普通变量仍然为4字节下面的程序运行在64bit系统中结果: 1 #include<stdio.h> 2 3 void main(void) 4 { 5 in...原创 2019-05-28 14:45:03 · 772 阅读 · 0 评论 -
linux设备树DTS到是是啥玩意
一直想搞明白,自从linux开始使用设备树后,从哪里开始加载和bootloadt kenel之间怎么关联,然后总线驱动如何将这些设备挂上去的。下周开始总结。先转载一些基本概念:简介dts硬件的相应信息都会写在.dts为后缀的文件中,每一款硬件可以单独写一份xxxx.dts,一般在Linux源码中存在大量的dts文件,对于arm架构可以在arch/arm/boot/dts找到相...原创 2019-05-30 15:23:05 · 2908 阅读 · 0 评论 -
size nm 命令解析a.out
//main.cppint a = 0; // 全局初始化区 char *p1; //全局未初始化区 main() { int b; //栈 char s[] = "abc"; //栈 //abc是在栈里面,而下面123456/0却在在常量区内,要注意这两种情况的区别 char *p2; // 栈 char *p3 = "123456"; //123456/0在常量区,p3原创 2019-05-27 15:36:14 · 610 阅读 · 0 评论 -
input 设备数据流学习记录
划了流程图,但是不知道怎么一次传上来,所以就一段一段截图:在这里重新认识了次设备号的使用,关于次设备号主要在evdev.c里,针对每个input设备,在register 有会生成对应的eventX节点,这些节点分别有对应的handler以及自己的数据结构,当设备上报数据时,会通过之前注册的handler(evdev_handler),处理数据,然后通过poll read等函数实现上报到...原创 2019-05-24 11:58:16 · 190 阅读 · 0 评论 -
ubuntu 16.04 + linux 5.0
完整的记录了qemu搭建arm开发环境的过程:以下内容转载:作者:海枫来源:优快云原文:https://blog.youkuaiyun.com/linyt/article/details/42504975本文记录用ubuntu16.04搭建qemu的过程:参考出处:https://blog.youkuaiyun.com/linyt/article/details/42504975...转载 2019-06-04 22:47:53 · 619 阅读 · 0 评论