驱动开发
田小默
这个作者很懒,什么都没留下…
展开
-
交叉编译出错
[root@Tim linux-2.6.29]# make scripts/kconfig/conf -s arch/arm/Kconfig CHK include/linux/version.h make[1]: “include/asm-arm/mach-types.h”是最新的。 CHK include/linux/utsrelease.h SYMLINK include/asm转载 2017-06-10 17:06:10 · 717 阅读 · 0 评论 -
一个LED驱动的编写
#include <linux/kernel.h> #include <linux/module.h> #include <linux/cdev.h> #include <linux/fs.h> #include <linux/miscdevice.h> #include <linux/kdev_t.h> #include <linux/device.h> #include<linux/io.h>原创 2017-06-24 15:50:08 · 938 阅读 · 0 评论 -
io操作
驱动层long led_ ioctl(struct file *fp, unsigned int cmd, unsigned long arg) /*fp 文件指针,cmd 命令,arg 数据 cmd 命令是一个 32 位数 从上层应用传过来的 arg 可能是数据也可能是指针 如果是应用层是指针,读的时候需要先转换成 数据 *((int *)arg) */ cm原创 2017-06-26 22:44:18 · 220 阅读 · 0 评论 -
中断
驱动层#include <linux/kernel.h> #include <linux/module.h> #include <linux/cdev.h> #include <linux/fs.h> #include <linux/miscdevice.h> #include <linux/kdev_t.h> #include <linux/device.h> #include <linux/io原创 2017-06-26 22:45:41 · 540 阅读 · 0 评论 -
linux内核模块编写方法
目录一 内核模块结构 二 模块编译测试 1 编译 11 Makefile 文件的书写 12编译方法 2 加载模块 3 卸载模块 三 模块参数 1 c语言主函数的参数形式 2 linux内核模块参数形式 四 多模块同时编译 1 程序 2 编译结果 3 加载卸载 五 多文件编译成一个模块 1 程序 2 编译 3 挂载卸载 一 内核模块结构例子:#include <linux/kernel.h> //需原创 2017-06-14 15:37:49 · 594 阅读 · 0 评论 -
内核同步机制
linux 内核为了避免共享数据(临界区)访问冲突,提出了一些控制机制:原子量,自旋锁,信号量原子量: 原子操作:cpu 执行某个操作过程中,不可被外界打断或中断 原子变量:原子量的运算过程不可被中断 如何使用原子变量:1.定义原子量 :atomic_t xxx2.原子量操作函数: atomic_set(&v, i) //初始化原创 2017-06-27 19:23:01 · 267 阅读 · 0 评论