- 博客(15)
- 资源 (3)
- 收藏
- 关注
原创 深层次分析linux2.6input子系统
在linux下,按键、触摸屏、鼠标等都可以利用input接口函数来实现设备驱动。 从上图可知:输入子系统由三部分构成:1 驱动2 输入子系统3 处理函数其中2,3都是内核已经完成,我们要完成的就是1驱动设备用input_dev结构体描述,使用input子系统实现输入设备驱动的时候,驱动的核心工作是向系统报告按键、触摸屏、键盘、鼠标等输入事件(event,通
2012-08-25 16:59:46 902
原创 浅析2.6设备模型
2.6内核引入了sysfs文件系统,sysfs被看成与Proc devfs devpty同类别的文件系统,该文件系统是一个虚拟的文件系统,它可以产生一个包括所有系统硬件的层级视图,跟proc文件系统类似。sysfs的顶级目录包括 block device bus drivers class power firmwareblock目录包含所有块设备,devices目录包含系统所有的设备并根据
2012-08-22 20:36:02 375
原创 linux内核调度策略的修改对内核线程的影响
首先介绍下内核线程:直接上代码:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include MODULE_LICENSE
2012-08-22 15:39:39 837
原创 Linux2.6 I2C子系统分析
在linux中iic是以子系统的方式存在,我们查看2.6.32.2的内核源代码结构:在/drivers/iic目录下有algos busses chips文件夹,有i2c-core.c i2c-dev.c i2c-boardinfo.c源文件,那么这些分别代表什么呢?Algos目录下主要存放I2C总线适配器的algorithm。也就是I2C通信的一些算法,比如多少频率等
2012-08-21 15:47:43 812
原创 从用户态的open到内核驱动实现流程
我们之前在系统调用已经知道,在arm中open系统调用会产生一个SWI终端,最后跳转到call.c中 sys_open.我们看到里面所完成的工作为:1、查看打开的是否是大文件,如果是的话,置大文件标志位:O_LARGEFILE2、做do_sys_open()函数调用。3、检查2的调用返回值ret是否有效。查看do_sys_open()函数所完成的工作为:(1)调用get
2012-08-21 15:26:33 712
原创 浅析linux2.6 framebuffer
在Linux内核中,Framebuffer(帖缓冲)驱动是显示驱动的标准,Framebuffer将显示设备抽象为帖缓冲区,用户通过内存映射到进程地址空间之后,就可以直接进行读写操作,且写操作可以立即在屏幕上进行显示,在Linux内核/linux/drivers/video/下有相关的显示驱动与接口,其中Frmaebuffer驱动接口为fbmem.c。framebuffer驱动架
2012-08-20 22:48:24 1310
原创 C野指针
野指针”不是NULL指针,是指向“垃圾”内存(不可用内存)的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if无法判断一个指针是正常指针还是“野指针”。有个良好的编程习惯是避免“野指针”的唯一方法。 对指针操作不规范会很可能导致系统内存访问错误。下面举一个例子: #include #include #inc
2011-11-05 15:44:15 569
原创 关于u cos 中延时函数OSTimeDly和任务通信***pend()函数对任务的影响分析
在u cos系统中,OSTimeDly和***pend都对任务有状态改变的作用,那么这两个函数到底有什么不同呢?例程分析:static void App_TaskStart(void* p_arg)//优先级为2{ static st t; INT8U
2011-10-11 18:19:42 1324
原创 u cos 延时函数用法小节
在u cos ii中任务延时函数是非常重要的的功能函数,它可以使任务在超级循环中不至于独占CPU,因为在任务中调用一次这个函数系统会进行一次任务调度,从而执行下一个优先级更高的任务,一旦调用OSTimeDly()所规定的时间满或者有其他任务通过调用OSTimeDlyResume(
2011-10-10 10:05:26 652
原创 stm32 通用定时器
stm32通用定时器是 TM2 3 4 5。功能包括:向上向下计数。16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意的值等等简单介绍一下利用TIM产生中断方法:其中有三个寄存器很重要:TIMx_CR1 时钟控制寄
2011-09-16 21:32:43 1044
原创 i2c总线协议总结
一. I2C协议技术性能: 工作速率有100K和400K两种; 支持多机通讯; 支持多主控模块,但同一时刻只允许有一个主控; 由数据线SDA和时钟SCL构成的串行总线; 每个电路和模块都有唯一的地址;
2011-09-13 12:34:03 329
原创 关于linux进程通信总结
进程的定义:进程是一个具有独立功能的程序的一次性活动。特点:1,独立性 2,并发性 3,动态性 4, 异步性进程ID:标识进程的唯一数字(PID以及PPID)。进程互斥:若干个进程访问一个资源时,只允许一个进程访问资源。其他进程需等待该进程访问完毕后才能使用该
2011-09-13 12:32:56 376
原创 关于linux线程总结
关于linux 线程总结什么是线程: 线程是进程中某一单一顺序的控制流。是程序执行的最小单元。线程的优点:1, 占CPU时间,资源少。2, 一个进程中的多个线程共用一个地址空间,共享代码段,数据段,以及堆栈段。编写线程程序时,需加,编译时需加 –lpthrea
2011-09-13 12:31:46 343
原创 关于linux网络编程总结
OSI七层网络模型 建立七层网络模型的目的是为了让不同的制造商在网络上通信,比如我A主机是苹果公司生产,操作系统是苹果,B主机是IBM公司生产,操作系统是windows,在AB主机软硬件都不同的情况下通过七层网络模型就可以互相通信了。下面阐述一下各层的作用:1 应用层
2011-09-13 12:30:09 544
原创 2440 裸机小节
工作模式1 用户模式2 快速中断模式3外部中断模式4管理模式5数据访问终止模式6系统模式7未定义模式可通过软件改变,或外部中断改变模式。除去用户模式和系统模式其他5种模式都叫异常模式。寄存器37个32位寄存器,31个通用寄存器,6个状态
2011-09-13 12:28:15 386
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人