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

前言

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

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

ARM 32位 平台

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

  • bsp qemu-vexpress-a9 属于 ARM 32位 平台,由于不同的平台编译工具链不同, 如果开启 RT-Smart,当前必须使用 musl gcc 工具链。

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

Linux 开发平台下载 ARM 32位 musl gcc 工具链

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

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

zhangsz@zhangsz:~/smart/tools/gnu_gcc$ tar xjf /mnt/hgfs/work/ldso/musl_gcc/arm-linux-musleabi_for_x86_64-pc-linux-gnu_211536-3de435f234.tar.bz2 -C ./
zhangsz@zhangsz:~/smart/tools/gnu_gcc$ ls
aarch64-linux-musleabi_for_x86_64-pc-linux-gnu  arm-linux-musleabi_for_x86_64-pc-linux-gnu
  • 我当前放在了 /home/zhangsz/smart/tools/gnu_gcc 路径下

  • 设置环境变量,可以使用 shell 脚本 env_arm.sh

#!/bin/bash

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

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

  • 使能环境变量 source env_arm.sh

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

在这里插入图片描述

Windows 开发平台下载 ARM 32位 musl gcc 工具链

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

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

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

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

  • 新建 env_arm.bat 脚本

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

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

编译 RT-Smart 内核

  • bsp qemu-vexpress-a9

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

运行 RT-Smart

  • bsp qemu-vexpress-a9

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

  • 小插曲: 直接运行 默认的 qemu.sh,如果 qemu 启动报错,需要关闭 -nographic,脚本如下

qemu-system-arm -M vexpress-a9 -smp cpus=2 -kernel rtthread.bin -nographic -sd sd.bin

在这里插入图片描述

退出 qemu-vexpress-a9

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

小结

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

移动开发git版本控制经验之谈

移动开发git版本控制经验之谈 团队或应用规模是否会影响发布流程?这取决于具体情况。让我们来想象一下一个小型团队的创业公司。在这种情况下,通常是团队开发一个功能,然后直接发布。现在我们再来想象一个大型项目,比如一个银行应…

推荐五个免费的网络安全工具

导读: 在一个完美的世界里,信息安全从业人员有无限的安全预算去做排除故障和修复安全漏洞的工作。但是,正如你将要学到的那样,你不需要无限的预算取得到高质量的产品。这里有SearchSecurity.com网站专家Michael Cobb推荐的五个免费…

LSTM(长短期记忆网络)的设计灵感和数学表达式

1、设计灵感 LSTM(长短期记忆网络)的设计灵感来源于传统的人工神经网络在处理序列数据时存在的问题,特别是梯度消失和梯度爆炸的问题。 在传统的RNN(循环神经网络)中,信息在网络中的传递是通过隐状态向量进…

Vue编写登录注册页面前端校验

登录注册校验 template页面 <div class"app-login"><!--登录 --><div class"form"><el-form ref"form" size"large" autocomplete"off" v-if"isLogin" :model"registerData" :r…

网络监测之如何保障企业业务系统安全?

网络信息安全在网络时代的重要性不言而喻。随着互联网的普及和数字化进程的加速&#xff0c;网络已经成为人们生活、工作和学习的重要平台。在这个平台上&#xff0c;信息交流、数据存储、在线支付等都需要依赖于网络信息安全。其中企事业单位业务系统安全值得关注。 企事业单…

Linux文件系统与命令行

什么是命令行? 接收键盘命令并将其传给操作系统执行的程序(用于输入和管理命令的程序),统称命令行,也叫: Shell&#xff0c;几乎所有Linux发行版都提供了一个 Shell 程序,叫做: Bash (Bourne-Again Shell, 因为最初的 Shell 是由 Steve Bourne 编写的原始 Unix 程序, Again 表…

关于调试和开发中对文件写操作导致乱码问题

背景基于上文log机制重定向问题&#xff0c;将代码打印单独存放文件中出现双击文件&#xff0c;如下图现象所示(银河麒麟系统) 使用vim打开文件发现有许多/00的乱码。 怀疑是数据没有同步至硬盘导致的。 于是在每次输入到文件后加入fdatasync函数&#xff0c;部分代码如下&am…

TikTok与环保:短视频如何引领可持续生活方式?

在数字时代&#xff0c;社交媒体平台扮演着塑造文化和价值观的关键角色。而TikTok&#xff0c;作为一款全球短视频平台&#xff0c;不仅塑造着用户的娱乐方式&#xff0c;还在悄然地引领着可持续生活方式的潮流。本文将深入探讨TikTok与环保之间的关系&#xff0c;分析短视频如…

11-Kafka

