chap5嵌入式linux应用程序开发(ref).ppt

chap5嵌入式linux应用程序开发(ref).ppt

ID:48050917

大小:818.81 KB

页数:60页

时间:2019-05-06

chap5嵌入式linux应用程序开发(ref).ppt_第1页
chap5嵌入式linux应用程序开发(ref).ppt_第2页
chap5嵌入式linux应用程序开发(ref).ppt_第3页
chap5嵌入式linux应用程序开发(ref).ppt_第4页
chap5嵌入式linux应用程序开发(ref).ppt_第5页
资源描述:

《chap5嵌入式linux应用程序开发(ref).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章 嵌入式Linux应用程序开发5.1开发环境的建立进行项目开发前,首先要做的是搭建一套基于Linux操作系统的应用开发环境,一般由目标板和宿主机所构成。目标板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主机来完成。开发环境对硬件没有特殊的要求,但是为了双方之间建立连接关系,关键的接口包括串口、以太网口和USB口等是必不可少的。嵌入式Linux的开发环境传统的嵌入式开发环境需要单片机的仿真器,包含C语言、汇编语言、调试工具等的集成开发环境IDE和实时操作系统等,整个开发系统建立起来至少需要几

2、万元。由于Flash技术的发展,特别是一些CPU可以用JTAG接口下载调试,故仿真器已可以省去。随着标准化的推广,JTAG调试工具变得越来越简单、越来越通用。一些BDM调试工具已经简单到只需在PC机并行口和单片机的JTAG接口之间加一级5V到3.3V的电平转换,这使得自制调试工具变得越来越容易。软件方面,Linux下的自由软件GNUgcc可以完成几乎所有知名CPU,以及DSP的交叉C编译和调试,故可以省去IDE。个人用Linux开发嵌入式应用程序,可以在自己的PC机上安装一套Linux操作系统,使用Linux中的XWindows打开若干个窗口用于编译

3、、下载、调试等。如果整个研发小组由多名工程师组成,常采用的办法是:用1台PC机运行Linux作为服务器;开发小组中每个成员都通过局域网用Telnet登录到这台Linux服务器上去;被开发的目标板也挂在网上。在服务器的Linux环境下,各个工程师用GNUgcc编译生成目标代码,再用FTP传回到自己的PC机上,然后通过串行口或网络下载到目标机上。交叉编译环境的建立交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在宿主机上对即将运行在目标机上的应用程序进行编译,生成可在目标机上运行的代码格式。交叉编译环境是一个由编译器、连接器和解释器组成的综合开

4、发环境。交叉编译工具主要包括针对目标系统的编译器gcc、目标系统的二进制工具binutils、目标系统的标准c库glibc和目标系统的Linux内核头文件。在建立交叉编译环境之前,首先需要下载包括binutils、gcc、glibc及Linux内核在内的源代码,尽量选用较新版本,glibc和内核源代码的版本必须与目标机上实际使用的版本保持一致,并设定shell变量PREFIX指定可执行程序的安装路径。(1)编译binutils。运行configure文件,并使用--prefix=$PREFIX参数指定安装路径,使用--target=arm-linux

5、参数指定目标机类型,然后执行makeinstall。(2)配置Linux内核头文件。执行makemrproper进行清理工作,然后执行makeconfigARCH=arm(或makemenuconfig/xconfigARCH=arm)进行配置。一定要在命令行中使用ARCH=arm指定CPU架构,因为默认架构为主机的CPU架构,这一步需要根据目标机的实际情况进行详细的配置。配置完成之后,需要将内核头文件拷贝到安装目录:cp-dRinclude/asm-arm$PREFIX/arm-linux/include/asmcp-dRinclude/linux

6、$PREFIX/arm-linux/include/linux(3)第一次编译gcc。configure的运行参数设置:--prefix=$PREFIX--target=arm-linux--disable-threads--disable-shared--enable-languages=c执行makeinstall,将生成一个最简单的gcc。由于编译整个gcc是需要目标机的glibc库的,它现在还不存在,因此需要首先生成一个最简单的gcc,它只需要具备编译目标机glibc库的能力即可。(4)交叉编译glibc。由于这一步骤生成的代码是针对目标机c

7、pu的,因此它属于一个交叉编译过程。又因为该过程要用到Linux内核头文件,默认路径为$PREFIX/arm-linux/sys-linux,因而需要在$PREFIX/arm-linux中建立一个名为sys-linux的软连接,使其指向内核头文件所在的include目录;也可以在接下来要执行的configure命令中使用--with-headers参数指定linux内核头文件的实际路径。configure的运行参数设置如下,因为是交叉编译,所以要将编译器变量CC设为arm-linux-gcc:CC=arm-linux-gcc./configure--

8、prefix=$PREFIX/arm-linux--host=arm-linux--enable-add-o

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。