Skip to content

Commit af52c57

Browse files
authored
Merge pull request #4965 from BernardXiong/master
Add more script and README.md for x86 bsp.
2 parents 3bf1415 + 13fb026 commit af52c57

File tree

11 files changed

+194
-136
lines changed

11 files changed

+194
-136
lines changed

bsp/x86/.config

Lines changed: 83 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,16 @@ CONFIG_IDLE_THREAD_STACK_SIZE=2048
2323
CONFIG_RT_USING_TIMER_SOFT=y
2424
CONFIG_RT_TIMER_THREAD_PRIO=4
2525
CONFIG_RT_TIMER_THREAD_STACK_SIZE=2048
26+
27+
#
28+
# kservice optimization
29+
#
30+
# CONFIG_RT_KSERVICE_USING_STDLIB is not set
31+
# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
32+
# CONFIG_RT_USING_ASM_MEMCPY is not set
2633
CONFIG_RT_DEBUG=y
2734
CONFIG_RT_DEBUG_COLOR=y
28-
CONFIG_RT_DEBUG_INIT_CONFIG=y
29-
CONFIG_RT_DEBUG_INIT=1
35+
# CONFIG_RT_DEBUG_INIT_CONFIG is not set
3036
# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
3137
# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
3238
# CONFIG_RT_DEBUG_IPC_CONFIG is not set
@@ -68,7 +74,8 @@ CONFIG_RT_USING_DEVICE=y
6874
CONFIG_RT_USING_CONSOLE=y
6975
CONFIG_RT_CONSOLEBUF_SIZE=256
7076
CONFIG_RT_CONSOLE_DEVICE_NAME="console"
71-
CONFIG_RT_VER_NUM=0x40003
77+
# CONFIG_RT_PRINTF_LONGLONG is not set
78+
CONFIG_RT_VER_NUM=0x40004
7279
# CONFIG_RT_USING_CPU_FFS is not set
7380
CONFIG_ARCH_IA32=y
7481
# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
@@ -139,8 +146,6 @@ CONFIG_RT_DFS_ELM_REENTRANT=y
139146
CONFIG_RT_USING_DFS_DEVFS=y
140147
# CONFIG_RT_USING_DFS_ROMFS is not set
141148
# CONFIG_RT_USING_DFS_RAMFS is not set
142-
# CONFIG_RT_USING_DFS_UFFS is not set
143-
# CONFIG_RT_USING_DFS_JFFS2 is not set
144149

145150
#
146151
# Device Drivers
@@ -151,6 +156,8 @@ CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
151156
CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
152157
CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
153158
CONFIG_RT_USING_SERIAL=y
159+
CONFIG_RT_USING_SERIAL_V1=y
160+
# CONFIG_RT_USING_SERIAL_V2 is not set
154161
CONFIG_RT_SERIAL_USING_DMA=y
155162
CONFIG_RT_SERIAL_RB_BUFSZ=64
156163
# CONFIG_RT_USING_CAN is not set
@@ -190,6 +197,7 @@ CONFIG_RT_USING_LIBC=y
190197
# CONFIG_RT_USING_PTHREADS is not set
191198
# CONFIG_RT_USING_POSIX is not set
192199
# CONFIG_RT_USING_MODULE is not set
200+
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
193201

194202
#
195203
# Network
@@ -226,6 +234,12 @@ CONFIG_RT_USING_LIBC=y
226234
# CONFIG_RT_USING_RYM is not set
227235
# CONFIG_RT_USING_ULOG is not set
228236
# CONFIG_RT_USING_UTEST is not set
237+
# CONFIG_RT_USING_RT_LINK is not set
238+
239+
#
240+
# RT-Thread Utestcases
241+
#
242+
# CONFIG_RT_USING_UTESTCASES is not set
229243

230244
#
231245
# RT-Thread online packages
@@ -294,8 +308,6 @@ CONFIG_RT_USING_LIBC=y
294308
# CONFIG_PKG_USING_LIBRWS is not set
295309
# CONFIG_PKG_USING_TCPSERVER is not set
296310
# CONFIG_PKG_USING_PROTOBUF_C is not set
297-
# CONFIG_PKG_USING_ONNX_PARSER is not set
298-
# CONFIG_PKG_USING_ONNX_BACKEND is not set
299311
# CONFIG_PKG_USING_DLT645 is not set
300312
# CONFIG_PKG_USING_QXWZ is not set
301313
# CONFIG_PKG_USING_SMTP_CLIENT is not set
@@ -310,6 +322,12 @@ CONFIG_RT_USING_LIBC=y
310322
# CONFIG_PKG_USING_BTSTACK is not set
311323
# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
312324
# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
325+
# CONFIG_PKG_USING_MAVLINK is not set
326+
# CONFIG_PKG_USING_RAPIDJSON is not set
327+
# CONFIG_PKG_USING_BSAL is not set
328+
# CONFIG_PKG_USING_AGILE_MODBUS is not set
329+
# CONFIG_PKG_USING_AGILE_FTP is not set
330+
# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
313331