1 Kafka Kafka是一个分布式流式数据平台&#xff0c;它具有三个关键特性 Message System: Pub-Sub消息系统Availability & Reliability&#xff1a;以容错及持久化的方式存储数据记录流Scalable & Real time 1.1 Kafka架构体系 Kafka系统中存在5个关键组件 Producer…

路由器介绍和命令操作

先来回顾一下上次的内容&#xff1a; ip地址就是由32位二进制数组 二进位数就是只有数字0和1组成 网络位&#xff1a;类似于区号&#xff0c;表示区域作用 主机位&#xff1a;类似于号码&#xff0c;表示区域中编号 网络名称&#xff1a;网络位不变&#xff0c;主机位全为0 …

基于Java SSM框架实现二手交易平台网站系统项目【项目源码+论文说明】

基于java的SSM框架实现二手交易平台网站系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认…

易基因2023年度DNA甲基化研究项目文章精选

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 2023年&#xff0c;易基因参与的DNA甲基化研究成果层出不穷&#xff0c;小编选取其中5篇不同方向的论文与您一起来回顾。 01、易基因微量DNA甲基化测序助力中国科学家成功构建胚胎干细胞…

IDEA中Git的常用使用方式

IDEA中Git的常用使用方式 1.初次拉取远程仓库项目代码到本地2.初次提交本地项目代码到远程仓库新分支方式一&#xff1a;提交时把.git目录删除掉&#xff0c;不保留以往修改记录方式二&#xff1a;提交时不删除.git目录&#xff0c;保留以往修改记录 3.日常拉取、提交、推送代码…

如何清洗眼镜?清洗眼镜方法有哪些?好用超声波洗眼镜机推荐

随着现代人对于眼睛健康越来越重视&#xff0c;清洗眼镜成为了日常生活中不可或缺的一环。眼镜上的污渍和细菌不仅会影响视线&#xff0c;还可能对眼睛健康造成威胁。那么&#xff0c;如何清洗眼镜呢&#xff1f;清洗眼镜的方法有哪些呢&#xff1f;今天&#xff0c;我们将为大…

第二证券:A股“磨底”中等待向上突破

A股“磨底”中等候向上打破。从A股两市成交额、首要指数估值和风险溢价看&#xff0c;当时A股处于中长时刻底部区间&#xff0c;投资者倾向于将中长时刻问题在短期定价&#xff0c;市场风险偏好还有待修正。工作装备上&#xff0c;年底板块轮动加速将成为首要特征&#xff0c;大…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十七:演示功能模块相关功能实现

一、本章内容 本章实现常见业务功能,包括文章管理、商品管理、订单管理、会员管理等功能。 1. 详细课程地址: https://edu.csdn.net/course/detail/38183 2. 源码下载地址: 点击下载 二、界面预览 三、开发视频 3.1 B站视频地址:

JVM初识-----01章

一.虚拟机与java虚拟机的区别以及共同点 1.虚拟机&#xff08;Virtual Machine&#xff0c;简称VM&#xff09; 是一种能够在物理计算机上模拟一台完整的计算机系统的软件。它运行在宿主操作系统之上&#xff0c;可以提供一个独立的运行环境&#xff0c;使得在不同的操作系统上…

Node.js(二)-模块化

1. 模块化的基本概念 1.1 什么是模块化 模块化是指解决一个复杂问题时&#xff0c;自顶向下逐层将系统拆分成若干模块的过程。对于整个系统来说&#xff0c;模块是可组合、分解和更换的单元。 1.2 编程领域中的模块化 编程领域中的模块化&#xff0c;就是遵守固定的规则&…

1224. 交换瓶子(蓝桥杯/图论)

题目&#xff1a; 1224. 交换瓶子 - AcWing题库 输入样例1&#xff1a; 5 3 1 2 5 4输出样例1&#xff1a; 3输入样例2&#xff1a; 5 5 4 3 2 1输出样例2&#xff1a; 2 思路&#xff1a;图论 1.将对应的位置与当前的瓶子序列相连形成环。 2.最少交换次数能形成的最多…

基于深度学习的瓷砖色差分类方法研究——学习笔记(评价:色差的定义太模糊。。。问题描述不清楚,太水了)

文章目录 摘要0 引言1 瓷砖图像处理1.1 图像采集1.2 图像处理 2 基于深度学习的瓷砖色差分类算法设计2.1 数据预处理2.2 卷积神经网络的设计2.3 实验设计 3 瓷砖色差分类平台的设计与实现 摘要 瓷砖是人类建筑不可或缺的一种材料&#xff0c;而瓷砖品质最重要的指标之一就是色…