uClinux在UPNETARM3000平台上的.docVIP

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

uClinux在UP-NETARM3000平台上的 移植(2) Linux移植过程中内容非常多,涉及的知识量也很大,而且由于平台的不同和内核版本的不同所涉及的内容往往也有很大不同。 ??? 所以以上给出内容也仅作为读者参考之用。 ??? 具体操作时还应收集相关平台及内核版本的详细资料,才能展开相应工作。 ??? 下面以已经改造好的uClinux,针对UP-NETARM3000平台来讲解内核的裁减。 12.2.4????? Linux内核裁减 ??? Linux内核的裁剪与编译看上去是个挺简单的过程,只是对配置菜单的简单选择。但是内核配置菜单本身结构庞大,内容复杂。现在结合内核裁剪过程,了解配置各选项的作用。 ??? Linux内核的编译菜单都是通过Config.in经由不同脚本解释器产生.config。 ??? 它包括“make config”、“make menuconfig”和“make xconfig”等版本。? ?? “make config”以命令行方式进行配置 ??? “make menuconfig”以菜单方式进行配置,且配置稳定可靠; ??? “make xconfig”以基于图形库菜单方式进行配置,基于目前2.4.X版本的xconfig比较成熟稳定; ??? 基于2.6.X的xconfig菜单结构清晰,界面友好,但不够稳定。 ??? 所以考虑最大众化角度,以界面不够友好,但比较稳定的menuconfig为主进行介绍。在选择相应的配置时,有三种选择方式,它们分别代表的含义如下: ??? Y--将该功能编译进内核 ??? N--不将该功能编译进内核 ??? M--将该功能编译成可以在需要时动态插入到内核中的模块 ??? make xconfig使用鼠标选择对应的选项,make menuconfig使用空格键进行选取。在每一个选项前的括号,可以是中括号、尖括号和圆括号。 ??? 中括号里要么是空,要么是*;而尖括号里可以是空、*和M;而圆括号的内容是在所提供的几个选项中选择一项。 ??? 其中空表示不将该功能编译进内核,*表示将该功能编译进内核,M表示将该功能编译成可以在需要时动态插入到内核中的模块(注:其中有不少选项是目标板开发人员加的,对于陌生选项,自己不知道该选什么时建议使用默认值)。 ??? 下面我们来看看具体配置菜单,进入内核所在目录,键入make menuconfig你就会看到选项配置菜单。 ?1.Code maturity level options ?代码成熟度选项,它又有子项: ?(1) prompt for development and/or incomplete code/drivers ??? 该选项是对那些还在测试阶段的代码、驱动模块等的支持。 ??? 一般应该选这个选项,除非只是想使用LINUX中已经完全稳定的东西。 ??? 但这样有时对系统性能影响挺大。 ?(2) prompt for obsolete code/drivers ??? 该项用于对那些已经陈旧的被现有文件替代了的驱动程序和代码的支持,可以不选; ??? 除非你的机器配置比较旧,但那也会有不少问题。 ??? 所以该项以基本不用,在新的版本中已被替换。 ?2.loadable module support ??? 动态加载模块支持选项,其子项有: ?(1) enable module support ??? 支持模块加载功能,应该选上。 ?(2) set version information on all module symbols ??? 该项用来支持跨内核版本的模块支持。 ??? 即为某个版本的内核编译的模块可以在另一个版本的内核下使用,我们一般用不上,所以不选。 ?(3) kernel module loader ??? 如果你启用这个选项,你可以通过kerneld程序的帮助在需要的时候自动载入或卸载那些可载入式的模块,我们一般会选上。 ?3.system type ??? 系统类型,主要是CPU类型以及与此相关的内容。 ??? 该项下的子项比较多,内容也比较复杂,无法对每个CPU都加以说明,就以开发平台作相应介绍,其他平台与此类似。 ??? 如果你是进行交叉编译,该项下的内容往往是经过相应目标平台开发人员修改的。?? ?? 主要是针对该平台的体系结构定义,这样可以优化系统性能。 ??? 正因为目标平台的多样性,所以该项定义也常常是五花八门。 ??? 但开发人员一般会考虑到这些,事先设定好默认值。作为初学者按给出的默认选项就行。 ??? 当然你也许想用一个原始的版本内核来建构针对你的平台的新内核。如果你的内核版本支持你目标平台所用的CPU,那你就选上它。 ??? 但不要选同系列中高于你所用的CPU型号,否则不支

文档评论(0)

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

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

1亿VIP精品文档

相关文档