314332
#
315333
# security packages
@@ -335,9 +353,12 @@ CONFIG_RT_USING_LIBC=y
335353
# CONFIG_PKG_USING_STEMWIN is not set
336354
# CONFIG_PKG_USING_WAVPLAYER is not set
337355
# CONFIG_PKG_USING_TJPGD is not set
356+
# CONFIG_PKG_USING_PDFGEN is not set
338357
# CONFIG_PKG_USING_HELIX is not set
339358
# CONFIG_PKG_USING_AZUREGUIX is not set
340359
# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
360+
# CONFIG_PKG_USING_NUEMWIN is not set
361+
# CONFIG_PKG_USING_MP3PLAYER is not set
341362

342363
#
343364
# tools packages
@@ -346,6 +367,7 @@ CONFIG_RT_USING_LIBC=y
346367
# CONFIG_PKG_USING_EASYFLASH is not set
347368
# CONFIG_PKG_USING_EASYLOGGER is not set
348369
# CONFIG_PKG_USING_SYSTEMVIEW is not set
370+
# CONFIG_PKG_USING_SEGGER_RTT is not set
349371
# CONFIG_PKG_USING_RDB is not set
350372
# CONFIG_PKG_USING_QRCODE is not set
351373
# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
@@ -374,14 +396,36 @@ CONFIG_RT_USING_LIBC=y
374396
# CONFIG_PKG_USING_ANV_MEMLEAK is not set
375397
# CONFIG_PKG_USING_ANV_TESTSUIT is not set
376398
# CONFIG_PKG_USING_ANV_BENCH is not set
399+
# CONFIG_PKG_USING_DEVMEM is not set
400+
# CONFIG_PKG_USING_REGEX is not set
401+
# CONFIG_PKG_USING_MEM_SANDBOX is not set
402+
# CONFIG_PKG_USING_SOLAR_TERMS is not set
403+
# CONFIG_PKG_USING_GAN_ZHI is not set
377404

378405
#
379406
# system packages
380407
#
408+
409+
#
410+
# acceleration: Assembly language or algorithmic acceleration packages
411+
#
412+
# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
413+
# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
414+
# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
415+
# CONFIG_PKG_USING_QFPLIB_M3 is not set
416+
417+
#
418+
# Micrium: Micrium software products porting for RT-Thread
419+
#
420+
# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
421+
# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
422+
# CONFIG_PKG_USING_UC_CRC is not set
423+
# CONFIG_PKG_USING_UC_CLK is not set
424+
# CONFIG_PKG_USING_UC_COMMON is not set
425+
# CONFIG_PKG_USING_UC_MODBUS is not set
381426
# CONFIG_PKG_USING_GUIENGINE is not set
382427
# CONFIG_PKG_USING_CAIRO is not set
383428
# CONFIG_PKG_USING_PIXMAN is not set
384-
# CONFIG_PKG_USING_LWEXT4 is not set
385429
# CONFIG_PKG_USING_PARTITION is not set
386430
# CONFIG_PKG_USING_FAL is not set
387431
# CONFIG_PKG_USING_FLASHDB is not set
@@ -391,6 +435,9 @@ CONFIG_RT_USING_LIBC=y
391435
# CONFIG_PKG_USING_CMSIS is not set
392436
# CONFIG_PKG_USING_DFS_YAFFS is not set
393437
# CONFIG_PKG_USING_LITTLEFS is not set
438+
# CONFIG_PKG_USING_DFS_JFFS2 is not set
439+
# CONFIG_PKG_USING_DFS_UFFS is not set
440+
# CONFIG_PKG_USING_LWEXT4 is not set
394441
# CONFIG_PKG_USING_THREAD_POOL is not set
395442
# CONFIG_PKG_USING_ROBOTS is not set
396443
# CONFIG_PKG_USING_EV is not set
@@ -400,24 +447,12 @@ CONFIG_RT_USING_LIBC=y
400447
# CONFIG_PKG_USING_RAMDISK is not set
401448
# CONFIG_PKG_USING_MININI is not set
402449
# CONFIG_PKG_USING_QBOOT is not set
403-
404-
#
405-
# Micrium: Micrium software products porting for RT-Thread
406-
#
407-
# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
408-
# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
409-
# CONFIG_PKG_USING_UC_CRC is not set
410-
# CONFIG_PKG_USING_UC_CLK is not set
411-
# CONFIG_PKG_USING_UC_COMMON is not set
412-
# CONFIG_PKG_USING_UC_MODBUS is not set
413450
# CONFIG_PKG_USING_PPOOL is not set
414451
# CONFIG_PKG_USING_OPENAMP is not set
415452
# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
416-
# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
417-
# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
418-
# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
419-
# CONFIG_PKG_USING_QFPLIB_M3 is not set
420453
# CONFIG_PKG_USING_LPM is not set
454+
# CONFIG_PKG_USING_TLSF is not set
455+
# CONFIG_PKG_USING_EVENT_RECORDER is not set
421456

