关闭

linux进程调度2

Fork前面创建的是一个进程,假设进程P1,调用fork之后,然后进程P2就被创建,P1是一个task_struct,p2也是一个task_struct,所以在内核里面这是两个task_struct,在内核的调度算法的层面上主要看到一个task_struct,他就会被调度,linux在P1刚刚把P2创建出来的时刻,linux会认为P1和P2之间会有某种内在的联系,前面有提到,task_struct...
阅读(5) 评论(0)

Linux进程调度学习1

当我们说进程的时候,就必然要说道线程,在Linux里面经典定义是 进程是一个支援分配的单位,所以,你搞清楚一个进程,就是搞清楚它的资源,当我们要说进程的时候,首先要说Linux里面是用一个什么样的数据结构去描述它 这是个process control block(进程控制块)这是OS里面通用的概念,在linux里面,进程控制块就是一个task_struct结构体 这个时候,我们应该怎么记住这...
阅读(9) 评论(0)

全程解析Linux鼠标驱动

/*  *  Copyright (c) 1999-2001 Vojtech Pavlik  *  *  USB HIDBP Mouse support  */ /*  * This program is free software; you can redistribute it and/or modify  * it under the terms of the GNU ...
阅读(10) 评论(0)

i2c适配器驱动程序

我们先来参考一下内核中自带的驱动程序,看看别人怎么写的 我们可以对内核进行make menuconfIg 看看它对应于哪一个文件 这里有个S3C2410 I2C Driver 然后按下H可以看到它依赖于那个配置 这里是依赖于我们的CONFIG_I2C_S3C2410这个配置的 我们在driver/i2c目录下搜索,CONFIG_I2C_S3C2410,看看它对应哪个文件...
阅读(16) 评论(0)

用户态访问I2C设备

显然内核里面有万能的驱动程序给我们用 看看内核文档 在\linux-4.8.14\Documentation\i2c下面的 这里有的dev-interface,这里面告诉了什么,我们来看看里面说了什么 通常,I2C设备由设备驱动来控制,但是他也可以提供用户空间直接访问适配器上的设备,通过/dev接口。你需要加载I2C-DEV模块 有个i2c-tools 的工具包帮你写好了接口,在网...
阅读(28) 评论(0)

分析内核源码,设备树

U-Boot需要将设备树在内存中的存储地址传给内核。该树主要由三大部分组成:头(Header)、结构块(Structure block)、字符串块(Strings block)。 设备树在内存中的存储布局图如下 1.1 头(header) 1.2 结构块(struct block)  扁平设备树结构块是线性化的树形结构,和字符串块一起组成了设备树的主体,以节点形式保...
阅读(27) 评论(0)

I2C设备驱动

以前我们的probe只打印,现在我们做一些有用的事情...
阅读(21) 评论(0)

I2C写设备端

先从第一步做起,怎么去注册一个设备。内核里面有个文档 这里有个instantiating-devices。这个文件的名字叫做实例化设备。 第一种方法 第一种方法通过总线设备来声明设备,这里有个例子,我们直接看源码方便一些 I2C_BOARD_INFO解析起来就是I2C单板信息。定义一个board_info结构体。I2C_BOARD_INFO("24c08",0x50...
阅读(78) 评论(0)

I2C

先来看一下原理图   这是个存储芯片。只用两跟引脚与CPU的I2C控制器相连,一个就是I2C_SCL一个就是I2C_SDA。CPU上的I2C_SCL和I2C_SDA上可以接很多芯片。每个芯片都会有个设备ID, 或者称为设备地址,去看芯片的原理图,里面都有设备的地址,比如说我们这里的FM24CL04。 I2C硬件协议 首先CPU会发出一个start信号,保持SCL为高电平,SDA由高变...
阅读(70) 评论(0)

驱动从PC指针分析段错误

我们将驱动程序故意改一句话  我们都知道寄存器要ioremap之后才能用。在驱动程序里面不能使用物理地址 或者对那种没有初始化指针的时候你操作也会出错。我现在故意引入这个错误 我们修改以前的LED代码用来说明 我们将以前的驱动程序改成下面这种 然后加载并运行测试程序 我们现在就根据这一大堆错我来找问题 [  181.105729] Unable to handle...
阅读(58) 评论(0)

JAVA中的包

Java中的包 名称冲突问题 C语言中所有的函数都是全局的,因此在多人合作的大型项目开发中,容易出现两个函数同名的情况 如 A完成的.c文件中有一个名字为compare的函数,B完成的.c文件中有名为compare的函数 C语言中一般是通过在函数名上加上前缀来解决名称冲突问题 JAVA中是不是也有类似的情况? 在JAVA里面也是有这个问题的 JAVA字节码文件 JAVA中的基本程序...
阅读(35) 评论(0)

JAVA中的接口与内部类

接口 什么是接口? 接口是JAVA中一种自定义的特殊的类 接口中只能声明方法的原型,而不允许定义方法体 接口中定义的属性只能是常量 为什么需要接口 JAVA语言中只支持单继承模式,即一个类有且只有一个父类,那我想多层继承呢,那只能继承接口了,接口只有方法原型,接口定义的属性必须是常量 JAVA中的类都继承了Objiect,Objiect是所有JAVA类的父类 接口的定义和使用 J...
阅读(70) 评论(0)

java继承与多态

继承的基本概念 生活中的继承指的是,晚辈得到了长辈的一些事物或者特性          如:小孩继承了父母的一些特性,眼睛像妈妈,鼻子像爸爸等等 面向对象的语言也引入的类似的概念 Java语言通过extends关键字来表明两个类之间的继承关系 子类通过继承能够得到父类的属性和方法 子类也可以添加自己特有的属性和方法          如:小女孩可以长得像妈妈,但是比妈妈更漂亮...
阅读(56) 评论(0)

linux设备树

设备树的最终目的 提供一种语言来解析硬件配置信息   设备端:使用设备树之前 硬件的描述信息,放置在一个个arch/xxx/mach-xxx/board-xxx.c的C文件中 static struct resource dm9000_resource1[] ={ { .start = 0x20100000, .end = 0x20100000 + 1, .flags = IOR...
阅读(101) 评论(0)

库依赖问题解决办法

问题: 执行: sudo apt-get install g++ 得出如下错误: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出。 下...
阅读(41) 评论(0)

数据封装

数据封装的基本概念 日常生活中的经验:并不是类的每个属性都是对外公开的 如:女孩子不希望外人知道自己的年龄和身高 如:一些男孩子不希望别人知道自己会尿床 而一些类的属性是对外公开的 如:人类的姓名、学历,国籍等 因此,我们需要在我们的表示法中定义属性和行为的公开级别 类似文件系统中文件的权限 数据封装的基本概念 封装是一个面向对象的术语,指的是把属性定义和行为方法都包装于...
阅读(71) 评论(0)

JAVA之面向对象

面向对象的基本概念 基本概念 类和对象是面向对象中的两个基本概念 “类”指的是一类事物,是一个抽象的概念 “对象”指的是属于某个类的一个实体,是一个具体存在的事物 类是一种“模版”,可以通过这种模版创建出不同的对象“实例” 对象“实例”是类“模版”的一个具体实现 一个类可以有很多对象,而一个对象必然属于某个类 先说一个概念,老虎,我们都知道老虎是一个什么样的东西把 我们在...
阅读(44) 评论(0)

JAVA第四天

运算符和表达式 和C语言是一样的 算术运算符 ++和--优先级 最高 *,/,%优先级其次 +,-优先级最低 括号可以改变优先级 逻辑运算符 !运算符优先级最高 &&运算优先级其次 ||运算优先级最低 括号可以改变优先级 与C语言不同的话||、&&、!结果只能是true或者false 不是0跟1 关系运算符 JAVA中同类型的变量和常量都可以用==和!=...
阅读(36) 评论(0)

JAVA第三天

流程控制 流程控制语句是编程语言中的核心之一 分支语句 if-else和switch 循环语句for和while 跳转语句continue和break 分支语句 if 条件为真执行语句,条件为假不执行 例子程序 public class Main{         public static void main(String[] args){...
阅读(38) 评论(0)

JAVA第二天

JAVA语法规定,文件名必须跟文件里面被声明为public的class同名,比如我们上面的public class Main,我们那个JAVA的文件名就要叫Main 这里我们主要介绍一下标识符和数据类型 Java中的类名、变量名、函数名、常量名等都需要一个标识符作为它的名字 那么问题就来了,我如何去定义一个标识符呢。我们想到了我们C语言也有变量名,也有函数名等等。 这些都是标识符,C...
阅读(52) 评论(0)
85条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:10019次
    • 积分:921
    • 等级:
    • 排名:千里之外
    • 原创:85篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论