码迷,mamicode.com
首页 > 系统相关 > 详细

Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》

时间:2014-07-12 18:57:32      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:linux驱动开发   linux   嵌入式开发   

本文摘自《嵌入式Linux驱动模板精讲与项目实践》一书中的“开发与调试技巧”。

Linux的强大威力就在于有很多开源项目可以使用,通常很多需求可以通过寻找相关的开源模块做为快速解决方案。要把这些开源模块应用到嵌入式中,其中一个关键点就是要使用交叉编译工具对开源项目进行交叉编译。

根据具体情况,下载的开源项目在组织上有很多情况,在此对各种情况进行归类介绍。

1. 下载的开源软件包找不到Makefile

对于这种开源包通常是采用configure的方式组织的,那么第一步就是使用软件包中的configure生成Makefile文件。例如移植module-init-tools-3.2:

CC=arm-linux-gcc ./configure --prefix=/my_depmod --without-gun-ld --host=arm-linux

在./ configure之前指定交叉编译工具,指定安装路径为/my_depmod,后面选项是CPU相关的。各个选项可以通过./configure –help查看。

   第二步,生成Makefile之后,打开Makefile就可以看到:

prefix = /home/xlong.lin/workspace/sample/module-init-tools-3.2/my_depmode

CC = arm-linux-gcc

已经自动生成了对应的交叉编译Makefile。

第三步,Make进行编译。

第四步,make install安装。在指定的安装路径下得到最终需要的目标文件或者是库。

第五步,为了确认,使用file查看所得到的文件是否是嵌入式CPU中可以执行的。

2. 有些源码包下载解压之后有Makefile的,同时里面有CC选项的,这种情况比较简单,只要修改CC等选项即可。

   例如,移植goahead到单板上,解压之后Makefile中修改:

CC = arm-linux-gcc

AR = arm-linux-ar

   然后Make编译即可。

 如果Makefile中有CROSS_COMPILE也同样修改交叉编译工具即可。

3. 有Makefile但是找不到CC或者CROSS_COMPILE的情况。

这种情况采用 make CROSS= arm-linux-进行编译。

以上只对常见情况的交叉编译进行总结,无论哪种情况编译出来的都需要使用file工具确认是否交叉编译成功,是否可以在相应的CPU上执行。善于使用开源软件进行交叉编译移植可以快速的实现很多功能。

Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》,布布扣,bubuko.com

Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》

标签:linux驱动开发   linux   嵌入式开发   

原文地址:http://blog.csdn.net/mcuwlxlong/article/details/37669681

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!