目录
驱动移植
》1.需要有一个驱动对应的 .c代码
》2.将.c文件放入到对应的文件夹内
》3.修改Makefile文件
》4.修改Kconfig菜单
》5.到顶层目录配置自己驱动
》6.编译成模块
》7.此时用的开发板上内核的编译器,安装得到开发板上进行安装
》8.在开发板上进行安装
Source Insight 基础使用手册
》1.添加工程到Source Insight
》2.修改索引设置
》3.工程同步
驱动移植
》1.需要有一个驱动对应的 .c代码
本文使用lcd.c进行试验,自己随意创建一个即可
注:在试验环节lcd.c内部必须为空
》2.将.c文件放入到对应的文件夹内
我放的路径是/home/hq/temp/kernel-3.4.39/drivers/char
路径解析:内核源码下(kernel-3.4.39)的设备文件夹(drivers)的字符设备(char)
》3.修改Makefile文件
注:修改的Makefile文件是kernel-3.4.39/drivers/char下的Makefile
在Makefile中添加
obj-$(CONFIG_LCD) +=lcd.o
保存退出
》4.修改Kconfig菜单
注:修改的Kconfig文件是kernel-3.4.39/drivers/char下的Kconfig
在Kconfig中添加
config LCD
tristate "this is my LCD"
保存退出
》5.到顶层目录配置自己驱动
注:在kernel-3.4.39文件下执行make menuconfig
执行成功后会弹出
进行如下操作
》6.编译成模块
注:在kernel-3.4.39文件下执行make modules
执行成功后会得到 lcd.ko 文件
路径是kernel-3.4.39/drivers/char
》7.此时用的开发板上内核的编译器,安装得到开发板上进行安装
来到kernel-3.4.39/drivers/char路径,找到对应的lcd.o文件
作者此时的开发板根文件系统已经挂载到nfs工作路径下,只需将lcd.ko复制到nfs工作路径下即可
注:关于如何挂载nfs,作者有别的文章介绍
》8.在开发板上进行安装
可以看到lcd.ko已经同步过来了
在开发板根文件系统执行
insmod lcd.ko
安装驱动
会得到这个提示,因为我们的lcd.c是空的,只是为了进行试验,这条警告的意思是我们需要模块许可证。
以上,试验完成,关于模块许可证,我们在驱动移植环节讲。
Source Insight 基础使用手册
基础驱动编译需要用到内核源码中的函数,使用Source Insight工具将内核源码工程导入,在工程下写驱动能方便很多。
》1.添加工程到Source Insight
写在前面:在点击add all会弹出如下界面,需要全部选中
》2.修改索引设置
源码中有很多类型的文件,为了让Source Insight能索引到所有类型文件,进行如下配置
可以直接赋值下面添加上
*.c;*.h;*.S;*.lds;*defconfig;*Makefile;*.mak;*.dts;*.dtsi
》3.工程同步
弹出的窗口能勾选的全部勾线上
以上,就是Source Insight添加工程的基本操作