RT-Smart 官方 aarch64 平台 musl gcc 工具链下载

news2024/9/24 23:32:01

前言

  • RT-Smart 的开发离不开 musl gcc 工具链,用于编译 RT-Smart 内核与用户态应用程序

  • RT-Smart 当前的 musl gcc 工具链未开源,但可以下载到 官方 最新的 musl gcc 工具链

aarch64 平台

  • 比如 RT-Smart 最好用的 qemu 平台: qemu-virt64-aarch64,位于 rt-thread/bsp/qemu-virt64-aarch64,既支持 RT-Thread 内核,也支持 RT-Smart 内核,一般学习研究 RT-Smart,这个是首选,不需要硬件,让 RT-Smart 跑起来,并且可以软件 Debug 调试,对于研究与分析内核的功能与组件运行,非常的方便。

  • bsp qemu-virt64-aarch64 属于 aarch64 平台,也就是 ARM 64位平台,不同的平台,编译工具链不同, 如果开启 RT-Smart,当前必须使用 musl gcc 工具链。

  • musl gcc 工具链,是基于 musl libc 编译的 gcc 交叉工具链,musl libc 与 Linux glibc、ucLibc 等,都属于 标准C 库。

Linux 开发平台下载 aarch64 musl gcc 工具链

  • 下载地址 https://download.rt-thread.org/download/rt-smart/toolchains/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2

  • 这个是 Linux 平台上的 musl gcc 工具链,可以使用 Linux tar 命令进行解压

~/smart/tools/gnu_gcc$ tar xjf /mnt/hgfs/work/ldso/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu_203459.tar.bz2 -C ./

  • 设置环境变量,可以使用 shell 脚本 env_aarch64.sh
#!/bin/bash

# aarch64 musl gcc
export RTT_CC=gcc
export RTT_EXEC_PATH=/home/zhangsz/smart/tools/gnu_gcc/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/bin
export RTT_CC_PREFIX=aarch64-linux-musleabi-

export PATH=$PATH:$RTT_EXEC_PATH
  • 脚本设置执行权限 chmod 777 env_aarch64.sh

  • 使能环境变量 source env_aarch64.sh

  • 查看 musl gcc 工具环境变量是否设置正常 aarch64-linux-musleabi-gcc -v

$ aarch64-linux-musleabi-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-linux-musleabi-gcc
COLLECT_LTO_WRAPPER=/home/zhangsz/smart/tools/gnu_gcc/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../libexec/gcc/aarch64-linux-musleabi/12.2.0/lto-wrapper
Target: aarch64-linux-musleabi
Configured with: ../src_gcc/configure --disable-werror --prefix= --target=aarch64-linux-musleabi --with-sysroot=/aarch64-linux-musleabi --with-build-sysroot=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/sysroot/ --enable-languages=c,c++ --disable-multilib --enable-tls --disable-libmudflap --disable-libsanitizer --disable-gnu-indirect-function --disable-libmpx --enable-libstdcxx-time --host=x86_64-pc-linux-gnu AR_FOR_TARGET=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/obj_binutils/binutils/ar AS_FOR_TARGET=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/obj_binutils/gas/as-new LD_FOR_TARGET=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/obj_binutils/ld/ld-new NM_FOR_TARGET=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/obj_binutils/binutils/nm-new OBJCOPY_FOR_TARGET=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/obj_binutils/binutils/objcopy OBJDUMP_FOR_TARGET=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/obj_binutils/binutils/objdump RANLIB_FOR_TARGET=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/obj_binutils/binutils/ranlib READELF_FOR_TARGET=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/obj_binutils/binutils/readelf STRIP_FOR_TARGET=/builds/alliance/rt-smart/musl-toolchain/build/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/obj_binutils/binutils/strip-new
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.2.0 (GCC) 
build date: Dec 14 2023 14:12:37
musl  sha: af4e2ad97d68496d9cabd094a6aad7a9104f4872
build sha: af4e2ad97d68496d9cabd094a6aad7a9104f4872
build job: 570092
build pipeline: 211465

Windows 开发平台下载 aarch64 musl gcc 工具链

  • 开发 RT-Smart,建议在 ubuntu 等 Linux 环境下开发,当然也支持 Windows 下 env 工具开发

  • 下载 windows 版本的 musl gcc 交叉编译工具链,地址如下

 https://download.rt-thread.org/download/rt-smart/toolchains/aarch64-linux-musleabi_for_i686-w64-mingw32_latest.zip
  • zip 格式,可以在 windows 下使用 常用的解压缩工具解压到指定路径

  • windows 下使用 bat 批处理脚本设置环境变量

  • 新建 env_aarch64.bat 脚本

