简单的linux 驱动
来源:互联网 发布:华为ar1200s mac绑定 编辑:程序博客网 时间:2024/05/17 02:59
- Linux 驱动框架
- 实现功能
- 代码
- 测试
1. Linux 驱动框架
<待补充>
2. 实现功能
做这个驱动的最主要目的是熟悉linux 驱动的写法和框架,所以实现的功能比较少。这个驱动可以替代/dev/mem
,实现了最基本的open、close、mmap 和munmap(这个不是自己实现的,linux 默认接手了这个操作),用户可以自己mknod 一个文件,然后加载我的驱动,之后要操作内存的时候直接访问这个文件就可以了。好处就是对内存、外设的访问的内部过程可以自己控制,并且在操作系统屏蔽了访问/dev/mem
的情况下还可以直接访问内存。
3. 代码
代码其实就俩文件,memory_device.c
和memory_sysfs.c
,分别实现了memory 的基本操作和在/sys
目录下创建配置文件的功能,当然了,memory_sysfs.c
其实是可以合并到 memory_device.c
里面的,不过为了学习的目的我还是分解出来了,其实我还打算把关于内存操作的代码,也就是struct file_operation 的代码单独放到一个文件里面,这样代码就更清晰了,不过偷懒没实现,以后有时间了就把它分解出来。
memory_device.c
int main(void )
{
printf("占位\n");
return 0;
}
memory_sysfs.c
int main(void )
{
printf("占位\n");
return 0;
}
4. 测试
测试比较简单,假设内存总共1G,我就分别在没256MB 空间里面mmap 出1MB 地址空间进行操作。先读出内存的原始内容,然后在写进自己的的数据,再读出来。
注意,我是在开发板上做实验的,所以内存的使用情况我很清楚,所以随便读写不会有问题的,但是如果你直接在PC 上操作一定要注意不要影响到OS 和其他程序的内存,不然会挂掉的。
以下无正文
- 简单的Linux驱动
- 简单的linux 驱动
- Linux驱动开发一:简单的驱动
- linux最简单的驱动
- 一个简单的Linux驱动
- 简单的linux驱动学习
- 简单的linux字符型驱动示例
- Linux驱动开发学习的简单步骤
- Linux 简单的字符文件驱动
- linux驱动最简单的makefile
- 关于linux模块驱动简单的Makefile
- linux简单的字符设备驱动
- 1.最简单的linux驱动
- 一个简单的Linux字符驱动
- linux下简单的设备驱动开发
- 如何写一个简单的linux驱动
- Linux字符设备驱动的简单总结
- linux驱动_最简单的例子
- iOS 正则表达式判断邮箱格式,手机号码
- 文件与内存的桥梁:页缓存
- 欢迎使用CSDN-markdown编辑器
- Web分页工具类
- 5-7
- 简单的linux 驱动
- jsp基础学习(六)--jsp传递参数方法
- [Astar2015]下棋
- 抽象工厂模式
- C++刷题——{A} + {B} 实现集合的相加
- ADB 远程访问 tiny210
- C语言中常用的占位符
- JVM相关
- UITapGestureRecognizer的用法