rt-thread/bsp/x86
CYFS 25212f3745 fix: name anonymous Kconfig choices 2026-07-20 13:05:46 +08:00
..
applications [bsp][applications][sconscript] 整理统一sconscript格式 (#6481) 2022-10-03 10:43:08 -04:00
drivers 修复 bsp/x86 编译问题 2023-11-06 06:23:09 -05:00
picolib Add picolib support to bsp/x86, default to newlib 2026-05-25 09:51:06 +08:00
root/boot/grub [BSP] add dbg/run.sh script for x86 2021-08-22 07:03:16 +08:00
.config Add picolib support to bsp/x86, default to newlib 2026-05-25 09:51:06 +08:00
Kconfig fix: name anonymous Kconfig choices 2026-07-20 13:05:46 +08:00
README.md Add picolib support to bsp/x86, default to newlib 2026-05-25 09:51:06 +08:00
SConscript [bsp][x86] update x86 with Kconfig and newlib toolchains. 2021-02-19 23:55:17 +08:00
SConstruct format Kconfig and sconscript 2023-01-08 22:52:13 -05:00
dbg.sh [BSP] add dbg/run.sh script for x86 2021-08-22 07:03:16 +08:00
rtconfig.h Add picolib support to bsp/x86, default to newlib 2026-05-25 09:51:06 +08:00
rtconfig.py Add picolib support to bsp/x86, default to newlib 2026-05-25 09:51:06 +08:00
run.sh [BSP] add dbg/run.sh script for x86 2021-08-22 07:03:16 +08:00
x86_ram.lds format link scripts 2023-01-08 22:52:13 -05:00

README.md

RT-Thread for x86

Intro

This x86 BSP support both newlib & picolib, with toolchain available

  • Newlib: i686-atxhua-newlib-elf-
  • Picolibc: i686-atxhua-picolib-elf-

Install Toolchain

To install toolchain run the following command:

  • Newlib: sudo ../../tools/ci/toolchain.sh i686-atxhua-newlib-elf-gcc
  • Picolibc: sudo ../../tools/ci/toolchain.sh i686-atxhua-picolib-elf-gcc

Configuration

Use menuconfig to select your preferred C library:

  1. Run scons --menuconfig
  2. Navigate to X86 Features -> C Library type
  3. Select either Newlib(default) or Picolibc

Building

After select the correct library in menuconfig, set the toolchain path and prefix:

Newlib

export RTT_EXEC_PATH=/opt/i686-atxhua-newlib-elf-gcc/bin
export RTT_CC_PREFIX=i686-atxhua-newlib-elf-
scons

Picolib

export RTT_EXEC_PATH=/opt/i686-atxhua-picolib-elf-gcc/bin
export RTT_CC_PREFIX=i686-atxhua-picolib-elf-
scons           

Result ELF

Newlib

Memory region         Used Size  Region Size  %age Used
i686-atxhua-newlib-elf-objcopy -O binary rtthread.elf rtthread.bin
i686-atxhua-newlib-elf-size rtthread.elf
   text	   data	    bss	    dec	    hex	filename
 212900	   3274	  10844	 227018	  376ca	rtthread.elf
scons: done building targets.

Picolib

Memory region         Used Size  Region Size  %age Used
i686-atxhua-picolib-elf-objcopy -O binary rtthread.elf rtthread.bin
i686-atxhua-picolib-elf-size rtthread.elf
   text	   data	    bss	    dec	    hex	filename
 174122	   2568	  10528	 187218	  2db52	rtthread.elf
scons: done building targets.

这是一份基础的RT-Thread针对x86的版本、移植主要是能够在qemu中执行。以下说明主要针对Linux的环境如果是Windows环境请使用Env工具同时请自行处理生成iso的方法。

编译

编译RT-Thread for x86版本还需要一份支持newlib的工具链可以通过以下地址获得

下载后解压然后配置RTT_EXEC_PATH & RTT_CC_PREFIX 变量

export RTT_EXEC_PATH='/path/to/i686-atxhua-newlib-elf-linux/bin'
export RTT_CC_PREFIX='i686-atxhua-newlib-elf-'

rtconfig.py

if  CROSS_TOOL == 'gcc':
    PLATFORM    = 'gcc'
    EXEC_PATH   = os.getenv('RTT_EXEC_PATH') or 'E:/Program Files/CodeSourcery/Sourcery_CodeBench_Lite_for_IA32_ELF/bin'

if PLATFORM == 'gcc':
    # toolchains
    PREFIX = os.getenv('RTT_CC_PREFIX') or 'i386-unknown-elf-'

然后在x86 bsp目录下执行scons命令来编译

scons

配置

RT-Thread for x86的版本也支持menuconfig的配置方式在Linux下可以使用scons --menuconfig的方式进行配置。

因为menuconfig是一份字符界面的配置Kconfig在ubuntu下需要安装ncurses5的库

sudo apt install libncurses5-dev

运行

在ubuntu下运行请确保你安装了qemu-system-i386grub 以及 xorriso软件包:

sudo apt install qemu-system-x86 grub-common xorriso

然后使用qemu来模拟执行

$ qemu-system-i386 -M pc -kernel rtthread.elf -nographic

SeaBIOS (version 1.16.3-debian-1.16.3-2)


iPXE (https://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+06FCAE00+06F0AE00 CA00
                                                                               


Booting from ROM..
 \ | /
- RT -     Thread Operating System
 / | \     5.3.0 build May 10 2026 21:25:36
 2006 - 2024 Copyright by RT-Thread team
Floppy Inc : NEC765B controller  Floppy Type : 2.88MB
[I/DBG] root filesystem mounted.
hello!
msh />

在qemu下可以按Ctrl-A + X退出qemu。