嵌入式操作系统_第1页
嵌入式操作系统_第2页
嵌入式操作系统_第3页
嵌入式操作系统_第4页
嵌入式操作系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式操作系统陈香兰

xlanchen@/~xlanchenSpring2006中国科学技术大学计算机系xlanchen@2006.5.241EmbeddedOperatingSystems上周三嵌入式系统基本概念嵌入式硬件的发展嵌入式软件及其开发嵌入式操作系统及系统开发典型嵌入式操作系统介绍嵌入式操作系统选型xlanchen@2006.5.242EmbeddedOperatingSystems上周四GNUTools简介GCCBinutilsGdbmakexlanchen@2006.5.243EmbeddedOperatingSystems本课的主要内容:第一部分:开发工具介绍(续)第二部分:SkyEye介绍xlanchen@2006.5.244EmbeddedOperatingSystems开发工具介绍(续)xlanchen@2006.5.24xlanchen@2006.5.245EmbeddedOperatingSystems主要内容GNUTools介绍(续)ld交叉编译环境的安装xlanchen@2006.5.246EmbeddedOperatingSystemsGNUTools—ldld,TheGNULinker

Linux上常用的链接器ld软件的作用是把各种目标文件(.o文件)和库文件链接在一起,并定位数据和函数地址,最终生成可执行程序gcc可以间接的调用ld,使用gcc的-Wl参数可以传递参数给ld使用命令:ld--help可以列出ld常用的一些选项xlanchen@2006.5.247EmbeddedOperatingSystemsld使用举例(1)源程序编译hello.c到hello.o命令:gcc-chello.cxlanchen@2006.5.248EmbeddedOperatingSystemsld使用举例(2)链接(演示)命令:ld–dynamic-linker/lib/ld-linux.so.2/usr/lib/crt1.o/usr/lib/crti.o/usr/lib/crtn.o

hello.o–lc–ohello运行./helloxlanchen@2006.5.249EmbeddedOperatingSystems目标文件ld通过BFD库可以读取和操作coff、elf、a.out等各种执行文件格式的目标文件BFD(BinaryFileDescriptor)目标文件(objectfile)由多个节(section)组成,常见的节有:text节保存了可执行代码,data节保存了有初值的全局标量,bss节保存了无初值的全局变量。xlanchen@2006.5.2410EmbeddedOperatingSystems使用objdump查看目标文件的信息(演示)objdump–hhello.o比较helloxlanchen@2006.5.2411EmbeddedOperatingSystems链接描述文件(Linkerscript)可以使用链接描述文件控制ld的链接过程。链接描述文件,commandfile

又称为链接脚本,Linkerscript用来控制ld的链接过程描述各输入文件的各节如何映射到输出文件的各节控制输出文件中各个节或者符号的内存布局使用的语言为:Theldcommandlanguage,链接命令语言xlanchen@2006.5.2412EmbeddedOperatingSystemsld命令的-Tcommandfile选项指定了链接描述文件名如果不指定链接描述文件,ld就会使用一个默认的描述文件来产生执行文件找到实际项目中的链接描述文件(演示)xlanchen@2006.5.2413EmbeddedOperatingSystems链接描述文件的命令链接描述文件的命令主要包括如下几类:设置入口点命令处理文件的命令处理文件格式的命令其他xlanchen@2006.5.2414EmbeddedOperatingSystems常用的命令设置入口点格式:ENTRY(symbol)

设置symbol的值为执行程序的入口点。ld有多种方法设置执行程序的入口点,确定程序入口点的顺序如下:ld命令的-e选项指定的值Entry(symbol)指定的值.text节的起始地址入口点为0xlanchen@2006.5.2415EmbeddedOperatingSystems常用的命令INCULDEfilename

包含其他filename的链接描述文件INPUT(file,file,…)

指定多个输入文件名xlanchen@2006.5.2416EmbeddedOperatingSystems常用的命令OUTPUT_FORMAT(bfdname)

指定输出文件的格式OUTPUT_ARCH(bfdname)指定目标机器体系结构,例如:

OUTPUT_ARCH(arm)xlanchen@2006.5.2417EmbeddedOperatingSystems常用的命令MEMORY:

这个命令在用于嵌入式系统的链接描述文件中经常出现,它描述了各个内存块的起始地址和大小。格式如下:MEMORY{ name[(attr)]:ORIGIN=origin,LENGTH=len …}例如:xlanchen@2006.5.2418EmbeddedOperatingSystemsMemory举例xlanchen@2006.5.2419EmbeddedOperatingSystemsSECTIONS命令SECTIONS

告诉ld如何把输入文件的各个节映射到输出文件的各个节中。在一个链接描述文件中只能有一个SECTIONS命令在SECTIONS命令中可以使用的命令有三种:定义入口点赋值定义输出节xlanchen@2006.5.2420EmbeddedOperatingSystems定义输出节SECTIONS

{

...

secname:

{

contents

}

...

}例如:xlanchen@2006.5.2421EmbeddedOperatingSystems定位计数器定位计数器,TheLocationCounter一个特殊的ld变量,使用“.”表示总是在SECTIONS中使用例如:xlanchen@2006.5.2422EmbeddedOperatingSystems一个简单例子下面是一个简单的例子:

例中,输出文件包含text,data,bss三个节,而输入文件也只包含这3个节:SECTIONS{ .=0x01000000; .text:{*(.text)}; .=0x08000000; .data:{*(.data)}; .bss:{*(.bss)};}xlanchen@2006.5.2423EmbeddedOperatingSystemsSECTIONS举例(对应于上面的MEMORY例子)xlanchen@2006.5.2424EmbeddedOperatingSystems实际项目中的链接描述文件xlanchen@2006.5.2425EmbeddedOperatingSystemsGNUtools交叉开发环境的安装交叉开发环境源代码配置安装,or直接安装二进制工具第一种方法比较复杂,如果有现成的二进制交叉环境,建议直接使用xlanchen@2006.5.2426EmbeddedOperatingSystems使用源代码安装交叉开发环境GNUtools的各个软件包相对独立,在选择时要注意各个软件包的版本号及其依赖关系如果全部是最新版本,也并不能保证可以配置并安装成功在安装GNUtools交叉开发环境之前,首先必须建立本地GNUtools环境xlanchen@2006.5.2427EmbeddedOperatingSystems一个可行的GNUtools与

Linux内核之间关系表xlanchen@2006.5.2428EmbeddedOperatingSystems交叉开发环境的安装顺序需要5个步骤完成整个GNUTools的配置/编译/安装:内核头文件配置binutils软件包安装BootstrapGNU编译器(可完成基本C语言编译工作的编译器)Clibrary的安装,一般是glibc完整的GNU编译器安装xlanchen@2006.5.2429EmbeddedOperatingSystems软件包安装步骤对每个单独的软件包,一般安装过程包括下面4步下载并解压软件包配置软件包编译软件包安装软件包xlanchen@2006.5.2430EmbeddedOperatingSystems安装现成的二进制交叉环境下载arm-elf-tools的最新版本或合适的版本

如:arm-elf-tools-20030314.sh安装在root权限下运行sh./arm-elf-tools-20030314.sh

这个命令会在开发主机上自动建立一个uClinux-ARM的交叉编译环境xlanchen@2006.5.2431EmbeddedOperatingSystems安装成功?检查一下(演示)对arm-elf运用shell的tab功能可以看到一系列arm-elf打头的程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论