linux设备驱动程序的makefile文件例子
来源:互联网 发布:如何开展网络推广工作 编辑:程序博客网 时间:2024/06/05 11:51
最近研究QQ2440,想做水下机器人的位姿检测,用linux需要对设备驱动编程,学了学,挺麻烦的,麻烦在编译和加载上,在网上找到一个例子不错,抄下来备用。
PC机上的:
- obj-m := hello.o
- KERNELDIR := /lib/modules/$(shell uname -r)/build
- default:
- make -C $(KERNELDIR) M=$(shell pwd) modules
- install:
- insmod hello.ko
- uninstall:
- rmmod hello.ko
- clean:
- make -C $(KERNELDIR) M=$(shell pwd) clean
ARM上的:
- obj-m := hello.o
- KERNELDIR :=/opt/friendlyARMQQ2440/ghCodes/kernel-2.6.13 #对应到自己开发板得内核目录
- default:
- make -C $(KERNELDIR) M=$(shell pwd) modules
- install:
- insmod hello.ko
- uninstall:
- rmmod hello.ko
- clean:
- make -C $(KERNELDIR) M=$(shell pwd) clean
两者的区别仅仅在内核目录上,这个问题是后来才研究明白的,因为之前内核配置上的错误导致了很多问题,在网上找到一些解决方法,一一解决了,现在想总结时却发现都忘了是什么问题了,只记得最后的时候insmod hello.ko时出现如下错误:
version magic '2.6.14.7 ARMv4 gcc-3.4' should be '2.6.14.7 preempt ARMv4
gcc-3.4'
insmod: cannot insert `st7565p_driver26.ko': Invalid module format (-1): Exec format error
上网搜资料,找到解决办法:http://blog.chinaunix.net/space.php?uid=20664418&do=blog&cuid=1271808
该文章中,用了其中的如下操作:
我用的是make menuconfig.
注意:
您的内核必须已启用这些选项进行了编译,用以支持模块的动态加载。
(用make menuconfig调出内核配置菜单):
Loadable module support --->
Enable loadable module support
Module unloading
[ ] Module versioning support (EXPERIMENTAL)
Automatic kernel module loading
注:该步没做时,在make modules时将出错。
Kernel Feautre -> Preemptible Kernel
配置完后重新make,然后就能在arm端成功运行!
- linux设备驱动程序的makefile文件例子
- Linux设备驱动程序的Makefile文件例子
- linux设备驱动程序的makefile文件例子
- Linux设备驱动程序的简单Makefile
- linux驱动程序makefile文件的解释
- [2014.3.17]开发板设备驱动程序的Makefile文件
- LED驱动程序的makefile文件
- linux设备驱动程序自动创建设备文件
- linux设备驱动makefile文件
- 【Linux设备驱动程序(第三版)】----设备文件的访问控制:独享设备
- LINUX下的设备驱动程序
- Linux设备驱动程序的基本知识
- Linux i2c设备的驱动程序
- 遍历PCI设备的Linux设备驱动程序
- 关于linux中Makefile文件的编写(简单例子)
- Linux设备驱动程序学习(6) -高级字符驱动程序操作[(3)设备文件的访问控制]
- Linux设备驱动程序学习(6)-高级字符驱动程序操作[(3)设备文件的访问控制]
- 一个简单的Linux驱动程序和Makefile
- 系统函数
- [IOS]IOS8自定义输入法教程:如何创建第三方输入法
- Java中的AutoBoxing (Integer对-128~127之间数值的特殊处理)
- Linux显示PCI设备
- 行为模式之Template(模板模式)
- linux设备驱动程序的makefile文件例子
- hdu 2824 线性筛素数求欧拉函数+前缀和
- 【ZooKeeper Notes 5】单机启动多个ZooKeeper实例注意点
- Linux显示USB设备
- 应用QQ2440(s3c2440)ARM开发板驱动MMA7455加速度计的linux设备驱动编写
- spi子系统分析续
- 几个简单的jquery知识点练习
- MySQL执行Select语句将结果导出到文件的方法
- Q5.1 Set Bits