@set RTT_CC=gcc
@set RTT_EXEC_PATH=%cd%\tools\gnu_gcc\aarch64-linux-musleabi_for_i686-w64-mingw32\bin
@set RTT_CC_PREFIX=aarch64-linux-musleabi-
@set PATH=%RTT_EXEC_PATH%;%ENV_ROOT%\tools\gnu_gcc\arm_gcc\mingw\bin;%PATH%
  • 注意修改 musl gcc 工具链的路径

  • windows 下,使用 RT-Thread ENV 工具执行脚本即可 env_aarch64.bat

编译 RT-Smart 内核

  • bsp qemu-virt64-aarch64

  • ubuntu 开发,使用 scons --menuconfig 图形界面配置,选择 RT-Smart

在这里插入图片描述

在这里插入图片描述

  • 然后 scons -j8 就可以编译内核了

在这里插入图片描述

运行 RT-Smart

  • bsp qemu-virt64-aarch64

  • ubuntu Linux 环境,运行 qemu.sh 脚本即可运行 RT-Smart 内核

在这里插入图片描述

退出 qemu-virt64-aarch64

  • qemu 一般使用 按下 CTRL+ a 组合键 ,松开, 然后紧接着按 x 即可退出 qemu

小结

  • 本篇主要说明 RT-Smart musl gcc 工具链的下载方法, RT-Smart 内核编译的方法

  • RT-Smart 支持 用户态应用程序,类似于 Linux 的应用程序,应用程序 app 可以单独的编译,编译工具链依旧使用 musl gcc 工具链

  • 注意 arm (32位)平台与 aarch64 (ARM 64位)使用不同的 musl gcc 工具链

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

龙迅# LT9211C 是一款高性能转换器,可在 MIPI DSI/CSI-2、双端口 LVDS 和 TTL 之间进行互转换,分辨率高达4K30HZ。

1. 描述LT9211C 是一款高性能转换器,可在 MIPI DSI/CSI-2、双端口 LVDS 和 TTL 之间进行互转换,但 24 位 RGB TTL 到 24 位 RGB TTL 除外。不建议在 2 端口 10 位 LVDS 和 24 位 RGB TTL 之间进行转换。LT9211C对输入的MIPI/LVDS/TTL视频数据进行反串&am…

fl studio2024中文版下载安装教程 亲测有效

fl studio是一款功能强大的编曲软件,今天小编就为大家带来了详细的安装教程,需要的朋友一起看看吧!fl studio2024是一款功能强大的编曲软件,也就是众所熟知的水果软件。它可以编曲、剪辑、录音、混音,让您的计算机成为…

【ProcessOn】流程图咏道图Axure自定义元件使用----含流程图案例

目录 一,ProcessOn 1.1 ProcessOn是什么 1.2 ProcessOn应用场景 1.3 流程图 1.4 泳道图简介 1.5 Process网址与界面简介 二,流程图案例 2.1 门诊流程图 2.2 住院流程图 2.3 药房药库流程图 2.4 会议OA流程图 三,Axure自定义元件 …

WPF Icon矢量库 MahApps.Metro.IconPacks

文章目录 前言MahApps.Metro.IconPacksIconPacks.Browser简单使用简单使用案例代码Icon版本个人推荐 Icon自定义版权问题 前言 为了更快的进行开发,我找到了一个WPF的矢量图库。这样我们就不用去网上找别人的矢量库了 MahApps.Metro.IconPacks MahApps.Metro.Icon…

手机笔记如何添加文件 在笔记中添加文件方法

在忙碌的工作和生活中,我经常需要记录一些重要的笔记,并且需要添加一些相关的文件以便查阅。但是,我发现很多笔记软件并不支持添加文件,这让我感到非常困扰。 有一次,我需要记录一个会议的重要内容,并且需…

【问题处理】—— lombok 的 @Data 大小写区分不敏感

问题描述 今天在项目本地编译的时候,发现有个很奇怪的问题,一直提示某位置找不到符号, 但是实际在Idea中显示确实正常的,一开始以为又是IDEA的故障,所以重启了IDEA,并执行了mvn clean然后重新编译。但是问…

