6SE6430-2AD27-5CA0
6SE6430-2AD27-5CA0
产品价格:(人民币)
  • 规格:6SE6430-2AD27-5CA0
  • 发货地:6SE6430-2AD27-5CA0
  • 品牌:
  • 最小起订量:1个
  • 免费会员
    会员级别:试用会员
    认证类型:企业认证
    企业证件:通过认证

    商铺名称:厦门光沃自动化设备有限公司

    联系人:(先生)

    联系手机:

    固定电话:

    企业邮箱:1878187406@qq.com

    联系地址:厦门市海沧区沧湖东一里海景奥斯卡

    邮编:361000

    联系我时,请说是在汽配名企网上看到的,谢谢!

    商品详情

      6SE6430-2AD27-5CA0 

      6SE6430-2AD27-5CA0 自己制作交叉编译器


       

      早期(2009年以前)我们在做嵌入式系统开发时,第一件事就是自己制作交叉编译器。当时做交叉编译器 需要自己下载gcc、glibc、binutils等相关工具的源码,然后一个一个源码编译安装。制作交叉编译器的 过程中最痛苦的莫过于各个软件之间的版本依赖关系,如gcc 4.6.2 依赖 glibc 2.13,如果你选定 gcc 4.7 则可能编译制作失败,然后再尝试一个新的版本重新编译,直至找到一个合适的版本为止。


       

      后来为了方便交叉编译器的制作,有很多组织或个人开始编写这些制作交叉编译器的脚本或框架,并测 试解决这些软件版本之间的依赖关系。当时最知名的莫过于基于 glibc 的 crosstool 和 基于 uclibc 

      buildroot 了。在开始讲解如何制作交叉编译器之前,我们首先来了解一下 C运行库


       

      1.嵌入式C运行库


       

      1.1glibc库

      glibc是gnu发布的libc库,也即c运行库。glibc是linux 系统中层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了 许多其它一些必要功能服务的实现,主要的如下:

      string,字符串处理

      signal,信号处理

      dlfcn,管理共享库的动态加载

      direct,文件目录操作

      elf,共享库的动态加载器,也即interpreter

      iconv,不同字符集的编码转换

      inet,socket接口的实现

      intl,国际化,也即gettext的实现

      io

      linuxthreads

      locale,本地化

      login,虚拟终端设备的管理,及系统的安全访问

      malloc,动态内存的分配与管理

      nis

      stdlib,其它基本功能


       

      gcc 是编译器,基本上 Linux 下所有的程序(包括内核)都是 gcc 编译的,libc 当然也是。gcc 和 libc 是互相依赖的两个软件,它们合作的方式类似 Linux 系统的 "自举"。先在一个可以运行的带有老 libc 和

      gcc 的系统上,用老 gcc 编译出一个新版本的 gcc + 老 libc,再用这个新 gcc 编译出一个新 gcc + 新

      libc,再用这套新的组合编译整个新系统。


       

      1.2 uClibc库

      PC上常用的标准库glibc是一个非常宠大而完整的库,但早期对于嵌入式系统来说,由于Flash和RAM的 存储空间有线,其体积显得过于大了一些。uClibc的出现就是为了解决这个问题,uClibc尽可能的兼容

      Glibc,大多数应用程序可以在很小或完全不修改的情况下就可能使用uClibc替代glibc。通过uClibc来代 替Glibc,可以在不改变应用程序功能的前提下,大大减少发布文件的大小,无论应用程序以静态链接来 编译,还是以动态链接形式编译。


      6SE6430-2AD27-5CA0

    在线询盘/留言
  • 0571-87774297