第4章+嵌入式系统移植分析.ppt

  1. 1、本文档共135页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章嵌入式系统移植分析

第4章 嵌入式系统移植 主要内容 嵌入式系统开发模式 开发板硬件介绍 嵌入式系统开发工具 Winscp安装 GNU交叉工具链安装 Minicom超级终端安装 Dnw调试终端配置 NFS 开发版烧制准备 开发版烧制 Bootloader烧制 内核镜像文件烧制 文件系统烧制 应用程序移植 嵌入式系统开发模式 开发模式一般有以下几种: 本机开发 交叉开发 模拟开发 嵌入式系统开发模式 本机开发: 本机开发也就是在目标机(在嵌入式系统中通常把嵌入式系统或设备简称为目标机)中直接进行操作系统移植及应用程序的开发。 在这种方式下进行开发,首先就得在目标机中安装操作系统,并且具有良好的人机开发界面。 嵌入式系统开发模式 交叉开发: 就是在一台主机(在嵌入式系统中通常把通用PC称为主机)上进行操作系统的裁剪,以及编写应用程序,在主机上应用交叉编译环境编译内核及应用程序,然后把目标代码下载到目标机上运行。 这就需要在主机上安装、配置交叉编译环境(交叉开发工具链),使其能够编译成在目标机上运行的目标代码。 嵌入式系统开发模式 模拟开发: 建立在交叉开发环境基础之上。 除了主机和目标机以外,还得提供一个在主机上模拟目标机的环境,使得开发好的内核和程序直接在这个环境下运行以验证其正确性,这就不需要每次的修改都下载到目标机中,待程序正确后再下载到目标机上运行。这样就可以达到在没有目标机的情况下调试软件的目的。 比较著名的模拟开发环境有SkyEye,它能够模拟如ARM等处理器的开发环境。 模拟硬件环境是一件比较复杂的工程,所以多数商业嵌入式系统的开发采用的是交叉开发模式。 嵌入式系统开发模式 嵌入式系统开发流程 交叉编译开发环境 在交叉编译环境下构造嵌入式Linux系统 内核引导程序Bootloader移植 内核移植 根文件系统移植 应用程序移植 测试 嵌入式系统开发模式 PC机软件开发过程从编写程序、编译和运行等过程都在同一PC机平台上完成; 嵌入式开发编写和编译在PC机(Host)上,但编译产生的结果要在嵌入式目标平台(Targe)上运行。 这种在主机上开发在目标平台上调试运行的模式称为交叉开发(交叉编译)。 嵌入式系统开发模式 宿主机(host) :编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机。 目标机(target):通常把嵌入式系统或设备简称为目标机 host编译得到的可执行代码在targer上运行。 嵌入式系统开发模式 交叉编译 简单地说,就是在一个平台A上生成另一个平台B上的可执行代码。 A通常被称为 host (宿主机)。 B通常称为target(目标机)。 嵌入式系统开发模式 平台,实际上包含两个概念:体系结构、操作系统。 同一个体系结构可以运行不同的操作系统; 同样,同一个操作系统也可以在不同的体系结构上运行。 嵌入式系统开发模式 为什么需要交叉编译? 嵌入式系统开发模式 常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码编译成计算机可以识别和执行的二进制代码。 如在Windows平台上,可使用Visual C++、eclipse等开发环境,编写程序并编译成可执行程序。 嵌入式系统开发模式 在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的 ARM 平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在100MHz到500MHz之间。 这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链需要很大的存储空间,并需要很强的CPU运算能力。 通过交叉编译,就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平台的可执行程序。 需要交叉编译的原因: 因为目标机资源有限,无法运行编译和调试工具,因此需要宿主机为之代劳。 另外,在项目的起始阶段,目标平台尚未建立,因此需要做交叉编译,以生成我们所需要的bootloader(启动引导代码)以及操作系统核心; 当目标平台能启动之后,由于目标平台上资源的限制,当我们编译大型程序时,依然可能需要用到交叉编译。 嵌入式系统开发模式 对于交叉编译器,可以自己生成,也可以从网上下载。 区别在于从网上下载非常简单方便,但也许你找不到适合你所选择的平台的。而自己生成交叉编译器,会遇到很多挫折。 交叉编译环境构造好后,在此环境下构造嵌入式Linux系统。 一个嵌入式Linux系统从软件的角度看通常可以分为四个层次: 1)引导加载程序。包括固化在固件中的boot代码(可选),和BootLoader两大部分。 2) Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3)文件系统。包括根文件系统和建立于Flash内存设备之上文件系

文档评论(0)

wbjsn + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档