422457
#
423458
# peripheral libraries and drivers
@@ -442,7 +477,6 @@ CONFIG_RT_USING_LIBC=y
442477
# CONFIG_PKG_USING_WM_LIBRARIES is not set
443478
# CONFIG_PKG_USING_KENDRYTE_SDK is not set
444479
# CONFIG_PKG_USING_INFRARED is not set
445-
# CONFIG_PKG_USING_ROSSERIAL is not set
446480
# CONFIG_PKG_USING_AGILE_BUTTON is not set
447481
# CONFIG_PKG_USING_AGILE_LED is not set
448482
# CONFIG_PKG_USING_AT24CXX is not set
@@ -480,6 +514,28 @@ CONFIG_RT_USING_LIBC=y
480514
# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
481515
# CONFIG_PKG_USING_VDEVICE is not set
482516
# CONFIG_PKG_USING_SGM706 is not set
517+
# CONFIG_PKG_USING_STM32WB55_SDK is not set
518+
# CONFIG_PKG_USING_RDA58XX is not set
519+
# CONFIG_PKG_USING_LIBNFC is not set
520+
# CONFIG_PKG_USING_MFOC is not set
521+
# CONFIG_PKG_USING_TMC51XX is not set
522+
# CONFIG_PKG_USING_TCA9534 is not set
523+
# CONFIG_PKG_USING_KOBUKI is not set
524+
# CONFIG_PKG_USING_ROSSERIAL is not set
525+
# CONFIG_PKG_USING_MICRO_ROS is not set
526+
527+
#
528+
# AI packages
529+
#
530+
# CONFIG_PKG_USING_LIBANN is not set
531+
# CONFIG_PKG_USING_NNOM is not set
532+
# CONFIG_PKG_USING_ONNX_BACKEND is not set
533+
# CONFIG_PKG_USING_ONNX_PARSER is not set
534+
# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
535+
# CONFIG_PKG_USING_ELAPACK is not set
536+
# CONFIG_PKG_USING_ULAPACK is not set
537+
# CONFIG_PKG_USING_QUEST is not set
538+
# CONFIG_PKG_USING_NAXOS is not set
483539

484540
#
485541
# miscellaneous packages
@@ -494,6 +550,7 @@ CONFIG_RT_USING_LIBC=y
494550
# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
495551
# CONFIG_PKG_USING_CANFESTIVAL is not set
496552
# CONFIG_PKG_USING_ZLIB is not set
553+
# CONFIG_PKG_USING_MINIZIP is not set
497554
# CONFIG_PKG_USING_DSTR is not set
498555
# CONFIG_PKG_USING_TINYFRAME is not set
499556
# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
@@ -511,24 +568,21 @@ CONFIG_RT_USING_LIBC=y
511568
# CONFIG_PKG_USING_HELLO is not set
512569
# CONFIG_PKG_USING_VI is not set
513570
# CONFIG_PKG_USING_KI is not set
514-
# CONFIG_PKG_USING_NNOM is not set
515-
# CONFIG_PKG_USING_LIBANN is not set
516-
# CONFIG_PKG_USING_ELAPACK is not set
517571
# CONFIG_PKG_USING_ARMv7M_DWT is not set
518572
# CONFIG_PKG_USING_VT100 is not set
519-
# CONFIG_PKG_USING_ULAPACK is not set
520573
# CONFIG_PKG_USING_UKAL is not set
521574
# CONFIG_PKG_USING_CRCLIB is not set
522575

523576
#
524-
# games: games run on RT-Thread console
577+
# entertainment: terminal games and other interesting software packages
525578
#
526579
# CONFIG_PKG_USING_THREES is not set
527580
# CONFIG_PKG_USING_2048 is not set
528581
# CONFIG_PKG_USING_SNAKE is not set
529582
# CONFIG_PKG_USING_TETRIS is not set
583+
# CONFIG_PKG_USING_DONUT is not set
584+
# CONFIG_PKG_USING_ACLOCK is not set
530585
# CONFIG_PKG_USING_LWGPS is not set
531-
# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
532586
# CONFIG_PKG_USING_STATE_MACHINE is not set
533587
# CONFIG_PKG_USING_MCURSES is not set
534588
# CONFIG_PKG_USING_COWSAY is not set

