针对s3c2440芯片制作交叉编译工具链

移植uboot-2020.01至JZ2440

由于最近制作文件系统,发现原来所用编译器的库只支持armv5t架构,并不支持我所用的armv4t架构的arm9芯片,因此针对我所用芯片s3c2440制作了最新的交叉编译工具链,先附上图。
在这里插入图片描述
以下为制作交叉编译工具链步骤:

  1. 安装crosstool-NG
    a. 建立arm-linux-tools目录

     mkdir arm-linux-tools
     cd arm-linux-tools/
    

    b. 从http://crosstool-ng.org/download/crosstool-ng/中下载新版crosstool-NG
    c. 解压crosstool-NG

     tar -jxvf crosstool-ng-1.24.0.tar.bz2
    

    d. 在arm-linux-tools下建立src目录

     mkdir src
    

    e. 配置并进行依赖检测

     cd crosstool-ng-1.24.0  
     ./configure
     如果存在包缺失的现象,安装好之后再执行配置即可
    

    f. 编译并安装

     make
     make install
    

    g. 检查crosstool-NG是否安装成功

     ct-ng -v
    
  2. 配置交叉编译工具链
    在crosstool-NG中有很多已经做好的默认配置(位于crosstool-ng-1.24.0/samples目录下),这里只需要进行修改就可以了。因为是制作arm-linux的交叉编译工具链,所以选择arm-unknown-linux-gnueabi进行配置。
    a. 拷贝默认的.config

     cp samples/arm-unknown-linux-gnueabi/crosstool.config .config
    

    b. 配置config

     ct-ng menuconfig 
    

    c. 设定源码包路径和交叉编译器的安装路径

     源码包路径:设置Paths and misc options下的Local tarballs directory为/arm-linux-tools/src
     交叉编译器的安装路径:设置Paths and misc options下的Prefix directory为/arm-linux-tools/x-tools/${CT_TARGET}
    

    d. 修改交叉编译器针对的架构

     设置Target options下的Architecture level为armv4t
     设置Target options下的Emit assembly for CPU为arm9tdmi
     设置Target options下的Tune for CPU为arm920t
    

    e. 设置编译时的并行进程数

     设置Paths and misc options下的Number of parallel jobs为4。这个数值不宜过大,应该为CPU核心数量的两倍。
    

    f. 设置编译器vender名

     设置Toolchain options下的Tuple's vendor string为S3C2440,这样生成的编译器的前缀就是arm-S3C2440-linux-gnueabi-
    

    g. 编译

     ct-ng build.4
     编译过程出错查看build.log文件,wget获取依赖包失败可手动下载放在.build/tarballs/目录下
    

    h. 配置环境变量

     sudo vi /etc/environment
     增加:/home/hanrunyu/work/tools/arm-linux-tools/x-tools/arm-s3c2440-linux-gnueabi/bin于PATH
    

    i. 检查交叉编译工具链是否安装成功

     arm-S3C2440-linux-gnueabi-gcc -v
    

    j. 编译成功后的交叉编译器路径

     编译器路径:/home/hanrunyu/work/tools/arm-linux-tools/x-tools/arm-s3c2440-linux-gnueabi/bin/
     库文件路径:/home/hanrunyu/work/tools/arm-linux-tools/x-tools/arm-s3c2440-linux-gnueabi/arm-s3c2440-linux-gnueabi/sysroot/lib/
     			/home/hanrunyu/work/tools/arm-linux-tools/x-tools/arm-s3c2440-linux-gnueabi/arm-s3c2440-linux-gnueabi/sysroot/usr/lib/
    
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值