- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二、根文件系统及其定制 2.定制工具Busybox 2)配置、编译Busybox 下载最新版本的 Busybox,与大部分开放源码程序一样,它是以一个压缩的tar包形式发布地,可以使用如下命令将其转换成源代码树。具体步骤如下: ●解压文件 ●修改makefile文件 ●配置选项设置 ●编译 ●安装 二、根文件系统及其定制 2.定制工具Busybox Busybox配置界面 二、根文件系统及其定制 2.定制工具Busybox Busybox安装完成生成的文件目录 二、根文件系统及其定制 3.库文件构建 1)Glibc库和uClibc库 2)库文件种类 3)裁减库 二、根文件系统及其定制 3.库文件构建 1)Glibc库和uClibc库 Glibc 是提供系统调用和基本函数的 C 库,比如open, malloc, printf等等。所有动态连接的程序都要用到它。要手动编译出适合于自己开发板的库文件请参考第六章,该章详细介绍了嵌入式Glibc库的创建全过程。 Glic库通常使用于X86架构的Linux系统,它虽然非常完备,但是却非常庞大,对于嵌入式系统来说,使用它意味着内存的消耗也会非常巨大,这对于资源异常有限的嵌入式设备来说是不可忍受的,因此在绝大多数情况下我们会使用uClibc库。 二、根文件系统及其定制 3.库文件构建 1)Glibc库和uClibc库 uClibc 是一个小型的 C 库,应用于嵌入式 Linux 系统开发。它基本实现了 glibc 的功能,几乎所有 Glibc 支持的应用程序都能在 uClibc 上运行,这使得应用程序的移植变得相当简单,只需要使用 uClibc 库重新编译源代码就可以了。 二、根文件系统及其定制 3.库文件构建 2)库文件种类 在目录“/lib”下主要包含四种类型的文件: (1)实际的共享链接库 共享库文件名格式为“libLIBRARY_NAME-GLIBC_VERSION.so”,其中“LIBRARY_NAME-GLIBC_VERSION”是链接库的名称,“GLIBC_VERSION”是使用的glibc套件的版本编号。比如glibc2.2.3的进程库的名称为“libpthread-0.10.so”。 二、根文件系统及其定制 3.库文件构建 2)库文件种类 (2)主修订版本的符号链接 “libLIBRARY_NAME.so.MAJOR_REVISION”是主修订版本的符号链接的文件格式,其中“.MAJOR_REVISION”是链接库的主修订版本编号。以实际的C链接库为例,其符号链接的名称为“libc.so.6”。用户程序一旦链接了特定的链接库,它将会参用其符号链接,程序启动时,加载器在加载程序之前,会因此加载该程序。 二、根文件系统及其定制 3.库文件构建 2)库文件种类 (3)与版本无关的符号链接指向主修订版本的符号 链接 这些符号链接的主要功能是为需要链接特定链接库的所有程序提供一个通用的条目,与主修订版本的编号或glibc所涉及的版本无关。 二、根文件系统及其定制 3.库文件构建 2)库文件种类 (4)静态库文件 在用户编写应用程序时经常会静态使用到库文件,即在编译时就将这些库文件的内容链接到用户程序中,此类库文件就是静态库文件,其文件名格式为“libLIBRARY_NAME.a”。 值得注意的是这些库文件并不需要将其全部移到嵌入式开发板上,只需要实际的共享链接库和主修订版本的符号链接即可,因为余下两种类型的文件只有在链接文件的时候才会用到,执行应用程序时并不使用到它们。 二、根文件系统及其定制 3.库文件构建 3)裁减库 不管是Glibc还是uClibc库,都没有必要将其全部拷贝到嵌入式系统开发板上,仅仅需要用到的共享库和主修订版本的符号链接烧写到到嵌入式系统开发板即可。那么我们应该如何进行取舍,如何知道应用程序通常使用到哪些共享库。我们可以通过下面两个方法来确定: (1)readelf工具 (2)arm-uclibc-ldd 二、根文件系统及其定制 4.设备文件构建 在Linux系统中,设备是被当作文件来进行存取的,而且通常情况下存放在根文件系统的“/dev”目录下。Linux系统中设备文件非常多,但是在嵌入式Linux中只需要添加有限的几个就可以了,具体添加哪些条目往往需要结合具体的设备驱动来决定:如果某设备驱动程序中使用devfs来进行注册设备,则不要手动添加;如果以register_chrdev( )来进行注册,则要手动添加这些条目,否则应用程序将无法访问到这些设备。 二、根文件系统及其定制 5. 根文件系统初始化 对于PC机而言,系统开机后
您可能关注的文档
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境1.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境2.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境3.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境4.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境5.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境6.ppt
- 汽油发动机微机控制系统检修 课后习题答案.doc
- 汽油发动机微机控制系统检修 课件1 1.1.ppt
- 汽油发动机微机控制系统检修 课件1 1.2.ppt
- 汽油发动机微机控制系统检修 课件1 1.3.ppt
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
文档评论(0)