android驱动编译后,简单的android驱动-helloworld

简单的android驱动--helloworld

首先进入源码目录下kernel\drivers\创建自己的驱动文件夹如kernel\drivers\hello

进入hello文件夹,创建三个文件 hello.c``Kconfig``Makeflie

分别是.c的驱动和配置文件,其中hello.c的代码如下

#include

#include

#include

#include

static int __init hello_init(void)

{

int i;

for(i=0;i<=10;i++)

{

printk(KERN_ALERT"~~~~~~~~~~~~~~~~~~~~~~~~Hello world~~~~~~~~~~~~~~~~~~~~~~~~ %d\n",i);

mdelay(1000);

}

return 0;

}

static void __exit hello_exit(void)

{

printk("Exit Hello world\n");

}

subsys_initcall(hello_init);

module_exit(hello_exit);

MODULE_AUTHOR("HraychQJ");

MODULE_DESCRIPTION("hello world");

MODULE_LICENSE("GPL");

这段代码实现的功能是,在启动时连续打印10条helloworld

配置文件如下

Kconfig

config HELLO

tristate "Hello world"

default n

Makefile

# LED Core

obj-y += hello.o

注意添加驱动还要修改上层配置文件,在drivers目录下找到Kconfig和Makefile文件,添加如下代码

Kconfig source "drivers/hello/Kconfig" Makefile obj-y += hello/

命令行进入kernel目录下,运行make menuconfig,选择Device Drivers选项,再选择列表中最后一行helloworld选项,配置y编译进内核,保存退出。

重新编译android,烧入开发板即可

如果烧写完成后发现并没有开机打印helloworld,检查hello文件夹下是否生成了.o文件,没有生成的话说明没有编译进内核。

ubuntu16的解决方式是删除当前gcc,重新安装4.8版本。

另附 如何查看串口打印log

将板子上的rx2和tx2接出到转串口小版上,再随意接出一个3.3v的电源和gnd脚,将转串口usb插入pc端。

windows下使用putty可查看板子的log信息。

下载putty打开,Connection type选择Serial(串口选项)

Serial line填当前设备识别到的串口号,可以在设备管理器中查看,如COM1、COM2、COM3。

Speed设置为1500000,为板子默认的通讯波特率,其他设置不变,点击Open连接成功。

你可能感兴趣的:(android驱动编译后)