嵌入式linux自学笔记心得总结.pdfVIP

  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文档。上传文档
查看更多
嵌入式Linux 自学笔记及体会 针对初学嵌入式的广大朋友们,以下是我在初学接触嵌入式的过程中整理处 的一些资料信息,希望能为大家有所帮助,更多详细资料见群共享。 一个典型的桌面Linux 系统包括3 个主要的软件层linux 内核、C 库和应用程 序代码。 内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间 进行会话。内核之上是C 库,负责把POSIX API 转换为内核可以识别的形式,然 后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的 任务。 在设计嵌入式应用的时候,可以不按照这种层次,应用程序越过C 库直接和 内核会话,或者把应用和内核捆绑在一起,甚至可以把应用写为内核的一个线程, 在内核中运行,虽然这样在移植上带来了困难,但考虑嵌入式系统对尺寸要求小 的特点,是完全可行的。不过我们使用三层软件结构的模式来学习嵌入式linux 将会是我们认识更清晰,简单可行并使应用具有弹性。 快速入门 最简单的建立嵌入式Linux 应用的方法就是从我们使用的桌面Linux 入手, 安装一个喜爱的版本,把我们的某个应用作为初始化的一部分,框架就算完成了。 当然,嵌入式linux 应用远比我们的桌面版本功能简单专一,它也许就是一 个用于足彩的终端机,或是一个数码音频播放器,这些系统除了使用嵌入式CPU 外,仅仅再需要一个串口,网口等少量的输入输出接口就可以完成它们特定的应 用了。 在软件上,它可以按照三层的概念由内核装载器,定制的内核和较少的为特 定任务设计的静态连接的应用程序组成。之所以使用静态连接的应用程序,是因 为少量的静态连接程序所要的存储空间,比同样数量的动态连接的程序所占的空 间小,这个平衡点需要我们在实际开发中去获取。也许你正在设计的是个PDA, 它的应用程序较多,那么你很可能就要使用动态连接程序来减少存储空间。在你 的/bin 或者/sbin 目录下,用厂列表看看bash,ifconfig,vi...,也许只用几十 K,当你运行 ldd /bin/bash 时,你会看到它们都和好几个库文件相连。好了, 这样看来,我们得把PC 想像成一个嵌入式硬件平台,再重新制作一个特定功能 的嵌入式linux。 基础知识 再进行实际操作之前,先来搞清楚几个基础知识。 内核装载器Loader,它的作用是把内核从外部存储器,移动到内存中。它 嵌入式交流群:202096730 只作这个事情,一旦完成了调入内核的工作,Loader 就跳转到内核位置开始执 行。不同架构有不同的 Loader,在x86 结构的PC 上,通常使用的loader 有 LILO,GRUB,syslinux,syslinux 在嵌入式linux 中也同样工作。其他非x86 架构 的应用中,你必须使用专门的loader,或者自己编写loader 来装入内核。也有 不使用loader 的情况,系统加电以后,内核直接从烧录有映象的Flash 上开始 执行。 内核,一旦内核开始执行,它将通过驱动程序初始化所有硬件,这可以从我 们的pc 机监视器的输出看出来,每个驱动程序都打印一些有关它的信息。初始 化完成后,计算机就准备运行嵌入式应用。也许一个,也许是多个应用程序组成 了嵌入式应用,但通常首先调用的是init(通过loader 向核心传入 init=/program 可以定制首先运行的程序)。桌面linux 中,init 会读取 /etc/inittab 文件,来决定执行级别和哪些脚本和命令。嵌入式应用中,可以 根据实际的情况决定是否使用标准的init 执行方式,也许这个init 是个静态程 序,它能够完成我们的嵌入应用的特定任务,那完全不用考虑inittab 了。 initrd 文件系统,initrd 以一种把内核从存储介质装入到内存的相同的机 制来装入一个小型文件系统。这个文件系统最好是以压缩的方式存储在介质上 的,解压缩到RAM 盘上。通过使用initrd,包含有核心驱动和启动脚本的小文件 系统,就可以直接从介质上和内核一起启动起来,内核届压缩这个文件系统,并 执行这个文件系统上叫做/linuxrc 的脚本文件,这个脚本通常会把启动过程中 所需要的驱动程序装入。脚本退出以后,initrd 文件系统也卸下了,启动过程 进入真正初始化过程。对于嵌入式来讲,可以将需要的应用软件都运行在这个 initrd 文件系统上,只要/linxrc 文件不结束,内核启动过程的其他部分就不会

文档评论(0)

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

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

1亿VIP精品文档

相关文档