淘先锋技术网

首页 1 2 3 4 5 6 7

ubuntu下使用eclipse开发驱动

之前驱动代码通过gedit工具来进行编写调试操作,使用过gedit的伙伴们肯定知道有多痛苦,如果能有个好用的开发工具该有多好,那么就来find一下吧。

1、Ubuntu下eclipse安装

(1)环境

ubuntu14.04,update到最新状态

(2)安装

参考之前博客安装《Ubuntu安装Eclipse for C/C++及相关配置》https://blog.csdn.net/yongwenn163/article/details/79878441
当然还有其他安装方式,我使用的是这种,且验证肯定可以使用,暂定就用这种方式来安装。

2、eclipse下开发驱动工程搭建

(1)安装

这里推荐一个非常好的安装教程,讲的非常详细,我就不班门弄斧讲了(毕竟也是参考人家的哈),则合理给出参考链接https://blog.csdn.net/judyge/article/details/49335185

(2)问题解决

当然,能够完全按照上面链接安装成功最好,但有时候总是会碰到各种各样的问题的,这里说下我碰到的问题与解决方法,还有几个注意事项。

1)、权限问题,这个非常重要,总是忽略掉,因为我的交叉编译环境配置的是需要root权限的,但是打开eclipse的时候却忽略了,导致后期导入的代码一堆报错,就是因为识别不到交叉编译库而报错的,所以如果自己的交叉编译环境需要root权限,打开eclipse时一定要使用root权限打开,特别注意!!!

2)路径添加问题,注意上面文档的路径时作者的路径,而自己的内核路径与交叉编译路径与作者的很小的机率一样,需要注意修改配置,一是交叉编译环境路径需要注意,另一个是内核路径,同时内核中库需要选择自己的对应板子的库,比如说链接原作者的路径为:

<includepath>/home/cfan/linux/linux-3.0.1/include</includepath>  
<includepath>/home/cfan/linux/linux-3.0.1/arch/arm/include</includepath>  
<includepath>/home/cfan/linux/linux-3.0.1/arch/arm/plat-samsung/include</includepath>  
<includepath>/home/cfan/linux/linux-3.0.1/arch/arm/mach-s3c64xx/include</includepath>  

而我的内核路径与使用的板子跟作者的不一样,就需要修改,一定要选择对应的板子,我的路径为(使用的是讯为的4412板子):

<includepath>/home/ntu/iTOP4412/iTop4412_Kernel_3.0/include</includepath>  
<includepath>/home/ntu/iTOP4412/iTop4412_Kernel_3.0/arch/arm/include</includepath>  
<includepath>/home/ntu/iTOP4412/iTop4412_Kernel_3.0/arch/arm/plat-samsung/include</includepath>  
<includepath>/home/ntu/iTOP4412/iTop4412_Kernel_3.0/arch/arm/mach-exynos/include</includepath> 

3) make: *** No rule to make target `all’. Stop 解决

一切搞定后,最后一步差点功亏一篑,将源码与makefile导入工程进行编译,却报上面的错误,原因在makefile没有成功链接上,因此需要对环境进行一下配置才可以继续使用,方法为:
在Project->Properties->C/C++ Build中的Behavior Tab(行为or规则)标签下,看到一个Build(Incremental build)CheckBox和一个文本框(内容是all),删除all,在Build(Incremental build)后面的variable…按钮Button中选择build_project 或者 build_files都可编译通过。参考链接:
https://blog.csdn.net/txk15619567977/article/details/44830547

这里写图片描述

3、eclipse下应用端程序环境配置

在驱动程序可以成功使用eclipse来进行开发后,那么问题来了,既然驱动程序都可以在这开发了,那也直接在该环境下开发应用端程序算了,是的,当然可以啦,而且过程比驱动程序简单多了,只需要添加交叉编译工具,同时静态编译一下,就可以使用了,废话不多说,直接看下图静态编译配置位置,交叉编译配置参考驱动开发中交叉编译配置:

这里写图片描述