06 2018 档案
摘要:一个最简单的驱动代码: 对应的Makefile为: sudo insmod vser.ko 验证: sudo rmmod vser 后查看
阅读全文
摘要:驱动代码: 应用层代码: 插入模块: root@plnx_arm:/mnt# insmod mytest.ko ioremap called: phys 0x41200000 -> virt 0xf09f0000 测试设备号: 运行应用程序:
阅读全文
摘要:自己想要打印EMIO管脚的物理地址,在SDK提供的头文件中加入printf是无法打印的,基于此 我将需要打印地址的几个函数提取出来,放在main函数中,然后在里面加入printf打印这些用户管脚的地址: 将其修改为自定义函数,目的就是利用串口打印物理地址 上述代码是利用SDK提供的API接口实现le
阅读全文
摘要:本文参考: https://www.cnblogs.com/lifexy/p/7506277.html http://derekmolloy.ie/writing-a-linux-kernel-module-part-2-a-character-device/ 驱动学习2中每次都要手工创建设备节点,
阅读全文
摘要:本文使用三种方法创建设备驱动,同时使用应用程序测试驱动是否安装成功。 其中,前两种方法都是手工创建设备节点,最后一种方法使用混杂设备的方法不需手工创建设备节点 在/dev/目录下创建设备文件hello,应用程序helltest.c为: 第一种:手动创建驱动 加载之前首先通过 cat /proc/de
阅读全文
摘要:Linux驱动程序,首先应该知道它是linux的内核模块。 Linux内核模块是使得复杂而庞大的linux内核条理清晰、可裁剪、高兼容性的重要特性。 Linux内核模块的特点: 1, 模块本身不被编译进内核镜像,能够控制内核的大小。 2, 模块可以在需要的时候中被动态加载,一旦加载完成就和内核其它部
阅读全文