打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
buildroot编译交叉工具链
userphoto

2023.10.26 日本

关注

作者| koda.xu

本期技术专题主要讲解如何使用buildroot编译指定gcc和glibc版本的交叉工具链,适用于SSD平台。

以使用下面的环境编译交叉工具链为例,完整编译步骤如下。

目标环境

SSD222D:
Arm A7 支持硬浮点运算和NEON
linux-headers:4.9.84
gcc:12.3.0
glibc:2.32
binutils:2.40
gdb/gdb-server:12.1

编译步骤

1. 下载buildroot


git clone 

https://github.com/buildroot/buildroot.git

2. 生成默认的配置文件.config


make defconfig

3. menuconfig菜单中修改配置并保存 make menuconfig


Target options设置:

Build options设置:

Toolchain设置:

4. 资源配置的指定或修改


Linux header配置:

注意,这里指定的linux-header 配置名称不能为 BR2_KERNEL_HEADERS_4_9 ,因为 BR2_KERNEL_HEADERS_4_9 在 Config.in.legacy 中已有定义,这个表示不再支持这个linux-header版本。原则上保证定义的配置名称不重名又能说明当前使用的版本即可。

gcc配置:

glibc配置:

在 package/glibc/glibc.mk 中可以看到 glibc 的下载地址是:


GLIBC_SITE = $(call github,bminor,glibc,$(GLIBC_VERSION))


github 是 Buildroot 中定义的一个辅助函数,用于生成 GitHub 仓库的下载地址。它的定义如下:

所以 默认的设置,glibc 的实际下载地址形式如下:

测试下载发现,提交笔数不是必须指定的,commit信息也不用指定完整的commit id,满足唯一标志就好,一般指定为7位。

我们使用下面这笔commit作为当前编译toolchain的glibc版本,指定 GLIBC_VERSION 如下:


GLIBC_VERSION = 2.32-g4c56bcb

binutils配置:

gdb配置:

若有手动修改配置,重新只需make menuconfig 命令,设置好后将.config文件备份。

5. 编译


make clean -j16;make sdk -j16


编译过程中若出现 “No hash found for xxx” 这样的错误提示,可以在dl目录下对应软件包名称的目录,使用 “sha256sum” 或 “sha512sum” 指令先生成SHA码,再将生成的SHA码信息写入package目录对应软件包名称的目录下的hash文件中,如下:

6. 编译完成后在output/host目录下会生成toolchain,并在output/images目录下生成toolchain的tar.gz文件。查看toolchain版本信息

》》原文地址

End.

推荐阅读

微信刷掌支付发布,搭载SSC9351Q

好学多听力熊,搭载SSD222D

SigmaStar智能门锁方案介绍

SSD222Q在工业HMI中的新应用

SigmaStar智能网关方案介绍

SigmaStar智能家居全家桶

扫码进入论坛

原厂答疑|产品选型|官方资源

扫码咨询客服

SDK下载|芯片、开发板购买

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Buildroot - 让交叉编译更轻松
Buildroot根文件系统构建
使用自己的makemenuconfig
用buildroot来建立交叉编译工具链
OpenWRT平台搭建及简单应用
转载 安霸A288S平台SDK编译简介
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服