内核驱动模块的编写规范驱动模块一般涉及的必用的头文件:驱动模块的入口函数的规范:int __init entry_name(void){ /*xxx*/ return 0;}module_init(entry_name);驱动模块的出口函数规范:void __exit exit_name(void....
分类:
系统相关 时间:
2015-01-09 23:43:20
阅读次数:
229
现代操作系统有三大特性:中断处理、多任务处理和多处理器。这些特性导致当多个进程、线程或者CPU同时访问一个资源时,可能发生错误,这些错误是操作系统运行所不允许的。在操作系统中,内核需要提供并发控制机制,对共享资源进行保护。 在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行...
分类:
系统相关 时间:
2015-01-07 23:22:27
阅读次数:
225
linux驱动 例子 自己的驱动, 入门, 加入自己驱动,实测通过,生成模块文件 ko文件,如果在linux内核中编译自己驱动...
分类:
系统相关 时间:
2015-01-07 18:55:52
阅读次数:
286
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/*** container_of - cast a member of a structure out to the containing struc...
分类:
其他好文 时间:
2014-12-31 12:50:45
阅读次数:
136
忙了几天,终于可以让ds18b20在自己的开发板的linux系统上跑了!虽然ds18b20不是什么新鲜玩意,但是想想知己可以给linux系统添加模块了还是有点小鸡冻呢!虽然说现在硬件的资源非常丰富而且剩余很多,可以用软件资源来代替硬件资源,比如说可以用视频编解码软件取代硬件来工作。但有很多模块需要实...
分类:
系统相关 时间:
2014-12-27 15:59:29
阅读次数:
333
有了上两篇文章的基础,我们就可以开始开始进行实战啦!这里顺便说一下啊,出来做开发的基础很重要啊,基础不好,迟早是要恶补的。个人深刻觉得像这种嵌入式的开发对C语言和微机接口与原理是非常依赖的,必须要有深厚的基础才能hold的住,不然真像一些人说的,学了一年嵌入式感觉还没找到门。另外实践很重要,一年多以...
分类:
系统相关 时间:
2014-12-21 19:24:01
阅读次数:
212
自从选择了物联网这个专业,智能XX的字样牵动着每一个学习这个专业的孩子。大家兴致勃勃的来到了学校,结果一切想象和自己的设想并不一样。想象中的各种智能般梦幻的场景变成了真实的高数/电路/模电等等诸如此类!不知道这个世界什么时候变得如此的浮躁,当大家的一段时间的努力看不到结果的时候就往往会不太感兴趣,模...
分类:
系统相关 时间:
2014-12-20 16:51:54
阅读次数:
228
基于Linux的I2C驱动,采用probe方式。按照如下这个框架可以写出任何支持I2C总线的器件的Linux驱动。
I2C器件连接至cpu的特定的i2c的接口,也就是挂载在cpu的i2c适配器上,i2c器件要和cpu进行信息交换必须要通过cpu操作适配器来交互。cpu上有1个或多个适配器,每个适配器上可以挂载256个设备地址不一样的i2c器件,通过i2c驱动就可以让cpu和适配器上的多个不一样的...
分类:
其他好文 时间:
2014-12-17 22:40:18
阅读次数:
915
Linux下画原理图和PCB
Windows下大名鼎鼎的Allegro和经典的Protel 99SE都是不支持Linux操作系统的,做Linux驱动开发免不了要看一下原理图和PCB。
一般的做法有三种:
1.主机使用Windows系统,将Linux装在VMWARE之类的虚拟机中这样可以使用Windows下的软件看原理图和PCB了;
2.与第一条反过来,在Linux系统中装一个Windows...
分类:
系统相关 时间:
2014-12-15 10:30:22
阅读次数:
391