RT-Thread Smart(简称rt-smart)是基于RT-Thread操作系统衍生的新分支,面向带MMU,中高端应用的芯片,例如ARM Cortex-A系列芯片,MIPS芯片,带MMU的RISC-V芯片等。rt-smart在RT-Thread操作系统的基础上启用独立、完整的进程方式,同时以混合微内核模式执行。 rt-smart.zip软件包是RT-Thread Smart的用户体验软件包,可在QEMU模拟的VExpress-A9机器中或树莓派4B开发板上执行。 软件包说明 下载rt-smart软件包 可以在以下链接下载rt-smart的软件包,文件名称为rt-smart-20201125.zip: https://realthread.cowtransfer.com/s/1c2b64ba968748 把它解压,假设它解压后的目录名是rt-smart,以下都以rt-smart来代表这个目录名。相关的几个主要目录及说明如下图所示: 准备工具链 ● Linux版本工具链:install_arm-linux-musleabi_for_x86_64-pc-linux-gnu.tar ● Windows版本工具链:install_arm-linux-musleabi_for_i686-w64-mingw32 工具链下载链接: https://realthread.cowtransfer.com/s/1c2b64ba968748 请根据自己的开发环境选择对用的工具链下载使用。 下载下来后分别解压展开到`rt-smart/tools/gnu_gcc`目录下,rt-smart目录下的smart-env.bat/sh设置的环境变量,其中工具链路径都指向到这个目录下。 Linux下编译并在QEMU模拟环境上执行 在Linux系统下,需要安装一些基本的环境,然后才能编译rt-smart。本文档是基于Ubuntu16.04系统环境操作,其它Linux版本类似。 安装编译环境 sudo apt-get update sudo apt-get install vim scons git bzip2 net-tools sudo apt-get install python-all python-all-dev sudo apt-get install qemu-system-arm qemu-system-common qemu-utils 以上命令会安装一些系统基础工具、python环境、scons、qemu工具等。 编译应用程序 2cd rt-smart 3 4# 设置对应的环境变量,和原RT-Thread相比,多了RTT_CC_PREFIX环境变量 5source smart-env.sh 6 # 编译用户态程序 cd userapps scons scons: Reading SConscript files ... scons: done reading SConscript files. ... LINK root/bin/webclient.elf scons: done building targets.编译成功后,`userapps/apps`下的应用程序会编译成一个个的elf可执行文件,并放置于`userapps/root/bin`目录下,可以把它转换成romfs、C语言数组的方式给rt-smart内核使用,这样可以不依赖于其他文件系统就可以直接执行,生成romfs、C语言数组可以用如下的命令行:1cd userapps 2python ../tools/mkromfs.py root ../kernel/bsp/qemu-vexpress-a9/applications/romfs.c 编译rt-smart内核 scons ... ... CC build/kernel/src/thread.o CC build/kernel/src/timer.o LINK rtthread.elf arm-linux-musleabi-objcopy -O binary rtthread.elf rtthread.bin arm-linux-musleabi-size rtthread.elf text data bss dec hex filename 101219480 40652 122444 1382576 1518b0 rtthread.elf 11scons: done building targets. 如果编译无误,会生成rtthread.elf内核文件。 模拟执行 cd rt-smart/kernel/bsp/qemu-vexpress-a9 /qemu-nographic.sh \ | / - RT - Thread Smart Operating System / | \ 5.0.0 build Nov 15 2020 2006 - 2020 Copyright by rt-thread team lwIP-2.0.2 initialized! try to allocate fb... | w - 640, h - 480 | done! fb => 0x61100000 [I/sal.skt] Socket Abstraction Layer initialize success. [I/SDIO] SD card capacity 65536 KB. Dir /mnt mount failed! hello rt-thread msh /> msh />/bin/hello.elf msh />hello world! 退出qemu的方法: "Ctrl+A, X"。上面我们也运行了这次编译的应用程序`/bin/hello.elf`,并看到它输出`hello world!`。 在第一次执行时,会输出`Dir /mnt mount failed!`,这个是因为最开始执行时,qemu的脚本会生成一个空的sd.bin文件做为一个sd卡给到vexpress-a9使用。所以在第一次执行时,需要对sd0进行格式化 \ | / - RT - Thread Smart Operating System / | \ 5.0.0 build Nov 24 2020 2006 - 2020 Copyright by rt-thread team lwIP-2.0.2 initialized! try to allocate fb... | w - 640, h - 480 | done! fb => 0x61100000 [I/sal.skt] Socket Abstraction Layer initialize success. [I/SDIO] SD card capacity 65536 KB. [I/SDIO] switching card to high speed failed! Dir /mnt mount failed! hello rt-thread msh />mkfs sd0 msh /> # Ctrl + A, X退出 QEMU: Terminated bernard@fuchsia-NUC8i7BEH:~/workspace/rt-smart/smart/kernel/bsp/qemu-vexpress-a9$ ./qemu-nographic.sh \ | / - RT - Thread Smart Operating System / | \ 5.0.0 build Nov 24 2020 2006 - 2020 Copyright by rt-thread team lwIP-2.0.2 initialized! try to allocate fb... | w - 640, h - 480 | done! fb => 0x61100000 [I/sal.skt] Socket Abstraction Layer initialize success. [I/SDIO] SD card capacity 65536 KB. [I/SDIO] switching card to high speed failed! file system initialization done! hello rt-thread msh /> |
Windows下编译并在树莓派4B上执行
在树莓派上执行
|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号 ) |Sitemap
GMT+8, 2024-9-30 23:15 , Processed in 0.175293 second(s), 36 queries .
Powered by Discuz! X3.2 Licensed
© 2001-2013 Comsenz Inc.