继上次uboot和linux内核成功移植到板子上后,满心以为移植minigui也是很快的事情,没想到到成功移植minigui和触摸屏后已经将近一个月的时间了。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
首先,总结下这一个月来做的工作:
1、 移植minigui-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1.3.3到2440上;
2、 通过tslib成功移植好触摸屏驱动;
3、 解决了目标板开机自动登录和运行minigui程序。
第一项工作:
安装minigui的技术文档和查阅的网上资料进行编译,在pc机配置minigui的编译环境很容易就搞定了,但是交叉编译后移植到板子上就是另一回事了。
首先遇到的问题是一直提示找不到动态库,即以“.so”结尾的库文件,在郁闷了很多天并多次失败后,后来终于在网上查看到minigui动态库的查找路径为/lib和/usr/lib,所以把minigui的库拷贝到/usr/lib,问题成功解决,通过挂载nfs文件系统可以成功运行minigui程序(ial_engine=dummy,未添加触摸屏)
在这期间遇到另外一个需要注意的问题,即查看前人的论文,发现编译linux和minigui最好用同一个版本的交叉编译器,否则可能会因为某些库的不同而造成意想不到的错误。
第二项工作:
这项工作也参考了Tekkaman的博客,和另一篇《用tslib为MiniGUI提供触摸屏的IAL引擎》。有了这两篇文章的参考,移植触摸屏的道路比较平坦。
第三项工作:
使用的Tekkaman制作的文件系统,在挂载文件系统后都需要登陆,输入用户名和密码后才能进入命令行。但是我们的目标需要开机自动登录并运行minigui程序。
对于这个问题的解决,苦恼了很久,主要是对linux的启动详情不熟悉,所以有点无从下手的感觉。
而后参考了韦东山《嵌入式Linux用开发--完全手册》中的busybox的章节,对init进程有了初步的理解
init—》/etc/inittab/--》/etc/profile—》/.profile
登陆项的取消在inittab中,用户要自动运行的程序命令写在.profile中
注:.profile文件为隐藏的,要点击查看隐藏文件才能看到
另注:
运行minigui程序,屏幕移植有些闪,尝试了以下两种方法都没有效果,现仍为解决
1、 使用minigui的CreateCompatibleDC(hdc)和DeleteCompatibleDC();
2、 怀疑是pixclock值设置不对,查看对应lcd的pdf,将该值改为(1/33.3)MHz,即30030
本来想用手机上个程序运行的图的,但是前几天手机的摄像头被摔坏了
文章评论(0条评论)
登录后参与讨论