欢迎来到微传网! | 帮助中心 分享文档,创造价值!

微传网

全部分类
  • 办公文档>
    办公文档
    往来文书 招标投标 传真信函 解决方案 事务文书 活动策划 股份制文书 调研文书 规章制度 统计图表 PPT模板素材 工作计划 工作总结 会议纪要 产品手册 课程设计 求职简历 通知/申请 演讲致辞 说明文书 词典 简明教程 办公软件应用 教育范文
  • 中学教育>
    中学教育
    中学课件 中考 高考 中学作文 职业教育 试题 教学研究 竞赛题 高考英语 初中教育 高中教育 体育理论与教学 中学实验 音乐美术
  • 幼儿/小学教育>
    幼儿/小学教育
    幼儿教育 小学课件 学习方法 课外知识 爱心教育 教育管理 小学教育
  • 高等教育>
    高等教育
    研究生课件 大学课件 理学 工学 哲学 历史学 教育学 农学 思想政治 专业基础教材 生物学 语言学 微积分 统计学 实验设计 科普读物
  • 论文>
    论文
    期刊/会议论文 开题报告 经济论文 管理论文 社科论文 文学论文 医学论文 哲学论文 艺术论文 法律论文 自然科学论文 通讯论文 论文指导/设计 毕业论文 大学论文
  • 管理/人力资源>
    管理/人力资源
    经营企划 销售管理 代理连锁 工程管理 信息管理 资本运营 企业信息化 市场营销 广告经营 项目管理 营销创新 招聘面试 人事档案 员工关系 企业文化 宣传企划 企业文档 公司方案 商业合同 财务报表 励志书籍工具 咨询培训 劳动就业 商务礼仪 地方省市劳动合同 管理学资料 创业
  • 经济/贸易/财会>
    经济/贸易/财会
    经济学 财政/国家财政 商品学 市场分析 进出口许可 贸易 网络营销/经济 税收 稽查与征管/审计 资产评估/会计
  • IT计算机>
    IT计算机
    计算机原理 PHP资料 linux/Unix相关 C/C++资料 Java .NET windows相关 开发文档 管理信息系统 软件工程 网络信息安全 网络与通信 图形图像 行业软件 人工智能 计算机辅助设计 多媒体 软件测试 计算机硬件与维护 网站策划/UE 网页设计/UI 网吧管理 电子支付 搜索引擎优化 服务器 电子商务 Visual Basic 数据挖掘与模式识别 数据库 Web服务 网络资源 Delphi/Perl Python CSS/Script Flash/Flex 手机开发 UML理论/建模 并行计算/云计算 嵌入式开发 计算机应用/办公自动化 数据结构与算法 SEO
  • 资格/认证考试>
    资格/认证考试
    全国翻译资格认证 自考 成考 专升本考试 公务员考试 思科认证 微软认证 司法考试 教师资格考试 物流师考试 计算机等级考试 注册税务师 人力资源管理师 会计职称考试 出国培训 质量管理体系认证 医师/药师资格考试
  • 行业资料>
    行业资料
    社会学 纺织服装 食品饮料 家电行业 造纸印刷 酒店餐饮 物流与供应链 交通运输 旅游娱乐 文化创意 航空/航天 船工业技术 矿业工程 石油、天然气 工业冶金工业 金属学与金属工艺 武器工业 能源与动力工程 原子能技术 化学工业 轻工业/手工业 水利工程 农业工程 农作物 园艺 林业 畜牧 水产/渔业 展会 生活用品 航海/船舶 家居行业 实验 工业设计 室内设计 系统集成 国内外标准规范 新闻/广播 公共安全/安全评价
  • 金融/证券>
    金融/证券
    股票中长线技巧 股票短线技巧 股票经典资料 股票技术指标学习 金融资料 财经资料 投融资/租赁
  • 研究报告>
    研究报告
    信息产业 金融 教育 农林牧渔 冶金 石油化工 煤炭 交通 新能源 轻工 产业政策 商业贸易 国防军事 技术指导 安防行业 制药行业 统计年鉴/数据分析
  • 换一换
    首页 微传网 > 资源分类 > PPT文档下载
     

    搭建linux交叉编译开发环境.ppt

    • 资源ID:120092       资源大小:931.50KB        全文页数:40页
    • 资源格式: PPT        下载权限:游客/注册会员    下载费用:10金币 【人民币10元】
    快捷注册下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币 【人民币10元】   |   1元文档测试下载
    邮箱/手机:
    温馨提示:
    支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

    搭建linux交叉编译开发环境.ppt

    第二章 搭建 Linux交叉编译开发环境,Cross compiling environment,什么是交叉编译呢简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念体系结构(Architecture)和操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同一个操作系统也可以在不同的体系结构上运行。,2.1 什么是交叉编译,2.2.1 编译工具链 以下是一个基于RedHat linux的交叉编译环境的建立过程。 整个编译过程包括 下载源文件、补丁和建立编译的目录; 建立内核头文件; 建立二进制工具(binutils); 建立初始编译器(bootstrap gcc); 建立c库glibc; 建立全套编译器(full gcc)。,2.2 建立交叉编译开发工具链,需求下载源文件、补丁和建立编译的目录 a, 下载binutils-2.11.2.tar, diff-2.4.9-ac9-rmk1-np1, gcc-2.95.3.tar, glibc-2.2.4.tar, glibc-linuxthreads-2.2.4.tar, linux-2.4.9.tar, patch-2.4.9-ac9, patch-2.4.9-ac9-rmk1, patch-2.4.9-ac9-rmk2 b, 建目录将所有的源代码放到/usr/tmp/下; 交叉编译器将安装在/opt/host/armv5/,2.2 建立交叉编译开发工具链,建立整个tool chain的步骤,2.2 建立交叉编译开发工具链,1 Installing binutils cd /tmp tar zxvf binutils-2.11.2.tar.gz cd binutils-2.11.2 ./configure --targetarmv5-unknown-linux --prefix/opt/host/armv5 make make install,2.2 建立交叉编译开发工具链,注意这样就在/opt/host/armv5/bin下产生了binutils,它们的作用如下 addr2line将要找的地址转成文件和行号,它要使用 debug 信息。 ar产生、修改和解开一个存档文件。 asgnu 的汇编器。,2.2 建立交叉编译开发工具链,cfiltC 和 java 中有一种重载函数,所用的重载函数最后会被编译转化成汇编的标号,cfilt 就是实现这种反向的转化,根据标号得到函数名。 gaspgnu 汇编器预编译器。,2.2 建立交叉编译开发工具链,ldgnu 的连接器。 nm列出目标文件的符号和对应的地址。 objcopy将某种格式的目标文件转化成另外格式的目标文件。 objdump显示目标文件的信息。,2.2 建立交叉编译开发工具链,ranlib为一个存档文件产生一个索引,并将这个索引存入存档文件中。 readelf显示elf格式的目标文件的信息。 size显示目标文件各个节的大小和目标文件的大小。 strings打印出目标文件中可以打印的字符串,有个默认的长度,为4。 strip剥掉目标文件的所有的符号信息。,2.2 建立交叉编译开发工具链,(2)输出工具的路径,使得以后的编译工作能看到这些工具 export PATH/opt/host/armv5/binPATH,2.2 建立交叉编译开发工具链,(3)建立编译需要使用的头文件 cd /tmp tar zxvf linux-2.4.9.tar.gz mv linux linux-2.4.9-ac9-rmk1-np1 mv patch-2.4.9-ac9.gz patch-2.4.9-ac9-rmk1.bz2 diff-2.4.9-ac9-rmk1-np1.gz ./linux-2.4.9- ac9-rmk1-np1,2.2 建立交叉编译开发工具链, cd linux-2.4.9-ac9-rmk1-np1 kernel 2.4.9 gzip -cd patch-2.4.9-ac9.gz | patch -p1 Alan Cox patch bzip2 -cd patch-2.4.9-ac9-rmk1.bz2 | patch -p1 Russell King patch gzip -cd diff-2.4.9-ac9-rmk1-np1.gz | patch -p1 Nicholas Pitre patch make menuconfig Do to create ARM header files. When you exit, select save item.,, make dep Also do to create header files. cd /opt/host/armv4l/armv4l-unknown-linux cd include If not existing, make include directory. cp -a /usr/include/* . Copy all header files under /usr/include dir to the current dir.,, ln -s /tmp/linux-2.4.9-ac9-rmk1-np1/include/asm-arm asm ln -s /tmp/linux-2.4.9-ac9-rmk1-np1/include/linux linux 注意要把linux的头文件拷做来作为编译的头文件的原因是,我们要编译的是给ARM处理器使用的编译器,那么就需要一个用于ARM处理器的Linux内核系统的头文件,,(4)编译ARM-GCC交叉编译器 cd gcc-2.95.3 ./configure --targetarmv4l-unknown-linux --prefix/opt/host/armv4l make LANGUAGESc make LANGUAGESc install,,注意 gccgnu 的 C 语言编译器。 unprotoize将 ANSI C 的源码转化为 KR C 的形式,去掉函数原型中的参数类型。 cppgnu的 C 的预编译器。 gcovgcc 的辅助测试工具,可以用它来分析和优化程序。,2.2 建立交叉编译开发工具链,建立c库glibc cd /tmp tar zxvf glibc-2.2.4.tar.gz mv glibc-linuxthreads-2.2.4.tar.gz ./glibc-2.2.4 cd glibc-2.2.4 tar zxvf glibc-linuxthreads-2.2.4.tar.gz,2.2 建立交叉编译开发工具链, CCarmv5-unknown-linux-gcc ./configure arm-linux --enable-add-ons --buildi686-pc-linux-gnu --disable-iconv --with-headers/tmp/linux-2.4.9-ac9-rmk1-np1/include --prefix/opt/host/armv4l make make install,2.2 建立交叉编译开发工具链,注意glibc主要是程序运行所需要的库函数的集合,包括输入输出,数学,io控制等等,2.2 建立交叉编译开发工具链,(6)安装g cd /tmp/gcc-2.95.3 ./configure --targetarmv4l-unknown-linux --with-libs/opt/host/armv4l/lib --with-headers/opt/host/armv4l/include --prefix/opt/host/armv4l make LANGUAGESc c make LANGUAGESc c install,2.2 建立交叉编译开发工具链,注意 ggnu的 c 编译器。 protoize与unprotoize相反,将KR C的源码转化为ANSI C的形式,函数原型中加入参数类型。 cgnu的c编译器。,2.2 建立交叉编译开发工具链,2.2.2 下载工具链 这里主要介绍一下Denx公司发布的一整套开放源码的嵌入式Linux开发工具链ELDK(Embedded Linux Development Kit) ELDK可以安装和运行在以下主机环境中 Fedora Core 1, 2 , 3 Red Hat Linux 7.3, 8.0, 9 SuSE Linux 8.x, 9.0, 9.1, 9.2,2.2 建立交叉编译开发工具链,Debian 3.0 Woody and testing Sarge Ubuntu 4.10 FreeBSD 5.0 Suse Linux 7.2, 7.3 Mandrake 8.2 Slackware 8.1beta2 Gentoo Linux 1.4_rc2 ELDK同时支持ARM、PPC、MIPS等多种处理器。,2.2 建立交叉编译开发工具链,ELDK包括了一个安装工具和许多RPM包,他们可以安装到用户的交叉编译的主机的硬盘中。ELDK的RPM包可以分为2种 嵌入式Linux开发工具; 为目标处理器编译好的工具和元件。 其中,第一部分包括执行在开发主机上的交叉编译工具,有GNU交叉编译器GCC、Binutils和GDB等。 第二部分是一些已经编译好的、可以在目标开发板上运行的工具和库。这些工具和库可以用来建立一个Linux的Roofs文件系统。,2.2 建立交叉编译开发工具链,2.2.3 验证工具链 注意 通过上述两种方式建立的工具链,还需要经过验证方可使用,我们主要通过实际编译一个例子程序来验证。,2.2 建立交叉编译开发工具链,在嵌入式软件开发过程中,有些主机服务是必要的,同时也会为我们的开发工作带来便利。 这里主要介绍四种主机服务samba、DHCP、TFTP和NFS。,2.3 配置主机服务,2.3.1 配置samba Samba服务使Linux和Windows之间实现文件共享,方便对文件的编辑。 1修改samba配置文件/etc/samba/smb.conf 2为 Samba 创建一个单独的口令文件。要根据你的现存 /etc/passwd 文件来创建 3改变Samba口令文件的权限许可,因此只有根用户才有读写权限,2.3 配置主机服务,4要设置每个 Samba 用户的口令,使用以下命令(把username 替换为每个用户的用户名) 5加密口令必须在Samba配置文件中被启用 6在shell提示下键入 service smb restart来确定smb服务被启动 7为避免每次启动主机都要手工启动samba服务,使用命令使得samba服务在每次系统启动时都默认执行,2.3 配置主机服务,2.3.2 配置DHCP DHCP是动态主机配置协议。这个协议用于向计算机自动提供IP地址,子网掩码和路由信息。在开发的过程中,目标系统并没有自己的静态IP地址,它是在启动时向DHCP服务器申请,因此需要在主机上配置DHCP服务,以便在目标系统请求IP时,动态为它分配IP地址。 DHCP服务的配置文件为/etc/dhcpd.conf,通过修改该文件进行配置。etc/dhcpd.conf通常包括三部分parameters、declarations 、option。,2.3 配置主机服务,1DHCP配置文件中的parameters(参数)表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户 2DHCP配置文件中的declarations (声明)用来描述网络布局、提供客户的IP地址等 3DHCP配置文件中的option(选项)用来配置DHCP可选参数,全部用option关键字作为开始,2.3 配置主机服务,重新启动dhcp服务 为避免每次启动主机都要手工启动dhcp服务,使用命令使得dhcp服务在每次系统启动时都默认执行,2.3 配置主机服务,2.3.3 配置TFTP 在目标系统的开发过程中,Linux内核是从主机下载到目标系统上解压并运行的,因此主机必须提供这种文件传输服务。Tftp是一种简单的文件传输协议,多用于嵌入系统应用中,因此主机需要配置tftp服务,供下载内核时使用,2.3 配置主机服务,修改配置参数 在主机上创建/tftpboot目录,以供存放内核 重新启动tftp服务 为避免每次启动主机都要手工启动tftp服务,使用命令使得tftp服务在每次系统启动时都默认执行,2.3 配置主机服务,2.3.4 配置NFS 网络文件系统(NFS)是一种在网络上的机器间共享文件的方法,在开发的过程中,目标系统没有足够的本地存储设备供使用,它可以通过主机提供的NFS服务,使用在主机上的文件系统,就如同位于本地硬盘驱动器上一样,2.3 配置主机服务,修改NFS配置文件 注意 上面格式表示,同一共享目录提供给两个不同的主机,但提供给这两台主机的权限和参数可以是不同的。可以设定的参数主要有以下几种,2.3 配置主机服务,rw可读写的权限; ro只读的权限; root_squashroot用户的所有请求映射成如anonymous用户一样的权限(默认); no_root_squash保留共享文件的UID和GID(默认); all_squash共享文件的UID和GID映射匿名用户anonymous,适合公用目录;,2.3 配置主机服务,no_all_squash保留共享文件的UID和GID(默认); sync资料同步写入到内存与硬盘当中; async资料会先暂存于内存当中,而非直接写入硬盘; secureNFS通过1024以下的安全TCP/IP端口发送; insecureNFS通过1024以上的端口发送; hide在NFS共享目录中不共享其子目录; no_hide共享NFS目录的子目录,2.3 配置主机服务,重新启动NFS服务 为避免每次启动主机都要手工启动dhcp服务,使用命令使得dhcp服务在每次系统启动时都默认执行,2.3 配置主机服务,本章主要向读者介绍了如何搭建一个嵌入式Linux交叉编译开发环境。我们首先介绍了“什么是交叉编译”,接着向读者展示了建立交叉编译开发工具链的两种方法。在自己动手编译一个工具链,或者直接下载制作好的工具链之后,我们就可以交叉编译应用程序了。在嵌入式软件开发过程中,有些主机服务是必要的,同时也会为我们的开发工作带来便利,因此我们在本章最后介绍了四个主机服务的配置方法。,2.4 本章小结,

    注意事项

    本文(搭建linux交叉编译开发环境.ppt)为本站会员(无敌)主动上传,微传网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知微传网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    微传网是一个办公文档、学习资料下载的在线文档分享平台!

    网站资源均来自网络,如有侵权,请联系客服删除!

     网站客服QQ:80879498  会员QQ群:727456886

    copyright@ 2018-2028 微传网络工作室版权所有

         经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

    收起
    展开