移植驱动到内核学习笔记3-----LCD及输入系统

来源:互联网 发布:js require的用法 编辑:程序博客网 时间:2024/06/07 13:41

1、把驱动程序放到服务器上,修改Makefile并进行编译


修改Makefile里面的内核目录


进行编译


2、编译出现错误并解决

没有头文件就把它注释掉


3、把生成的驱动拷贝到网络文件系统


配置内核把原来的LCD驱动程序去掉


把s3c2410  LCD framebuffer support设置为M


最后编译内核


4、重新烧写、启动内核


还需要make modules,编译所有的模块驱动


因为LCD驱动程序依赖于其他三个函数,那三个函数分别放在三个文件里面,那三个文件也要编译成模块加载进去


下载内核并启动内核


5、测试程序

(1)把测试程序放到服务器编译


(2)修改Makefile


(3)进行编译


(4)把测试程序拷贝到根文件系统


6、实验

(1)装载LCD驱动,出现问题(某些函数没有定义)


(2)把LCD驱动的依赖拷贝到根文件系统那里去


(3)对各个驱动进行装载


(4)测试(测试程序后面跟设备名称)


(5)吧文字写到LCD上


7、按键驱动移植(键盘输入,显示器输出)

(1)把驱动拷贝到服务器,并修改Makefile


(2)修改Makefile,把内核目录改成新的内核目录


(3)编译出现一大堆错误(根据不同情况修改)

(4)编译修改后的文件,并把驱动拷贝到网络文件系统上去


(5)装载驱动程序


(6)按下按键,cat是将某个文档中的内容显示出来


(7)修改/etc/inittable

加上一行tty1,表示重启系统时会启动一个shell,这个shell从/dev/tty1得到输入,把输出信息输出到/dev/tty1里面去。


(8)重启系统,下载新内核启动

(9)装载模块



(10)按下按键,在LCD上可以看到控制台一样的信息

8、触摸屏驱动移植

(1)把触摸屏驱动放到服务器上去,修改Makefile


(2)修改Makefile,把内核目录更换为新内核目录,然后进行make编译

(3)Make编译后出现一大堆错误。(根据不同错误进行解决)

(4)编译后把生成的驱动拷贝到网络文件系统上

(5)加载触摸屏驱动,/dev/event1对应触摸屏。


(6)触摸屏的使用

解压触摸屏库,autogen.sh是检测你的编译工具和依赖关系包是否完整,自动生成Makefile


创建文件夹、向文件添加内容、配置文件


编译和安装(make 、make install)

把编译安装好的文件拷贝到根文件系统上去


修改配置文件


输入设备是event1,设置环境变量,触摸屏程序会根据这些环境变量决定打开哪一个设备


校准(出现错误)(校准程序不能理解里面的数据)


tslib中的输入系统和内核input系统版本不匹配(在浏览器中搜索错误内容)


tslib用的版本是什么?我们编译的应用程序它的头文件是在工具链里面的,在交叉编译工具链里面搜索版本


修改文件的版本宏跟内核一样

提示下这个交叉编译下的input.h有可能你的路径跟我的不一样,你可以在你交叉编译路径下用如下命令搜索:

find -name "input.h"



修改权限


然后重新编译

make clean

make

再安装


安装到tmp目录下,吧目录下的所有文件拷贝到文件系统里


(7)重新执行校正程序


修改配置文件吧#module_raw input这个宏前面的#去掉。


再次实验(点击触摸屏上面的十字架)


测试(执行测试程序后在触摸屏上画线)


0 0
原创粉丝点击