OK6410学习之第一个驱动hello world

编写第一个驱动程序hello world


先把内核源码放进去,OK6410的光盘自带了,FORLINX_linux-3.0.1.tar.gz


tar zxvf FORLINX_linux-3.0.1.tar.gz解压

然后放进/usr/src/目录


由于之前疏忽,把printk大成printf...结果提示stdio.h: no such file or directory

百度到方法说安装下面两个

apt-get install libc6-dev
apt-get install libmysqlclient15-dev

装好后提示内核配置错误....那就编译一下内核吧

make oldconfig

make prepare

make

三步,编译一个内核,编译好后在arch/arm/boot里面

hello.c

 
#include<linux/init.h>
#include<linux/module.h>

void hello_init()
{
    printk("hello world\n");
    printk("I will win the world\n");
}

void hello_exit()
{
    printk("Good Bye\n");
}

module_init(hello_init);
module_exit(hello_exit);

Makefile

obj-m:=hello.o	#将驱动编译成动态链接模块,名字是hello.o
KERNELDIR?=/usr/src/linux-3.0.1

DEFAULT:
	$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules	#$(MAKE) -C $(KERNELDIR)的意思是进入变量KERNELDIR中的目录自行make命令
							#M=$(shell pwd) modules 通过pwd命令获取驱动源码的地址,当需要编译成模块的时候返回
clean:
	rm -rf *.o *~*.ko *.mod.c *.order *.symvers





注:

obj-m 编译成模块

obj-y编译进内核

obj-n 不编译



编译好后,把hello.ko放进SD卡


OK6410上运行
insmod hello.ko加载驱动
lsmod查看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值