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 工具链

c 复制代码
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

c 复制代码
#!/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 交叉编译工具链,地址如下

c 复制代码
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 脚本

c 复制代码
@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 工具链

相关推荐
梁洪飞4 小时前
内核的schedule和SMP多核处理器启动协议
linux·arm开发·嵌入式硬件·arm
代码游侠16 小时前
学习笔记——Linux字符设备驱动
linux·运维·arm开发·嵌入式硬件·学习·架构
syseptember1 天前
Linux网络基础
linux·网络·arm开发
代码游侠1 天前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
程序猿阿伟1 天前
《Apple Silicon与Windows on ARM:引擎原生构建与模拟层底层运作深度解析》
arm开发·windows
wkm9562 天前
在arm64 ubuntu系统安装Qt后编译时找不到Qt3DExtras头文件
开发语言·arm开发·qt
unicrom_深圳市由你创科技2 天前
基于ARM+DSP+FPGA异构计算架构的高速ADC采集卡定制方案
arm开发·fpga开发
松涛和鸣2 天前
DAY69 Practical Guide to Linux Character Device Drivers
linux·服务器·arm开发·数据库·单片机·嵌入式硬件
松涛和鸣2 天前
69、Linux字符设备驱动实战
linux·服务器·网络·arm开发·数据库·驱动开发
切糕师学AI2 天前
ARM 架构中的 CurrentEL
arm开发·架构