bsp/x86/README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# RT-Thread for x86
2+
3+
这是一份基础的RT-Thread针对x86的版本、移植,主要是能够在qemu中执行。以下说明主要针对Linux的环境,如果是Windows环境,请使用Env工具,同时请自行处理生成iso的方法。
4+
5+
## 编译
6+
7+
编译RT-Thread for x86版本,还需要一份支持newlib的工具链,可以通过以下地址获得:
8+
9+
*[i386-unknown-elf_for_x86_64-pc-linux-gnu_latest.tar.bz2](http://117.143.63.254:9012/www/rt-smart/i386-unknown-elf_for_x86_64-pc-linux-gnu_latest.tar.bz2)
10+
11+
下载后解压,然后在rtconfig.py中配置其中的EXEC_PATH变量
12+
13+
```python
14+
if CROSS_TOOL == 'gcc':
15+
PLATFORM = 'gcc'
16+
EXEC_PATH = os.getenv('RTT_EXEC_PATH') or 'E:/Program Files/CodeSourcery/Sourcery_CodeBench_Lite_for_IA32_ELF/bin'
17+
18+
```
19+
20+
然后在x86 bsp目录下执行scons命令来编译:
21+
22+
```bash
23+
scons
24+
```
25+
26+
### 配置
27+
28+
RT-Thread for x86的版本也支持menuconfig的配置方式,在Linux下可以使用`scons --menuconfig`的方式进行配置。
29+
30+
因为menuconfig是一份字符界面的配置(Kconfig),在ubuntu下需要安装ncurses5的库
31+
32+
```bash
33+
sudo apt install libncurses5-dev
34+
```
35+
36+
## 运行
37+
38+
在ubuntu下运行,请确保你安装了`qemu-system-i386``grub` 以及 `xorriso`软件包:
39+
40+
```bash
41+
sudo apt install qemu-system-x86 grub-common xorriso
42+
```
43+
44+
然后执行`./run.sh`命令可以使用qemu来模拟执行(它也会生成可启动的iso文件)
45+
46+
```bash
47+
~/workspace/rt-thread/bsp/x86$ ./run.sh
48+
xorriso 1.4.8 : RockRidge filesystem manipulator, libburnia project.
49+
50+
Drive current: -outdev 'stdio:bootable.iso'
51+
Media current: stdio file, overwriteable
52+
Media status : is blank
53+
Media summary: 0 sessions, 0 data blocks, 0 data, 135g free
54+
Added to ISO image: directory '/'='/tmp/grub.uLz91i'
55+
xorriso : UPDATE : 578 files added in 1 seconds
56+
Added to ISO image: directory '/'='/home/bernard/workspace/rt-thread/bsp/x86/root'
57+
xorriso : UPDATE : 582 files added in 1 seconds
58+
xorriso : NOTE : Copying to System Area: 512 bytes from file '/usr/lib/grub/i386-pc/boot_hybrid.img'
59+
ISO image produced: 6007 sectors
60+
Written to medium : 6007 sectors at LBA 0
61+
Writing to 'stdio:bootable.iso' completed successfully.
62+
63+
64+
\ | /
65+
- RT - Thread Operating System
66+
/ | \ 4.0.4 build Aug 22 2021
67+
2006 - 2021 Copyright by rt-thread team
68+
Floppy Inc : NEC765B controller Floppy Type : 2.88MB
69+
hello!
70+
msh />
71+
```
72+
73+
在qemu下可以按Ctrl-A + X退出qemu。

bsp/x86/applications/mnt.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ extern int rt_floppy_init(void);
1111

1212
int mnt_init(void)
1313
{
14-
rt_floppy_init();
15-
16-
return 0;
14+
return rt_floppy_init();
1715
}
16+
INIT_ENV_EXPORT(mnt_init);
17+

bsp/x86/dbg.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
cp rtthread.elf root
2+
grub-mkrescue -o bootable.iso root
3+
4+
qemu-system-i386 -cdrom bootable.iso -boot d -nographic -S -s

bsp/x86/root/boot/grub/grub.cfg

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
set timeout=0
2+
set default=0
3+
4+
menuentry "boot RT-Thread" {
5+
multiboot /rtthread.elf
6+
boot
7+
}

0 commit comments

Comments
 (0)