VBA技术资料MF95:打开工作薄后自动定位某个工作表

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

Linux:ELF

文章目录 前置知识从文本文件到可执行文件经历的阶段编译器gcc目标文件 ELFSection(节)Segment(段)从链接角度和从程序角度看ELF文件1. Section Header Table:2. Program Header Table: 参考 前置知识 从文本文件到可执行文件经历…

dockerfile,Docker镜像的创建

dockerfile:创建镜像,创建自定义的镜像。包括配置文件,挂载点,对外暴露的端口。设置环境变量。 docker的创建镜像的方式: 1、基于已有镜像进行创建。根据官方提供的镜像源,创建镜像,然后拉起容…

3分钟打造私人微信ChatGPT助手:新手友好指南!

接上文: https://mp.weixin.qq.com/s/RCqX0rx7TEu1gIwHEBBWKQ 本文适用于小白用户,技术大佬勿入! 前言 这里教大家如何快速的拥有一个属于自己的微信GPT助手 我个人其实不是这么部署的,但是为了方便小白用户,探索了一个…

python算法例17 下一个稀疏数

1. 问题描述 如果一个数是稀疏数,则它的二进制表示中没有相邻的1,例如5(二进制表示为101)是稀疏数,但是6(二进制表示为110)不是稀疏数,本例将给出一个n,找出大于或等于n…

记深圳盐田IBM X3550 m4服务器board故障维修一例

故障服务器型号:ibm system x3550 m4 服务器故障问题:无法开机 面板叹号黄灯,小面板board故障亮灯 响应时效:当天工程师带配件到现场检修并恢复操作系统和业务系统 维修过程:工程师经过与用户的交流中大致判定了故障…

Unity与Android交互通信系列(1)

运行于Android平台的原生App直接调用Android接口,可以享受近水楼台先得月的优势,而使用Unity开发的Android应用App则像是二等公民,使用Android原生功能特性就要麻烦得多,比如WiFi、蓝牙等,特别是一些高级功能特性&…

ArrayList集合的两个实例应用,有趣的洗牌算法与杨辉三角

本节课的内容,就让我们来学习一下ArrayList集合的应用,ArrayList的本质就是一个顺序表,那下面一起来学习吧 目录 一、杨辉三角 1.题目详情及链接 2.剖析题目 3.思路及代码 二、洗牌算法 1.创造牌对象 2.创造一副牌 3.洗牌操作 4.发…

大数据笔记(待续)

mysql 缓存技术 数据库和缓存双写数据一致性问题常见的解决方案 常见方案通常情况下,我们使用缓存的主要目的是为了提升查询的性能。大多数情况下,我们是这样使用缓存的: 用户请求过来之后,先查缓存有没有数据,如果有…

学习笔记 -- CAN系统基础

一、CAN物理层 一个双节点CAN网络示意图如下,两颗120Ω终端电阻并联呈现总线电阻60Ω。 A、B两个节点的CAN收发器(Transceiver),只负责电平转换。当总线静默时,收发器内部的2.5V电源经15KΩ电阻把CAN-H和CAN-L都拉到2.…

前端(一):HTML+CSS

参考课程:23最新版web前端开发_哔哩哔哩_bilibili 文档:GitHub - codeNiuMa/HTML-md-file: 学习HTML课程时的资料 目录 1 HTML 1.1 骨架 DOCTYPE html标签 head标签 body标签 title标签 meta标签 1.2 标签标题h1 1.3 段落p 1.4 水平线 1.5 图片img 1.6 …

【Android12】Android Framework系列--AMS启动Activity分析

AMS启动Activity分析 通过ActivityManagerService(AMS)提供的方法,可以启动指定的Activity。比如Launcher中点击应用图标后,调用AMS的startActivity函数启动应用。 AMS提供的服务通过IActivityManager.aidl文件定义。 // frameworks/base/core/java/an…

【AI底层逻辑】——数学与机器学习:优雅的智慧之舞

目录 “宝藏网站” 聊聊数学 “华尔兹” “智慧之舞” 后续的章节我们将迎来新的篇章,新的切入点探索AI的奥秘,通过揭示高数、矩阵、概率论等数学知识与机器学习的关系来深入理解AI的奥秘! “宝藏网站” 开头先给大家上几个宝藏网站&am…

【离散数学】——期末刷题题库(欧拉图和哈密顿图)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…