嵌入式OS总结(不完整).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式OS总结(不完整)

嵌入式操作系统总结 论述题:嵌入式软件有哪些组成,对应哪些工作? 嵌入式软件包括操作系统与应用软件。 软件主要的开发工作: 初始化引导代码 对应bootloader编写 嵌入式操作系统代码 对应内核编译加载 驱动程序代码 对应模块编写编译 文件系统 对应文件系统制作与挂载 应用程序代码 对应应用程序的编写 交叉编译环境的构建 在做这些事情时会出现什么问题?你有何感悟?常见的问题是什么,你能想到嵌入式开发中要得到合适的开发环境(选开发板,库的不兼容), 嵌入式软件开发过程:工作环境、哪些工作、会遇到哪些问题 做一个开发环境之前的准备:版本号,开发平台 软件构成及各个部件之间的流程 实验的问题 兼容性、库、版本 得到合适的开发环境 在选择时要注意各个软件包的版本号及其依赖关系 如果全部是最新版本,也并不能保证可以配置并安装成功 一般下载别人成功的版本组合,或采用从较新版本逐步尝试法进行 2. 库的不兼容 3. 版本不兼容 由于实验中我们接触的都是一些比较新的技术,比如systemtap、qemu+GDB调试内核技术都是相当新的,有的版本都是2011年才发布的,所有出现一些兼容性的问题也是很常见的,好在网络上有大量的资源可以参考,这就需要首先加强自己分析出现问题的能力,比如能看懂报错的信息提示,如缺少库函数,找不到对应的版本等,它都会有相应的报错提示。能估计问题大概出在哪个部分,这样处理问题就更有针对性了。当然这种积累是非常必要的。) 交叉编译环境的构建(手动的即第一次实验) 交叉编译通俗的讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序。比如在PC平台(x86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在x86CPU平台上是不能运行的,必须放到ARM平台上才能运行。用来编译这种跨平台程序的编译器就叫做交叉编译器,要生成在目标机上运行的程序必须要用交叉编译工具链来完成。因为一般的嵌入式开发系统的存储大小是比较有限的,所以在裁减和定制内核之前通常都要在性能优越的PC机上编译目标机上要运行的程序。交叉编译工具链由编译器、连接器、解释器组成。 交叉编译环境的构建方法: 源代码配置安装 直接安装二进制工具 构建交叉工具链通常有三种方式:1.手工编译 2.通过脚本编译(Crosstool脚本)3.直接获取交叉编译工具链 手动安装的步骤: 需要5个步骤完成整个GNU Tools的配置/编译/安装: 内核头文件配置 binutils软件包安装 Bootstrap GNU编译器(可完成基本C语言编译工作的编译器) C library的安装,一般是glibc 完整的GNU编译器安装 关于GNU开发工具链 gcc编译过程:预处理,输出.cpp文件,将头文件包含进去将include展开、编译成汇编代码生成.s文件、汇编成目标代码生成.o文件、链接。 预处理是指在系统对源程序进行编译之前,对程序中的某些特殊命令行的处理,根据源代码中的预处理命令修改程序。常见的预处理命令:#include、 #define和#undef用于定义和取消定义条件编译符号、#if #elf用于按条件跳过源代码中的节等 链接:ld软件的作用是把各种目标文件(.o文件)和库文件链接在一起,并定位数据和函数地址,最终生成可执行程序. 链接描述文件的分析:用来控制ld的链接过程。主要由一系列的命令组成,每个命令可以是一个带参数的关键字或赋值语句。 描述各输入文件的各节如何映射到输出文件的各节。 控制输出文件中各个节或者符号的内存布局。 链接描述文件的命令主要包括如下几类: 设置入口点命令 ld有多种方法设置执行程序的入口点,确定程序入口点的顺序如下: 1.ld命令的-e选项指定的值 2.Entry(symbol)指定的值 3..text节的起始地址 4.入口点为0 处理文件的命令 处理文件格式的命令 其他 makefile文件分析: Make的主要任务是根据makefile中定义的规则和步骤,根据各个模块的更新情况,自动完成整个软件项目的维护和代码生成工作。它可以识别出makefile中哪些文件被修改,并在再次编译的时候只编译这些文件,从而提高编译的效率。 如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。 如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。 输入make命令先找第一个目标文件,并把这个文件作为最终的目标文件,如果目标文件中的.o文件修改时间比较新或目标文件不存在了,make会在当前文件中找到.o文件的依赖性,再生成.o文件即可。 Uboot中makefile的

文档评论(0)

shaofang00 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档